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.

FlipDot

Hardware

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.

Components

Connecting Everything

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.

FlipDot

Software

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.

Dot

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

References

GitHub - Dot
Flip-Dot Display & DIY Controller
Howto Flipdot With a Raspi
Flip-Dot Code Reference