Quick start · choosing a configuration · provisioning & calibration · the SplitFlap, Matrix and LCD gateways · the companion and its apps · APIs and wire protocols — the whole ecosystem, documented in one place.
Firmware for the Waveshare ESP32-S3-RS485-CAN that puts a mechanical split-flap display on your network. It bridges the modules' RS-485 bus to WiFi and offers a web dashboard to provision, calibrate, diagnose and drive the wall, a REST API, MQTT with Home Assistant discovery, and over-the-air updates. It is the middle piece of the SplitFlap ecosystem, between the module firmware and the companion app that decides what the wall shows. The blog post tells the story; the documentation covers everything else.
Waveshare ESP32-S3-RS485-CAN (Amazon). RS-485 on GPIO 17 (TX), 18 (RX), 21 (DE/RE); PCF85063 RTC on I²C (SDA 39, SCL 38); debug serial on the native USB port at 115200 baud. The bus runs at 9600 baud, 8N1.
SplitFlapGatewayCase.3mf is a printed case that replaces the
Waveshare enclosure, clips the gateway onto the modules' DIN rail and takes 12 V and the bus
from the conductor rail through pogo pins — see
Gateway Case.
- Prebuilt image, no toolchain. Every release
carries
SplitFlapGateway-<version>.factory.binfor a blank board (flash at0x0, for instance with Espressif's browser flasher) andSplitFlapGateway-<version>.binfor updating a running gateway from its dashboard (Settings ▸ Open Firmware Updater). - From source. A PlatformIO project:
pio run -t uploadbuilds and flashes over USB,pio run -e esp32s3_ota -t uploadpushes an update over WiFi. SETUP.md is the from-nothing walkthrough.
First boot. With no WiFi configured the gateway raises its own access point,
Split-Flap-GW / 12345678; open http://192.168.4.1, enter your WiFi under Settings, and it
joins your network (it then appears as splitflap-gw-xxxxxx.local). The full set-up, and what
to do when a web update fails, is in
the gateway guide.
- Web dashboard served by the board itself, in 14 languages.
- REST API —
openapi.yamlis the full specification (import it into Postman or Swagger UI); the Gateway API page is the readable reference. - MQTT — bus frames and module events published under
splitflap/, control topics, and optional Home Assistant auto-discovery. - RS-485 — the module wire protocol, documented in Bus Protocol.
Reels printed with symbol flaps (♥ ↑ ↓ ☺ ← →) are supported end to end from v4.1: clients
send and receive the symbols, the gateway carries them on the wire as the reserved letters
h u d s l t, and a module without the symbol printed on it shows a stand-in instead. See
ARCHITECTURE.md.
src/ |
The firmware (ARCHITECTURE.md explains the non-obvious decisions) |
ui/ |
The dashboard page and its translations; tools/build_ui.py bakes them into the firmware |
openapi.yaml |
The REST API specification |
SETUP.md |
Building and flashing from source |
RELEASE_NOTES.md |
What changed in each version (also on the Releases page) |
BLOG.md |
Why the project exists |
SplitFlapGatewayCase.3mf |
The rail-clip case |
CC BY-NC-SA 4.0 — share and adapt for non-commercial purposes, with credit, under the same license. Software © Alex Van de Putte. The split-flap module hardware and the original bus protocol are by Adam G Makes.