flipdot displays are kind of like led displays except *way* more steampunk!
each pixel is a 15mm disk that physically flips back and forth to reveal one side or the other. the version shown here has black / white pixels but you can order a bunch of other colors (including mirror finish!) from alfazeta.
Step 1: Connect Usb to Rs485 Board to Raspberry Pi
alfazetas flipdot signs expect to be on an rs485 bus. there are several ways the raspberry pi could talk to an rs485 bus, we will demonstrate one very simple method that uses a half-duplex (one way) usb to rs485 dongle to transmit to the bus without listening (which is ok because we dont need the flipdot display to talk back to us).
the sparkfun usb to rs485 converter features an exar sp3485 rs485 transceiver to transmit an rs485 signal to the bus (but not listen) and an ftdi ft232rl that bridges the exar chips serial uart connection to let us talk to it from the raspis usb port.
when you order your usb to rs485 converter from sparkfun make sure to also get a 3-pin 3.5mm pitch screw terminal. solder this terminal to the a / b / g port furthest from the usb connection (we forgot to order ours and used a 5-pin terminal we had laying around instead).
connect wires to the a & b terminals (we dont really need the g[round] wire unless we have a fancier rs485 bus) and plug the board into the raspi with a usb mini-b (*not micro*) cable.
Step 2: Connect Flipdot Sign & Set Dip Switches
now we are ready to hook up the flipdot display to the rs485 bus and 24v power supply!
we ordered a 30 volt 5 amp variable power supply from amazon as we are planning to drive several displays at once, a single display consumes less than half an amp at 24 volts so you could probably get by with something less.
first lay the sign face down *gently* on a clean surface (we use a piece of black poster board).
*make sure the power is off before you connect or disconnect wires or flip dip switches*
connect the a and b wires of the rs485 bus to the terminal next to the dip switches as shown. then connect the 24v and ground lines from your power supply to the other screw terminal.
the 3 switch dip on the left controls the expected data rate, set switches 1 & 2 on and 3 off (as shown) to set the data rate to 9600bps. the 8 switch dip controls the display address and test mode. the first 6 switches control the address, set switch 1 on and 2-6 off to set the address to binary 000001. for now set switch 7 to off and 8 to on (as shown in the second picture) to put the display in test mode. if you flip it upright and then turn the power on you should see the entire display flip from black to white and then back once a second!
now turn the power off and set switch 8 to off so that we can control it from the raspberry pi.
Step 3: Setup Python Script on Raspberry Pi
finally we get to play with the code! either connect your raspi to a monitor, mouse & keyboard or ssh into it from your laptop.
the latest version of raspbian has support for the ftdi232rl (the usb to serial chip on the sparkfun board) builtin so you dont need to install the drivers from ftdi. you *do* need to add the user 'pi' to the 'dialout' group (which owns /dev/ttyUSB0, the interface created by the linux open ftdi driver) so you can access the serial port:
(from a terminal type the following, *not* including the '$')
$ sudo usermod -a -G dialout pi
now restart the raspi to update the permissions.
download our python script from github and save it as 'flipdot_demon.py'.
make sure everything is plugged in as shown, power up your flipdot display and enter the following at a terminal:
$ python flipdot_demon.py
you should see a message scrolling across the display! now try changing the variable 'question_string' on line 31 to your own message and run the script again.
Step 4: Profit (... Watch Flipdots Go!)
congratulations you have a single working flipdot display!
now order some more displays and build something awesome ;)