Split Nano firmware into modules

- config.h: all constants and debug defines
- command_parser.h/.cpp: CommandParser class, one method per command
- settings.h/.cpp: EEPROM flip time storage
- main.cpp: setup/loop and the periodic full redraw only
- Full redraw now checks frameEnded() after the serial buffer is drained
- Drop the SPI/Adafruit_I2CDevice include workaround (not needed)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-13 00:19:25 +02:00
1 parent 75f677a2eb
commit 80f3f78152
8 files changed
+429 -279

No files matched your search

+12 -1
View File
@@ -6,6 +6,17 @@ The Nano is connected directly to the Brose panel electronics. It keeps an 84 ×
buffer and takes drawing commands over serial (115200 baud). It has no clock or network
logic.
## Files
| File | Contents |
|------|----------|
| `main.cpp` | `setup()` / `loop()`, feeds serial bytes to the parser, periodic full redraw |
| `config.h` | All settings: debug options, display size, flip time limits, timings |
| `command_parser.h/.cpp` | `CommandParser`: the serial protocol, one method per command |
| `settings.h/.cpp` | Flip time stored in EEPROM |
The display driver itself is in [lib/BROSE9323](../../lib/BROSE9323/README.md).
## Behaviour
- **Boot:** the Nano loads the flip time from EEPROM, sets up the pins and sends `READY`.
@@ -24,7 +35,7 @@ logic.
### Debug options
Uncomment these at the top of `main.cpp`:
Uncomment these in `config.h`:
| Define | Effect |
|--------|--------|