Add curses dashboard and XIAO bridge examples; enhance stream parser for UTF-8 logging

This commit is contained in:
pdxlocations
2026-08-01 00:46:04 -07:00
parent d96435b7c4
commit d242a82d1d
8 changed files with 988 additions and 65 deletions
+29
View File
@@ -10,6 +10,35 @@ Meshtastic radio. The radio must have its serial module enabled in `PROTO` mode
| Raspberry Pi Pico / Pico W | `raspberry_pi_pico.py` | UART0 | GP0 | GP1 |
| Generic ESP32 | `esp32.py` | UART2 | GPIO17 | GPIO16 |
## Desktop curses dashboard
`curses_dashboard.py` is a host-side dashboard for macOS or Linux. It displays
connection statistics, known nodes, and received messages, and it can send broadcast
messages. It can connect directly to a radio or through a XIAO RP2040 UART bridge.
```sh
python -m pip install -e . pyserial
python examples/curses_dashboard.py /dev/cu.usbmodem123456
```
For a radio wired to a XIAO RP2040, first install the bridge as the XIAO's boot script:
```sh
mpremote connect /dev/cu.usbmodem2101 fs cp examples/xiao_dashboard_bridge.py :main.py
mpremote connect /dev/cu.usbmodem2101 reset
python examples/curses_dashboard.py --xiao-bridge /dev/cu.usbmodem2101
```
Do not run `mpremote` at the same time as the dashboard; only one program can own the
XIAO USB serial port. To return to the regular example, replace `main.py` with
`xiao_rp2040.py`.
Use `mpremote connect list`, `python -m serial.tools.list_ports`, or your operating
system's device list to find the radio port. The message field is always active: type
and press Enter to send. Use Escape to clear it, F5 to refresh, and F10 to quit.
`Ctrl-R` and `Ctrl-Q` are also supported. On Windows, install `windows-curses` and use
a port such as `COM4`.
## Wiring
UART signals cross between the two boards: