Measure. Benchmark. Understand.
Official firmware for the BuckPow platform. Transforms ESP8266 and ESP32 devices into plug-and-play power measurement nodes.
BuckPow Node is the edge firmware that collects voltage, current, and power measurements using hardware sensors and sends them to the BuckPow API for storage, visualization, and benchmarking.
BuckPow Node is an appliance, not an Arduino sketch. Users should install, configure, and use it like a finished product, while developers can extend it through a modular architecture.
One firmware. Multiple sensors. Zero configuration.
- INA219 voltage/current/power measurement
- Automatic device registration via BuckPow API
- OLED display with live readings
- Captive portal WiFi configuration
- Web dashboard for setup and status
- Over-the-air firmware updates
- REST API integration
| Board | Platform | Status |
|---|---|---|
| Wemos D1 Mini | ESP8266 | Primary |
| ESP32 DevKit | ESP32 | Secondary |
| Sensor | Metrics | Status |
|---|---|---|
| INA219 | V, mA, mW | v1.0 |
| Component | Pin | Wemos D1 Mini | ESP32 |
|---|---|---|---|
| SCL | Clock | D1 (GPIO 5) | GPIO 22 |
| SDA | Data | D2 (GPIO 4) | GPIO 21 |
| VCC | Power | 3.3V | 3.3V |
| GND | Ground | GND | GND |
I2C addresses: INA219 = 0x40, OLED = 0x3C
- Adafruit INA219
- Adafruit SSD1306
- Adafruit GFX Library
- ArduinoJson
# Build firmware
pio run -e d1_mini
# Upload firmware
pio run -e d1_mini -t upload
# Upload web interface (after editing data/ files)
pio run -e d1_mini -t uploadfs
# Monitor serial output
pio device monitorOpen the web interface at the device IP to configure:
| Setting | Default | Description |
|---|---|---|
| Device Name | buckpow-node | Unique identifier |
| Server URL | http://192.168.1.10:8000 | BuckPow API endpoint |
| API Key | (empty) | Bearer token for authentication |
| Sample Interval | 1000ms | Measurement frequency |
BuckPow Node sends measurements to the BuckPow API:
POST /api/v1/measurements
Content-Type: application/json
Authorization: Bearer <api_key>
{
"device_id": "buckpow-node",
"bus_voltage": 4.82,
"current": 182.5,
"power": 910.2
}
Get your API key from the BuckPow dashboard device detail page.
buckpow-node/
├── src/ # Firmware source
├── include/ # Headers
├── data/ # LittleFS web assets
├── test/ # Unit tests
├── tasks/ # Development task specs
├── .github/ # CI/CD workflows
└── platformio.ini
pio test -e d1_miniContributions are welcome. Bug reports, feature requests, documentation improvements, and pull requests are greatly appreciated.
Please open an issue before submitting large changes to discuss the proposed implementation.
MIT License