Public Access
ESP32: controller
PlatformIO environments: esp32 (OTA) and esp32_usb (USB)
The ESP32 decides what is shown on the display. It never touches the panel itself. The
BROSE9323 driver is built with -D ESPSERIAL, so every GFX call is sent over Serial
(115200 baud) to the Nano.
Files
| File | Contents |
|---|---|
main.cpp |
setup, OTA, clock / power logic, Home Assistant callbacks |
libs.h |
includes and global objects (display, MQTT, WiFi, pins, timezone) |
bitmaps.h |
1-bit bitmaps (Pikachu, thought bubble, Nintendo logo, ...) |
secrets.example.h |
template for secrets.h (WiFi and MQTT credentials, gitignored) |
Features
- OTA updates through ArduinoOTA. Hostname:
FlipDotDisplay. - OTA panic window: after a crash or watchdog reset, the ESP32 runs only the OTA handler for 15 seconds before it starts the main code. A firmware that crashes on boot can still be replaced over the air.
- NTP time with timezone
CET-1CEST,M3.5.0,M10.5.0/3(Europe/Amsterdam). - Home Assistant through MQTT (
home-assistant-integrationlibrary) with two switches:FlipDotDisplayClock: clock on, or the Nintendo logo when offFlipDotDisplayPower: turns the display off through the relay
- Relay on GPIO 13 switches the power for both the panels and the Nano.
LOWturns it on. After switching on, the ESP waits 3 s so the Nano can boot before frames are sent. - Status LED (built-in) blinks fast when WiFi is down and slowly when connected. It is off at night or when the display is powered off.
Schedule
| Time | Display |
|---|---|
| 07:00 – 17:00 | Pikachu and the clock, updated every minute |
| 17:00 – 22:00 | Yawning Pikachu and the clock |
| 22:00 – 23:30 | Clock drawn only on the quarter hour; power is off in between |
| night | Screen cleared, power off |
Adding bitmaps
Convert an image with image2cpp to "Arduino code",
horizontal, 1 bit per pixel. Paste the array into bitmaps.h and draw it with
display.drawBitmap(x, y, bitmap, w, h, 1). The display is 84 × 19 pixels.