Network & Display

ESP32 Blackbox

A $5 network probing device compatible with Prometheus blackbox_exporter.

Configure probes via JSON or Web UI; expose metrics in standard Prometheus format. Drop-in replacement for the software blackbox_exporter on a tiny ESP32 board.

ESP32-C3/C6 Prometheus MIT

Probe Modules

Module Description Example
http_2xx HTTP health check probe curl http://blackbox/probe?module=http_2xx&target=https://example.com
tcp TCP port connectivity probe curl http://blackbox/probe?module=tcp&target=example.com:80
dns DNS resolution probe curl http://blackbox/probe?module=dns&target=example.com
icmp_ping ICMP ping probe curl http://blackbox/probe?module=icmp_ping&target=1.1.1.1
ws WebSocket connectivity probe curl http://blackbox/probe?module=ws&target=ws://echo.example.com
wss Secure WebSocket connectivity probe curl http://blackbox/probe?module=wss&target=wss://echo.example.com

Supported Hardware

  • ESP32-C3 SuperMini — 802.11 b/g/n, RISC-V core
  • Seeed XIAO ESP32C6 — WiFi 6, upcoming standard

Quick Start

Build and flash

bash
# Using the build script (recommended)
python build.py esp32c6 build
python build.py esp32c6 flash COM3

# Or using ESP-IDF directly
idf.py set-target esp32c6
idf.py build
idf.py -p COM3 flash monitor

First boot

The device creates an AP named ESP32_Blackbox (password 12345678). Connect and configure at http://192.168.4.1.

Prometheus configuration

Add this to your prometheus.yml:

yaml
scrape_configs:
  - job_name: 'esp32_blackbox'
    metrics_path: /metrics
    static_configs:
      - targets: ['192.168.1.100']

Tech Stack

  • Framework: ESP-IDF
  • SoC: ESP32-C3 (RISC-V) or ESP32-C6 (WiFi 6)
  • Protocols: HTTP, TCP, DNS, ICMP, WebSocket, Prometheus metrics
  • Configuration: JSON via Web UI or API
  • License: MIT

Documentation

Build scripts, pin mappings, and full API reference are in the GitHub repository.