Making a connected flip-dot installation

Jul 22, 2019 · 5 min read

Sourced from the Speedfactory installation, adidas was kind enough to leave us with two custom made flip-dot panels. These had sparked our attention since the moment they were installed in the project and for a while they had been collecting dust in a backroom of our office. Now that we had some time to play with these panels again, we built ourselves some connected communication boards for internal use in our office displaying birthdays, lunch time, Twitter mentions and other special company updates and messages.


These flip-dots are produced by Alfazeta and come in panels of 7×28 dots. Our displays consist of 10 of these forming a 70×28 grid.

Slack Bot

We quickly set up a Slack app with a /flipdot slash command in our workspace and wrote a node.js server and client to catch any payload sent to it. This client painted the message to a canvas using an optimised pixel font and sent the image data to the flip-dot as a TypedArray.

This worked perfectly for text messages but we also wanted the ability to send images or even videos to the flip-dots.

Slack Bot v2

The video system required a bit of special attention because of the flip-dots low frame rate. We couldn’t simply stream a video in real-time, thus we worked out a promise based system that listens to completed writes by the flip-dot panel’s controller before painting the next frame.

The Client

PM2 also makes sure that scripts reboot when they crash and has some other handy features like a logging system.

Since we are not 24/7 at the office the NUC’s are programmed in their BIOS to power on every morning at 8:55h and a Windows task in scheduled at 19:00h every day to power off the machine. The BIOS is also programmed to power on the NUC automatically after a power failure. Together with the PM2 setup the installation handles itself completely without any human input.

USB Switch

More Fun

  • Anniversary Bot: scans our HR software for birthdays and Resn anniversaries of employees every day.
  • Lunch Bot: listens to a sign from our office chef in the lunch channel.
  • Beer Bot: scheduled to print its message on Friday’s end of day.
  • Twitter Bot: printing mentions of @resn_has_no_i.
  • Clock: a simple digital clock.
  • Countdown: a countdown to a set date and time.
  • Image and Video upload: displays the file and stores it for easy access later on.

Let’s see what else we can connect to our new toy!


Infecting your screen for your enjoyment.