{"id":27414336,"url":"https://github.com/axpaul/flightsoftware-mastodonte","last_synced_at":"2026-04-25T23:37:59.939Z","repository":{"id":286365627,"uuid":"961193132","full_name":"axpaul/FlightSoftware-Mastodonte","owner":"axpaul","description":"Flight software for Mastodonte rocket avionics ","archived":false,"fork":false,"pushed_at":"2025-04-13T11:51:42.000Z","size":2549,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T12:38:04.140Z","etag":null,"topics":["aerospace","flight-software","rocket"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axpaul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-06T00:42:38.000Z","updated_at":"2025-04-13T11:51:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"2080d015-177a-494b-983d-39d9d358de41","html_url":"https://github.com/axpaul/FlightSoftware-Mastodonte","commit_stats":null,"previous_names":["axpaul/flightsoftware-mastodonte"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpaul%2FFlightSoftware-Mastodonte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpaul%2FFlightSoftware-Mastodonte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpaul%2FFlightSoftware-Mastodonte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpaul%2FFlightSoftware-Mastodonte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axpaul","download_url":"https://codeload.github.com/axpaul/FlightSoftware-Mastodonte/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248844387,"owners_count":21170565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aerospace","flight-software","rocket"],"created_at":"2025-04-14T08:24:42.252Z","updated_at":"2026-04-25T23:37:59.933Z","avatar_url":"https://github.com/axpaul.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flight Software Mastodonte\n\n**FlightSoftware-Mastodonte** is the embedded flight software running on the **YD-RP2040** controller of the experimental rocket **Mastodonte**.  \nIt acts as the onboard **flight sequencer**, managing time-critical events and hardware interfaces during the mission.\n\n\u003e © 2025 Paul Miailhe – Designed for safety-critical embedded rocket systems.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/Mastodonte-N6.png\" alt=\"Carte Mastodonte\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n---\n\n## Features\n\n- Arduino framework (Earle Philhower core) on RP2040\n- Built-in WS2812B RGB LED control (no external wiring)\n- Passive buzzer management with programmable tone and timing\n- OLED display via I²C with auto-detection\n- Debug interface with optional serial logging (timeout-protected)\n- CMSIS-DAP support for flashing and debugging (via SWD)\n- Modular C++ architecture (timers, state machines, IO abstraction)\n- Compatible with 16MB flash layout (1MB sketch / 15MB filesystem)\n\n---\n\n## Platform Configuration\n\n| Parameter           | Value                    |\n|---------------------|--------------------------|\n| Board               | `YD-RP2040`              |\n| MCU                 | RP2040                   |\n| Framework           | Arduino (earlephilhower) |\n| Debug protocol      | CMSIS-DAP (SWD)          |\n| Flash layout        | 1MB firmware / 15MB FS   |\n| Clock frequency     | 133 MHz                  |\n| USB stack           | TinyUSB                  |\n| Toolchain           | `toolchain-rp2040-earlephilhower` |\n| Build system        | PlatformIO               |\n\n---\n\n## External Libraries\n\nDeclared in `platformio.ini`:\n\n| Library                      | Version   | Purpose                      |\n|-----------------------------|-----------|------------------------------|\n| Adafruit NeoPixel           | `1.12.5`  | WS2812B LED control          |\n| Adafruit SSD1306            | `2.5.7`   | OLED I²C display             |\n| Adafruit GFX                | `1.11.9`  | Core graphics (OLED backend) |\n\n---\n\n## Synoptic\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/Mastodonte_synoptique.png\" alt=\"Synoptique Mastodonte\" width=\"750\"/\u003e\n\u003c/p\u003e\n\n---\n\n## 🚦 Flight Sequencer States\n\nThe system is driven by a finite state machine (`sequencer.cpp`) that transitions through various mission phases.  \nEach state configures RGB LED color and buzzer behavior to provide **visual and audible feedback**.\n\n| State           | Color (LED)      | Buzzer Pattern                      | Description |\n|------------------|------------------|--------------------------------------|-------------|\n| `PRE_FLIGHT`     | 🟢 Green          | 🔈 Double soft beep (3s pause)       | System idle on ground, RBF and JACK expected. |\n| `PYRO_RDY`       | 🟡 Yellow         | 🔈 1 low beep per second             | Ready for liftoff, RBF removed, JACK still in. |\n| `ASCEND`         | 🔵 Blue           | 🔈 Very fast beeping                 | Liftoff confirmed, rocket in ascent. |\n| `WINDOW`         | 🔵 Cyan           | 🔈 Rapid alert beeping               | Deployment window is open (timed or triggered). |\n| `DEPLOY_ALGO`    | 🟠 Orange         | 🔈 Alternating mid beeps             | Deployment triggered via algorithm (sensor). |\n| `DEPLOY_TIMER`   | 🟠 Orange         | 🔈 Alternating mid beeps             | Deployment triggered via timer timeout. |\n| `DESCEND`        | 🟣 Magenta        | 🔈 Slow and regular beeping          | Descent under parachute. |\n| `TOUCHDOWN`      | 🟢 Green (steady) | 🔈 Long beep every 30 seconds        | Touchdown detected, safe recovery state. |\n| `ERROR_SEQ`      | 🔴 Red            | 🔈 Rapid high-pitched beeping        | System fault or invalid state transition. |\n\n---\n\n## 🔘 User Button USR (GP24) — Log Dump \u0026 Erase\n\nA user-accessible button is connected to **GPIO 24** and is checked during system boot.\n\n- **Press and release**: Dumps log content to Serial @ **115200 baud**.\n- **Press and hold for 5 seconds**: Erases the entire log file from the onboard flash memory.\n\nThis provides a fast and safe way to extract and reset logs without reflashing the system.\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxpaul%2Fflightsoftware-mastodonte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxpaul%2Fflightsoftware-mastodonte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxpaul%2Fflightsoftware-mastodonte/lists"}