Skip to content

mcu_firmwares

Joseph Komosa edited this page Mar 20, 2026 · 1 revision

MCU Firmwares Explained

Drag & Drop update firmware (USB‑C)

Firmware File Name Description
Production mynd-update-firmware-mcu.bin Production firmware. Limited tshell CLI (requires UART access).
Factory mynd-factory-update-firmware-mcu.bin Factory firmware for color assignment and tests. Has tshell CLI. EQ/features removed for space.
MYNDberry myndberry-update-firmware-mcu.bin Modified firmware for Raspberry Pi Zero 2 W module. Limited tshell CLI (requires UART access).

JLink flash targets / debug artifacts

Firmware File Name Description
Bootloader mynd-bootloader.hex Standalone bootloader. Enables drag & drop updates. Stays in update mode until firmware is provided.
Application mynd.hex Standalone app without bootloader. For development. No drag & drop updates.
Note: Use if you need flash space and have a JLink. To restore, flash bootloader and update, or flash Complete firmware.
Complete mynd-complete.hex Unified hex: bootloader + production app.
Factory Complete mynd-factory-complete.hex Unified hex: bootloader + factory app.
MYNDberry Complete myndberry-complete.hex Unified hex: bootloader + modified app for Raspberry Pi module configuration.
ELF mynd, mynd-factory ELF format for debugging (no bootloader). Use with JLinkGDBServer and VSCode Cortex-Debug.

Additional Notes

  • Offset Targets:

    • Binaries with the offset suffix have shifted memory addresses to reserve space for the bootloader.
    • Use support/scripts/prepare_update.py to merge offset binaries with the bootloader (see Projects/Mynd/CMakeLists.txt).
  • Build Workflow:

    • Building Complete targets in the Build MYND Firmware workflow requires mynd-bootloader.hex from the build_bootloader job.
    • This is enforced by needs: build_bootloader in the workflow, ensuring the bootloader is built first.

Clone this wiki locally