Controlling an electromagnetic flip disc display (Alfa-Zeta Flip-Dots)

Hi all,

I’ve had a side project that I’ve finally found some time to work on, and I wanted to share my initial progress here.

I got ahold of an electromagnetic flip disc display manufactured by a company called Alfa-Zeta. You can find out more about their displays here:

https://www.flipdots.com/

These displays are super cool; they use electromagnets to flip little discs from one color to another (in this case black and white) and they maintain their state when they lose power. They’re especially fun because of the sound they make when they switch from one color to another.

Here’s a display hooked up to a Sparkfun Photon Redboard with an RS485 shield:

Following Alfa-Zeta’s reference materials, I wrote a short script to drive the display from the Photon. Nothing internet-connected yet, just a basic test. Here’s the script:

//
//
// Flip Disc display demo application
//
// Author: Zach Supalla
// 
// Description: Flips the discs back and forth on a seven-by-seven display
//
//

// Transmission protocol for the flip disc display
byte header =               0x80;
byte instant_command =      0x87;
byte delayed_command =      0x88;
byte refresh_command =      0x82;
byte end =                  0x8F;

// The address of my flip disc display (set with dip switches)
byte display_address =     0x00;

// Messages
byte white[7] = {0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F};
byte black[7] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
byte white_stripes[7] = {0x7F, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x7F};
byte black_stripes[7] = {0x00, 0x7F, 0x00, 0x7F, 0x00, 0x7F, 0x00};

void setup() {
    Serial1.begin(9600);
}

void loop() {
    write_immediately(display_address, white_stripes);
    delay(1000);
    
    write_immediately(display_address, black_stripes);
    delay(1000);

}

// Write a message immediately to the display, without refreshing
void write_immediately (byte address, byte message[7]) {
    // Send the header info
    Serial1.write(header);
    Serial1.write(instant_command);
    Serial1.write(address);
    
    // Now send your message
    for (int i = 0; i < 7; i++) {
        Serial1.write(message[i]);
    }
    
    // End the message
    Serial1.write(end);
}

Here’s what happens when you run the script:

Next steps are to drive some more complex visualizations, and connect it to the internet in some way. I’d love to show sparklines of interesting data from the web, like web traffic to www.particle.io, or something along those lines.

More to come!

9 Likes

Those signs are really cool.

They remind of the Sharp Memory LCD’s in how they hold their state when power is lost. I love the fact that they only need to pull power when changing state which is ideal for battery powered applications.

Do you have a good USA based source for these signs?

They look perfect for an Electron connected sign board that you could update remotely.

Please do keep us updated with your progress on this.

Nice project!

How much did that module cost?

I'm not aware of any; Alfa-Zera is the only manufacturer that I've found that still makes things like this. You can find old vintage electromagnetic flip disc displays, but they tend to require a lot of reverse engineering. I'm happy with something supported by a company that is in business today and provides documentation :slight_smile:

I can't remember the exact amount; more than $100 and less than $200.

Yea, I couldn’t find any other resellers either.

Looks like they make you email or call them for pricing on everything :smile:

Bump this with fresh information about another supplier with pricing for big flip disks:

Am 07.01.2019 um 20:34 schrieb Niel Nielsen <niele@scoretronics.com>:

The size of the disks in our smallest panel are 29mm diameter and we have three more disc sizes going up to 57mm.
The price of our smallest 5 x 7 panel (you would buy five of these to make a 7 x 25 display) which has 29mm disks US$330 each.
Our pulsing controller (our SC4200) board is usually sold with only enough row and column drivers to meet the customer’s needs to reduce costs. A SC4200 to drive one line of panels that is five panels wide has a price of US$827.

Thanks,
Niel Nielsen
ScoreTronics, Inc.
7320 South Madison Street, Unit 1100
Willowbrook, IL 60527
630-323-4600
630-729-3206 (fax)

1 Like

Very nice, how did you connect the control unit to the RS485 shield? I purchased some of AlfaZeta’s 7-segment displays a couple weeks back, and for the life of me I can’t figure out how to interface with the things.