microReticulumTbeam/docs/microreticulum_firmware_step2_adoption_matrix.md

2.8 KiB

Step 2 Adoption Matrix

Scope

Repository: microReticulumTbeam
Submodule source: external/microReticulum_Firmware

What Step 2 Means

Identify and wire the first low-risk points where this repo should consume existing board-integration logic from microReticulum_Firmware, instead of maintaining duplicate local assumptions.

High-Value Upstream Sources

  • external/microReticulum_Firmware/Boards.h
    • T-Beam Supreme pin map and feature flags.
    • Includes SD pins (SD_CS=47, SD_CLK=36, SD_MISO=37, SD_MOSI=35), PMU I2C pins (I2C_SDA=42, I2C_SCL=41), LoRa pins.
  • external/microReticulum_Firmware/Power.h
    • AXP2101 setup sequence for T-Beam Supreme (BOARD_TBEAM_S_V1), including SD rail (BLDO1), ALDO rails, charging config.
  • external/microReticulum_Firmware/platformio.ini
    • env:ttgo-t-beam-supreme build model and dependency pattern.

Local Targets And First Consumers

  1. firmware/fieldtest_beacon/src/main.cpp
  • Why first: this is the integration entry point, not just a smoke test.
  • Step-2 change made: SD CS now comes from Boards.h instead of hardcoded 10.
  1. exercises/04_SD_card/src/main.cpp
  • Why second: duplicates PMU + SD pin assumptions already present upstream.
  • Planned consume-first item: PMU rail setup pattern from Power.h.
  1. exercises/05_SD_Card_Watcher/src/main.cpp
  • Why third: extends 04 and should share the same PMU/pin source strategy.
  • Planned consume-first item: same board/power source as 04.
  1. exercises/06_RTC_check/src/main.cpp
  • Why fourth: depends on PMU + I2C pin assumptions that overlap upstream.
  • Planned consume-first item: board I2C pin source and PMU readiness sequence.

Current Wiring Done

  • Added submodule:
    • external/microReticulum_Firmware
  • Wired one concrete consumer:
    • firmware/fieldtest_beacon/src/main.cpp now includes Boards.h and uses SD_CS.
    • firmware/fieldtest_beacon/platformio.ini now includes external/microReticulum_Firmware headers and sets BOARD_MODEL=BOARD_TBEAM_S_V1.
  • Added local adapter:
    • shared/boards/tbeam_supreme_adapter.h
    • Exposes board pins and PMU setup based on upstream T-Beam Supreme definitions.
  • Refactored exercises to consume adapter:
    • exercises/04_SD_card
    • exercises/05_SD_Card_Watcher
    • exercises/06_RTC_check

Validation Status

  • firmware/fieldtest_beacon now builds after adding required deps:
    • ArduinoJson 7.x
    • MsgPack
    • Crypto (provides Ed25519.h and Curve25519.h)
  • exercises/04_SD_card builds.
  • exercises/05_SD_Card_Watcher builds.
  • exercises/06_RTC_check builds.

Next Step Candidate

Reduce macro redefinition warnings emitted by Boards.h in adapter consumers:

  • Option A: small local board-map header with only required constants copied from upstream board model.
  • Option B: upstream contribution to make board capability macros conditional/override-safe.