Flipping the dots
A couple month ago, I was in a trip in Sweden and it's during that trip that I discovered what's commonly refered as "Flip dot display".
It's a kinetic display composed of a collection of magnetic dots, usually hundred of them. These dots can be controlled and used to render images, videos and doing all sort of effects.
I liked it so much that I decided to buy one of these display and start experimenting with it.
Tunrs out these things are hard to find or pretty expensive.
A few options are possible if you desire to acquire one of them. You can find some used display on eBay - these are are usually pretty cheap but can be hard to program. Another solution is to make your own display from scratch. Finally some manufacturer exists and you can order from them online.
I was able to put my hands on a AlfaZeta display, with a controller board.
I have acquired the XY5 model. The display dimension is 14x28 and each dot is a 15mm disk. In order to communicate with the panel, I needed some hardware parts.
- AlfaZeta FlipDot display
- USB to Mini-B cable
- USB to RS-485 converter card
- 24V variable power supply
You send instructions to the display using the RS-485 standard. The Computer will serve as the driver and send USB messages. Those message are then converted to RS-485 using the USB to RS-485 converter card ans sent to the display.
Since I couldn't find any proper tool to work on the visuals, I decided to create one. It's called Dot.
The philosophy and design of Dot is inspired by a program called Ronin. In this tool, you use code to draw images.
It's a little bit different for Dot. The program act as a pixel shader. The same function is called for each dots of the display but with different parameters (here I use X, Y coordinates and the current frame). 0 for Black and 1 for White.
I integrated Lua to Dot to be used as my "shading language". This allow me to update my visuals live, it's also easy to save/load (It's a simple Lua file).
GitHub - Dot
Flip-Dot Display & DIY Controller
Howto Flipdot With a Raspi
Flip-Dot Code Reference