Skip to content

v0.8.0 — HTTP management surface + JSON API

Latest

Choose a tag to compare

@itk80 itk80 released this 20 May 19:02
· 2 commits to main since this release

What's new in v0.8.0

HTTP management surface + JSON API

PR #1 (yellowcooln) lands a usable web management UI on top of the
existing OTA endpoint, plus a machine-readable JSON API. Wire
protocol unchanged
(still v0.7) — drivers and pymc_core/pymc_Repeater
clients work against v0.8 firmware without changes.

  • HTTP Basic Auth on every web/API/OTA path. Default admin / password, changeable from the UI, persisted in NVS under http_pass.
  • Persistent configurable hostname (blank = MAC-derived fallback).
  • DHCP / static IP UI with live lease values shown next to the form.
  • pyMC token management UI (replaces the older "TCP password" label).
  • Reboot button from the UI.
  • /stats page — uptime, radio config, RX/TX/error counters, RSSI/SNR/noise floor, die temperature, network mode.
  • JSON API endpoints for headless integration.

See README "Default web UI / OTA / API credentials" for the credential
matrix and how to change them.

New board (8th variant)

Seeed XIAO nRF52840 + Wio-SX1262 carrier (SKU 102010710) — nRF52840
paired with Seeed's Wio-SX1262 Meshtastic carrier.

  • USB-CDC transport only (no Wi-Fi/Ethernet/HTTP — same constraints as T114)
  • No onboard display
  • DIO2-as-RF-switch + external LNA gate on D5 (RXEN)
  • TCXO 1.8 V via DIO3, max 22 dBm chip TX (no PA)
  • OTA: Adafruit nRF52 DFU (UF2 disk on double-click reset) or in-app CMD_OTA_* over USB-CDC

fw_suffix: xiao_nrf52_wio (auto-detected by pymc_sector_array's OTA scanner).

Boards (8 binaries below)

Board Binary Notes
Heltec WiFi LoRa 32 V3 pymc_usb-v0.8.0-heltec_v3.bin ESP32-S3 + SX1262
Ikoka Stick pymc_usb-v0.8.0-ikoka_stick.bin ESP32-S3 + SX1262
Seeed XIAO Wio-SX1262 pymc_usb-v0.8.0-xiao_wio_sx1262.bin ESP32-S3
RAK3112 WisMesh pymc_usb-v0.8.0-rak3112_wismesh.bin ESP32-S3 + BLE + Wi-Fi
WaveShare ESP32-P4-Nano pymc_usb-v0.8.0-esp32_p4_nano.bin ESP32-P4 + E22 (SX1262); Ethernet preferred over Wi-Fi
Lilygo T3-S3 pymc_usb-v0.8.0-lilygo_t3s3.bin ESP32-S3 + SX1262 + OLED
Heltec T114 pymc_usb-v0.8.0-heltec_t114.hex + -dfu.zip nRF52840 + SX1262 + TFT 135×240; no Wi-Fi/TCP
Seeed XIAO nRF52840 + Wio-SX1262 (new) pymc_usb-v0.8.0-xiao_nrf52_wio.hex + -dfu.zip nRF52840 + SX1262; no Wi-Fi/TCP, no display

Flashing

ESP32 boards (USB CDC):

esptool.py --port /dev/ttyACM0 write_flash 0x10000 pymc_usb-v0.8.0-<board>.bin
# or, with PlatformIO source checkout:
cd firmware && pio run -e <env> -t upload

nRF52 boards (T114, XIAO nRF52840 + Wio) — Adafruit bootloader:
double-tap reset to enter DFU, then either drag the .uf2 (if you
build one from the hex) or use adafruit-nrfutil:

adafruit-nrfutil dfu serial -pkg pymc_usb-v0.8.0-<board>-dfu.zip -p /dev/ttyACM0 -b 115200

Default credentials (v0.8)

Surface User Default password Where to change
Web UI / OTA / JSON API admin password UI ▸ Admin password (persisted in NVS)
pyMC token (TCP transport) n/a empty UI ▸ pyMC token, or CMD_SET_WIFI

Change both before exposing the modem outside a trusted LAN.

Upgrading from v0.7

  • OTA recommended for ESP32 boards: web UI ▸ Update firmware. First
    set an admin password — the default admin/password won't gate
    anything if left as-is.
  • No driver changes needed — wire protocol unchanged.
  • First-boot HTTP credentials: admin / password (set
    intentionally to be obvious; rotate before exposing to LAN).