Messing around with Flip-Dot displays.
Flipping a dot isn’t too hard, but how do you proceed when you have to control hundreds of them ?
If you look at the picture below (sorry for the poor quality, I can’t take pictures of it myself as I haven’t received the displays yet), you can see the display's back board. I extracted a 3x3 dots area.
You may be able to distinguish the connections. Below is a drawing of it to make it clearer (I omitted the part associated with the LEDs). Also the columns connections are not visible on the picture as it seems they are on the other side of the PCB.
Below is an equivalent schematic, but clearer and easier to work with :
From now on we’ll stick with this schematic and look at the theory of flipping dots in such an assembly.
Each column can either be connected to GND or to +24V (respectively SET and RESET the dot).
Each row has two separate inputs, +24V to SET the dot, and GND to RESET the dot.
Let’s consider a blank (black) display and we want to flip the upper left dot (column 1, row 1). We should connect ROW_1_SET to 24V, COL_1_SET to GND, send a pulse of 24V, and open the switches again. Current can only flow through the first dot, as it is blocked by the dual diodes (those are required otherwise the current will be free to flow through every other coils) and open switches elsewhere.
To UNSET it, we have to reverse the direction of the pulse through the coil. So we connect the column to +24V and the row to GND.
To flip several dots at the same time, for example (column 1, row 2) and (column 2, row 2), we can connect COL_1_SET and COL_2_SET to GND simultaneously, and send a pulse through ROW_2_SET.
Note that NOT ALL combination of 2 or more dots can be set at the same time. We cannot simultaneously set dots that don't share the same column or same row without affecting other dots on the board. Below an example of trying to set (col 2, row 1) and (col 3, row 2).
You can see that the middle dot (col 2, row 2) will have current flowing through it and will be SET even if we were not targeting it in the first place.
It's obvious that a mishandling of the switches may easily create shorts and turn the flip-dot in a smoke generator, eg. by closing ROW_X_SET and ROW_X_RESET at the same time.
We established how to flip each dot of the display by a careful combination of connections on each row and column. Moving those switches will be the job of the controller which will be commanded by the code (driver) on the ESP32.
I will quickly cover how a dot flips before looking at the bigger picture.
Each dot contains a permanently magnetised moving surface (usually a disc, or a triangle in my case), usually black on one side, and yellow on the other.
To turn the disc, ie. flip the dot, a coil is placed underneath, along a rod (core) of ferromagnetic metal. When a short pulse of current goes through the coil, the metal core becomes magnetised, with a polarity depending on the direction of the flow of current through the coil during the pulse. Once the pulse is over, the core will retain it's polarity until a new reversed pulse is applied.
When magnetised in either direction, the metal core will attract or repulse the permanent magnet on the yellow and black surface, hence flipping the dot and locking it in it’s new position.
(Pay attention to the polarity of the core tips, drawings from Eldi datasheet)
Why does the core retains it's polarity once the current is removed you may ask (as opposed to electromagnets) ?
Well, I'm not an expert but I believe the core is made of a metal with specific magnetic properties, such as high permeability (its ability to become magnetised when subjected to the magnetic field of the coil), and high coercivity (its ability to remain magnetised afterwards).
This would turn the ferromagnetic core into a permanent magnet once magnetised by the coil, and it would remain so until the next opposite pulse through the coil. High coercivity seems a bit counter intuitive as it means it's more difficult to magnetise the core in the opposite direction every time we flip the dot, but that would explain why quite a high amount of current is required during the pulse (more on this later).
On the picture below you can clearly see:
ANNAX flip dot anatomy (source)
One advantage of these displays is that you can remove all current and the display will remain as is, hence very cost effective for static messages.
We'll discuss later the power requirements to flip 1 or more dots simultaneously but for now, let’s take a step back and look at how a whole display is made.
So, one morning, I wake up, scroll through some Reddit posts (one of the bad habits I have), and stumble upon a guy posting about his flip dot display.
Well, it didn’t take me long to figure out I ‘needed’ one. Before that day, I had never heard of those displays, though probably I had seen some on busses or at airports, but never thought about it from a technical point of view.
I browsed internet and found that these things are pretty expensive. Especially when you include the shipping fees.
You pretty much have 3 possibilities discussed below:
The brand new route is probably the easiest (and least fun) route, but it will guarantee you get a working display with a proper controller quickly. Though, it comes at a price :
AlfaZeta makes brand new displays, with a controller board. Their XY5 displays (14x28) sells around 500€ (VAT and shipping included). That’s 1.27€ per pixel, but you get the comfort of having a working, brand new, customisable display with a driver/controller board included.
Another high end brand, Breakfast LLC provides plug and play displays for professionals, but their website suggests those would be at a price waaay beyond what I'm willing to put, so I didn't bother asking for a quote :
Breakfast LLC Flip Discs
If you want to make your own board from scratch, ie. buying flip dots new from a supplier, then make your own PCBs for the display and controller, be ready to break the bank. Each dot is a relatively complex component with coils and moving parts.
These are a few suppliers I could find :
I'm waiting for the quotes of the last two, but Magsign made me a quote for 1000 dots for 3500$, so 3.5$ per pixel, and this doesn't include the manufacturing of the PCBs, controllers, and other required components to make it work. Their dots seem to be of very high quality though, and are rated for more than 100 million flips !!!
Even if I would have liked the flexibility and challenge of making it all from scratch, the price (and the perspective of making a schematic and soldering of 1000 dots + 1000 dual diodes) put me away from this solution.
Most used displays come from urban busses. Either the bus got scrapped and spare parts end up on the market, or they are being retro-fitted with the more modern LED displays.
Common brands include Hanover, Luminator, and ANNAX and eBay is the easiest place to find flip dots displays, though watch out for the delivery and import fees as it may double the advertised price.
At the time of writing, a used Hanover display sizing 98x16 can be found on eBay for 220€ + 270€ for shipping (seller psvautomobilia). That’s 0.31€ per pixel, but that’s a bit too big for my use.... Read more »
Ok so I thought I should warn you now, I DON’T KNOW WHAT I’M DOING.
Be ready for any outcome. Maybe I’ll end up having a working flip-dot display, maybe I will end up in jail for burning down my building doing activities outside of my insurance coverage.
Though I passed most smoke tests successfully over the past few years playing with Arduinos, I don’t have any formal training in electronics and I cannot guarantee that what you see here will fall in the best practices category.
I rely mostly on what’s available online from fellow hobbyist, and guess what, there isn’t much about flip-dot displays out there.
I’ll do my best to make it work and hope to get some useful feedback from more knowledgable/experienced people out there, and if anything, help somebody else with their flip-dot displays.
Alright, enough talking, let’s get into it.