Skip to content

About

Firmware for ESP32-S3-RS485-CAN and the Split-Flap Display

Resources

Stars

6 stars

Watchers

1 watching

Forks

Repository files navigation

Split-Flap Gateway

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.

Latest release

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.

Hardware

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.

Installing

  • Prebuilt image, no toolchain. Every release carries SplitFlapGateway-<version>.factory.bin for a blank board (flash at 0x0, for instance with Espressif's browser flasher) and SplitFlapGateway-<version>.bin for updating a running gateway from its dashboard (Settings ▸ Open Firmware Updater).
  • From source. A PlatformIO project: pio run -t upload builds and flashes over USB, pio run -e esp32s3_ota -t upload pushes 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.

Interfaces

  • Web dashboard served by the board itself, in 14 languages.
  • REST API — openapi.yaml is 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.

In this repository

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

License

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.

About

Firmware for ESP32-S3-RS485-CAN and the Split-Flap Display

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages