exercises: add Exercise 08 SystemStartup scaffold with early SPI deselect and SD/OLED startup orchestration

This commit is contained in:
John Poole 2026-02-16 18:18:32 -08:00
commit 322a77bfe4
9 changed files with 720 additions and 0 deletions

View file

@ -0,0 +1,43 @@
## Exercise 08: SystemStartup Package Scaffold
This exercise starts a reusable `SystemStartup` package that is intended to be shared by future exercises and field firmware.
Current package responsibilities:
1. Initialize OLED and show boot/status messages.
2. Initialize SD startup watcher.
3. Keep SD monitoring active in `loop()` with a single call.
Current integration pattern:
```cpp
#include "SystemStartup.h"
static SystemStartup g_systemStartup(Serial);
void setup() {
Serial.begin(115200);
g_systemStartup.begin();
}
void loop() {
g_systemStartup.update();
delay(10);
}
```
This is the foundation for adding more startup subsystems (RTC sync/check, etc.) behind the same `begin()/update()` API.
## Build
```bash
source /home/jlpoole/rnsenv/bin/activate
pio run -e node_a
```
## Upload
```bash
source /home/jlpoole/rnsenv/bin/activate
pio run -e node_a -t upload --upload-port /dev/ttyACM0
```