Restructure into a single PlatformIO project with nano and esp32 targets

- Shared BROSE9323 driver in lib/, ESPSERIAL selected via build_flags
- Nano firmware in src/nano, ESP32 firmware in src/esp32
- Move WiFi/MQTT credentials to gitignored secrets.h (template provided)
- Pin home-assistant-integration to 2.1.0 from the registry
- Add esp32_usb environment for first flash / recovery
- Add READMEs and CLAUDE.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-12 23:55:15 +02:00
commit 0e4d39c47b
18 files changed
+1905

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
# BROSE9323 driver
An `Adafruit_GFX` driver for Brose flipdot panels, shared by both firmware targets.
The constructor is `BROSE9323(width, height, panel_width, flip_time_us = 280)`. This
project uses `BROSE9323 display(84, 19, 28)`.
## Build modes
| Flag | Used by | Behaviour |
|------|---------|-----------|
| *(none)* | Nano | Drives the panel through GPIO. Keeps an old and a new frame buffer and flips only the dots that changed. |
| `-D ESPSERIAL` | ESP32 | Holds no buffer. `drawPixel`, `fillScreen`, `display` and `setTiming` are sent as serial commands to the Stream passed to `begin(&Serial)`. |
| `-D FLIPDOT_PLCC_ADAPTER` | Nano (optional) | Uses the pin mapping of the PLCC adapter board. |
The flags are set per environment in `platformio.ini` through `build_flags`. Don't
`#define` them in the header.
## Notes
- In direct mode (`setDirect(true)`) every pixel is flipped right away, without a call to
`display()`.
- `print()` maps German umlauts (ÄäÖöÜüß) to the code page 437 glyphs used by the GFX
font.
- On an ATmega168 the old buffer is left out to save RAM. Every `display()` call then
flips all dots.