Distributed NerdMiner Monitoring System
ESP32-based Bitcoin mining telemetry pipeline using MQTT and AWS EC2
Overview
This project implements a distributed monitoring system for multiple NerdMiner-enabled ESP32 devices. Custom firmware was deployed on ESP32-DevKitV1 boards to mine Bitcoin at approximately 350 kH/s per device, while exporting real-time telemetry to a cloud-hosted dashboard.
Problem Statement
NerdMiner devices operate in a fully optimized mining mode where all available ESP32 cores are dedicated to hashing, leaving no resources for a local monitoring server or web interface. As a result, each device exposes only minimal local visibility. This created a need for a centralized, real-time monitoring system capable of aggregating telemetry and maintaining historical performance data across multiple mining nodes.
System Architecture
- ESP32 mining nodes run NerdMiner firmware
- Raspberry Pi aggregates serial data
- Telemetry published via MQTT (Paho)
- AWS EC2 receives and stores JSON payloads
- Nginx hosts a monitoring dashboard
Data Collected
- Miner ID
- Hashrate
- Temperature
- Accepted hashes
- Valid blocks
- Best difficulty
- Total MHashes
- Timestamp (NTP-synchronized)
Technologies Used
- ESP32 (DevKitV1)
- NerdMiner firmware (ESP32-S3 adapted)
- Raspberry Pi (Serial monitoring)
- Python
- MQTT (Paho)
- AWS EC2
- Nginx
- HTML / JSON
Outcome
The system successfully monitors three ESP32 mining nodes in real-time, aggregating performance metrics and maintaining a timestamped history of mining activity.