Advice on flip dot Display

Hi, I’m a uni student doing a project building a flip dot display. 7 years ago a YouTube channel called ‘The 9000’ produced an excellent couple of videos on the topic, and in the bio of the channel he claims to be a founding member of this maker space. I was curious whether anyone had the details of this fella in particular such that I might ring him up for technical advice. It would be much appreciated!

1 Like

Hello Gabriel,
I’m happy to answer any questions you have. You can reply here, or start a private chat if you like.

Carl

1 Like

Hi Carl,
I haven’t yet accrued enough points to set up a DM on here! Would it work if you message me first? It would be great to have a call too if you’re willing to give me that much of your time. Looking forward to a discussion, Gabriel

I see in your email you’re asking about how to drive a lot of dots with an Arduino. The answer is shift registers! I can give you a basic overview of how these panels work, and what a driver circuit has to do.

The panels, as far as I have ever seen, are just arrangements of rows and columns. At each intersection there’s an electromagnet. The driver has to be able to supply current, just briefly, to a row and column to make the dot flip one way or the other. You’ll also see diodes all over the panel, typically one per pixel. These prevent current from running through all rows and columns at the same time. That’s what lets you flip just one dot (in practice, one column or row), and not all the dots at once.

On my panels, the rows have two connections, one on each end. One side is for driving high only, and the other side is for driving low only. The columns have a single connection each, which you drive either high or low. And when you’re not actively driving a row or column line, it has to float (be effectively disconnected).

A property of the magnet is that when you energize it in either direction, it “remembers” it magnetization after you remove the power. So when you flip a dot then remove power, if you try to manually flip the dot to the other side, it will flip right back. To flip it to the other state, you have to briefly pulse the coil in the opposite direction. This complicates the driver circuit, because it has to allow supplying current in both directions. A pulse of current in one direction will flip a dot this way, and a pulse in the other direction will flip it the other way.

Your panel will be different to mine, but is probably very similar in how it’s wired. The first thing you’ll need to do is determine how your board works. You can do that will batteries and jumper wires, and patience. Remember to only supply brief pulses! Don’t leave it connected for long, or it may start to smoke. Just a fraction of a second should do it. Use a small resistor (maybe 100 ohms) as a current limiter in series with the battery. Your panel might want 12V, or 24V, or something else.

My driver does one column at a time. The software figures out which dots have to flip one way, and sets the corresponding row-high lines high (leaving the row-low lines floating), and then briefly energizes the required column lines low. Then for the remaining dots it turns on the row-low lines, leaving the row-high lines floating, and briefly sets the required column lines high. Then it moves on the to the next column.

You need a driver for each row and each column. On my panels, there’s one line for each column, but two for the rows (row high and row low). This is because of the necessary diode arrangement on the panel. To flip in one direction, my panel needs 24v on the row high line, and 0v on the single column line. The row low line is not driven either way; it floats. To flip the other way, I put 0V on the row low line, 24v on the column, and let the row high line float.

To handle lots of rows and columns, I use shift registers. It takes two bits to allow for high, low, and the extra “floating” state. To go from 5v outputs to 24V, there’s a transistor to supply the high-side drive current.

I should be up front and tell you that my driver is not very robust. The “high side” is OK, but the “low side” is done by cheating. All the low-side drive current flows through the shift register chips, which they do not like. I have blown out multiple driver boards. Some day I will get back to this project and re-design the low side driver to be less explosive. You might learn something from my design, but I would not just duplicate it. Eventually it will die.

If you’re an electronics beginner, I can give a few tips. The IO lines on a microcontroller cannot supply enough current, and a high enough voltage, to directly drive the board. There is no chance of that working at all. You definitely need a driver circuit. And for any reasonable number of rows and columns, you’ll need shift registers. Both the row and column drivers need to output both the high voltage, the low voltage, and allow the output to float, undriven either way.

The natural circuit for a driving just a single dot is an H-bridge. This has two outputs, each of which can swing high or low. The solenoid goes in between. But that just works for a single dot. For a panel with dots in a matrix, you’ll also want a “half bridge”, which is basically just two transistors in series, one to pull the output high, and one to pull it low. (An H-bridge is just two of these in one package.) Just make sure you can never, ever, have both transistors on at once. Make sure it’s hardware preventing that deadly condition, not just software.

The two outputs of an H-bridge can drive the two row lines, and the single output of a half bridge can drive the column lines. The H-bridge has to allow for only driving one side at a time. Or you can just use two half-bridges.

Another thing to watch for is the kickback current. When you drive a solenoid, and then shut off the driver, you get a big reverse voltage that the driver will have to withstand. On the schematics for my boards, there are lots of diodes with one end tied to 24V. Those are there to absorb the reverse voltage, and clamp it to 24V, so it won’t hurt the shift registers. You’ll want something like that, too.

I haven’t looked around lately, but you might find half-bridges that you can drive with a serial interface (SPI or i2c), and that could be a good way to go.

I hope this is helpful to you. If you have more specific questions, I’m happy to talk more.

Good luck!

Carl

You are a legend, thank you so so much!