Public Access
- Commands run on '\n' instead of busy-waiting for a byte count, which fixes s/F/T waiting for the next command and P drawing 0xFF garbage - Invalid bitmaps no longer leak their data as commands; bitmap data is streamed so full-screen bitmaps still fit - Store flip time as uint16 with magic marker, validate 50-2000 us - Overflow-safe millis() handling for the periodic refresh - Run the full refresh only after D or when serial is idle, so incoming data is not lost while the redraw blocks - Put the boot refresh measurement behind MEASURE_REFRESH - Fix DEBUG hex output and use F() strings to save RAM - Driver: direct mode now updates the old buffer instead of re-setting the new one Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 todisplay(). 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.