Skip to content

Firmware

Firmware lives under fw/. There are two node platforms:

Project MCU / framework Status
bom-node ESP32 / ESP-IDF v5.4 Primary node firmware
bom-stm32node STM32H563ZIT6 / STM32CubeMX Alternative node (GNSS, LoRa, IMU, PDM mics)

Building

All firmware is built inside the fw-devcontainer, which ships both the ESP-IDF toolchain and an ARM bare-metal toolchain (arm-none-eabi-gcc, CMake/Ninja, OpenOCD, st-flash) — see Open the devcontainer.

  • ESP32 (bom-node) — driven by Taskfile + idf.py. From fw/bom-node:

    task build      # idf.py build (also builds the embedded device-web UI)
    task flash      # idf.py flash
    task monitor    # idf.py monitor -p /dev/ttyUSB1
    
  • STM32 (bom-stm32node) — CubeMX project built with CMake + Ninja, flashed via OpenOCD / st-flash. See Build & flash.

Flashing requires the USB device shared into the container — see Share USB with usbipd.