diff --git a/.gitmodules b/.gitmodules index f8ee3ff..603b8f5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "external/ArxContainer"] path = external/ArxContainer url = https://github.com/hideakitai/ArxContainer.git +[submodule "external/microReticulum_Firmware"] + path = external/microReticulum_Firmware + url = https://github.com/attermann/microReticulum_Firmware diff --git a/README.md b/README.md index ebd0ead..250bee4 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,14 @@ microReticulum For Field Testing With LilyGo T-Beam SUPREMES Field Testing Only. Used to specially program a group of T-Beams, each having the others' contact information and keys, which are then deployed in the field with people moving about to capture what was successfully sent and received and at what coordinates. Data is stored on SD cards and then retrieved at the end of the test an dumped into a PostgreSQL databse for analysis. + +## Dependency Direction +This repo is migrating from `external/microReticulum` to `external/microReticulum_Firmware`. + +Goal: +- Reuse upstream T-Beam SUPREME integration work in `microReticulum_Firmware`. +- Avoid reimplementing already-solved board integration (PMU, SD, RTC, GPS, LoRa setup). + +Status: +- Migration plan is tracked in `docs/microreticulum_firmware_migration.md`. +- Existing exercises remain functional during migration. diff --git a/docs/microreticulum_firmware_migration.md b/docs/microreticulum_firmware_migration.md new file mode 100644 index 0000000..be912f7 --- /dev/null +++ b/docs/microreticulum_firmware_migration.md @@ -0,0 +1,42 @@ +# microReticulum Firmware Migration Plan + +## Objective +Migrate this project from the current submodule: +- `external/microReticulum` + +to: +- `external/microReticulum_Firmware` + +so this repo consumes existing T-Beam SUPREME integration instead of duplicating it. + +## Current State +- `.gitmodules` currently declares `external/microReticulum`. +- `.gitmodules` now also declares `external/microReticulum_Firmware`: + - URL: `https://github.com/attermann/microReticulum_Firmware` + - Current commit: `5dc607fc7227c46ccb19244e456782fbb7775eae` +- Exercises under `exercises/` are self-contained and currently compile independently. + +## Planned Migration Steps +1. Add the new submodule at `external/microReticulum_Firmware`. +2. Keep `external/microReticulum` temporarily for side-by-side validation. +3. Inventory reusable components from `microReticulum_Firmware`: + - board init / PMU power sequencing + - LoRa interface setup + - SD/RTC/GPS integration glue +4. Refactor local firmware entry points to call upstream components where possible. +5. Update exercise docs to distinguish: + - hardware smoke tests (local exercises) + - integration paths (from `microReticulum_Firmware`) +6. After parity validation, remove or archive `external/microReticulum`. + +## Validation Checklist +- Build passes for all key exercises. +- SD/RTC/GPS startup behavior remains stable. +- LoRa send/receive smoke tests still pass. +- Fieldtest beacon path compiles and boots. + +## Submodule Commands Used +```bash +git submodule add https://github.com/attermann/microReticulum_Firmware external/microReticulum_Firmware +git submodule update --init --recursive +``` diff --git a/external/microReticulum_Firmware b/external/microReticulum_Firmware new file mode 160000 index 0000000..5dc607f --- /dev/null +++ b/external/microReticulum_Firmware @@ -0,0 +1 @@ +Subproject commit 5dc607fc7227c46ccb19244e456782fbb7775eae