Driving Alfa-Zeta Flip Dots with an ESP8266
IMG_4597.MOV
This repo contains MCU code for driving dots on a 14x28 Alfa-Zeta XY5 display from my blog post here. It's an experimental hack, but could serve as starting point for others wanted to do similar projects. It could easily be tweaked to handle larger or smaller panels. See flipdots-ios for the iOS / iPadOS / macOS client app.
Features:
- Communicates via RS-485 to an Alfa-Zeta panel using their protocol
- Listens for UDP packets containing a full screen buffer to draw to the board
- Can draw locally with Adafruit GFX library
Nice-to-haves that currently aren't implemented:
- Sending delta changes (the full frame buffer is sent, which is inefficient in some cases)
- Sending commands to run routines independently of an active client (e.g. send a command to scroll a string and then the client disconnects)
/mcu
- The main PlatformIO project. The project is configured for a NodeMCU ESP8266 but any compatible hardware can be substituted. The Arduino framework is used.
FlipDotController.h
- The Alfa-Zeta protocol implementation to communicate with the board over serial / RS-485.FlipDotMatrix.h
- Integration with the Adafruit GFX library.main.cpp
- The main driver of the MCU, demonstrating a UDP packet mode and drawing locally.
Build the firmware with run pio
and follow the PlatformIO docs to upload it to a device.
/tools
- Various tools that helped with testing, mostly written using Processing.
- Alfa-Zeta XY5 14x28 (which is two 7x28 panels chained together)
- NodeMCU ESP8266
- 3.3v RS-485 to TTL see
FlipDotController.h
for pinout - ALITOVE AC 100-240V to DC 24V 5A Power Supply
- BINZET DC 12V 24V to 5V 5A used to step down power to the MCU
Alfa-Zeta provides documentation for their boards on how to configure the DIP switches on the back for the baud rate, panel addresses, magnetizing time, and a test mode. This documentation can be found in other repos as well as requested from the company (although it may require purchasing a panel first). The same goes for their RS-485 protocol which is really simple and mostly implemented in FlipDotController.h
. I'm choosing not to include those documents in this repo because I'm not sure of the company's policy, but again, they are easily found by searching.
The 24V -> 5V converter isn't necessary if you power the MCU independently with a 5V source, I just wanted a single power supply. I've since put the entire project behind a smart switch so I can say "Hey Siri, turn the flip dots on" and they come to life.