Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 3.42 KB

README.md

File metadata and controls

42 lines (28 loc) · 3.42 KB

flipdots

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)

Repo

/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.

Hardware

flip_dots

flip_dots_wiring

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.