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.

Live Deployment

The final system is deployed and publicly accessible at:

myn3rdmin3r.duckdns.org