Files
micromesh/examples

Board examples

These examples connect a MicroPython board to the hardware UART exposed by a Meshtastic radio. The radio must have its serial module enabled in PROTO mode at 115200 baud.

Board Example MicroPython UART TX pin RX pin
Seeed Studio XIAO RP2040 xiao_rp2040.py UART0 D6 / GPIO0 D7 / GPIO1
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.

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:

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:

MicroPython board TX  -> radio RX
MicroPython board RX  <- radio TX
MicroPython board GND --- radio GND

Both ends must use 3.3 V UART logic. Do not connect the power pins unless you have confirmed the voltage and current requirements for both boards. Meshtastic radio UART pin names vary by model and may need to be configured in the radio firmware.

Run an example

Install MicroMesh, copy the matching example to the board as main.py, and reset it:

mpremote mip install package.json
mpremote fs cp examples/xiao_rp2040.py :main.py
mpremote reset

Each example requests the node configuration, listens for text messages, and broadcasts one greeting after configuration completes. Remove the mesh.sendText(...) line for a receive-only application.