|
1 | 1 | # PowerBread |
2 | 2 |
|
3 | | -Dual-channel breadboard power monitor, ported from |
4 | | -[XIAO-powerbread](https://github.com/nicho810/XIAO-powerbread). |
5 | | -Wiring and usage docs are completed alongside the implementation. |
| 3 | +Dual-channel breadboard power monitor on the Adafruit QT Py ESP32-C3, ported |
| 4 | +from [XIAO-powerbread](https://github.com/nicho810/XIAO-powerbread): an |
| 5 | +INA3221 measures voltage/current/power on two supply rails, a 0.96" ST7735 |
| 6 | +LCD shows an LVGL UI (dashboard, line chart, statistics), and a resistor-ladder |
| 7 | +dial wheel navigates it. Measurements stream as CSV over USB serial on demand. |
6 | 8 |
|
7 | | -Build: `uv run poe app powerbread` |
| 9 | +## Wiring |
| 10 | + |
| 11 | +| Function | QT Py pin | GPIO | Notes | |
| 12 | +|-------------------|-----------|--------|--------------------------------| |
| 13 | +| INA3221 SDA/SCL | SDA/SCL | 5 / 6 | Stemma QT, addr 0x40, 50 mR shunts | |
| 14 | +| LCD DIN (MOSI) | MO | 7 | SPI2 | |
| 15 | +| LCD CLK | SCK | 10 | SPI2 | |
| 16 | +| LCD DC | MI | 8 | re-pinmuxed from SPI2 MISO | |
| 17 | +| LCD RST | A3 | 0 | | |
| 18 | +| LCD CS | — | — | tied low on the module | |
| 19 | +| Dial wheel ladder | A2 / D2 | 1 | ADC1 channel 1 | |
| 20 | + |
| 21 | +## Controls |
| 22 | + |
| 23 | +- Dial up/down: cycle mode (dashboard → chart → stats) |
| 24 | +- Dial short press: switch focused channel (1 ↔ 2) |
| 25 | +- Dial long press (≥1 s): reset stats and energy counters |
| 26 | + |
| 27 | +Shell (USB serial), root command `powerbread`: |
| 28 | +`read`, `reset`, `stream <on|off>` (CSV: `t_ms,ch,mV,mA,mW`), |
| 29 | +`mode <dash|chart|stats>`, `channel <1|2>`, `dial` (raw dial mV, for |
| 30 | +calibrating the `adc-keys` thresholds in the board overlay). |
| 31 | + |
| 32 | +## Build & flash |
| 33 | + |
| 34 | + uv run poe app powerbread |
| 35 | + uv run poe flash powerbread |
0 commit comments