Vagrearg Logo  
Flip Demo
Battery operated Flipdots (and USB fun)
After getting involved with flipdots and doing some experimentation with fliptest, it was time to create a working prototype.



Prototype version

The electronic setup uses the intrinsic LCR transient property for flipping dots. As described previously, a 350mA current has to pass through the flipdot coil for 450µs. The pulse is generated from a step-up high voltage power supply, which charges a capacitor bank. When the correct charge is reached, the energy is dumped into the flipdot coil in the correct direction and the dot flips.

Timing is performed by a small 8-bit micro-controller, which is sleeping most of the time, saving energy. The micro-controller will wake up every once in a while and start a charge-and-flip cycle.

Prototype workings

The flipdots are driven by eight totem-poles in a H-bridge setup. The low-sides of the bridges are connected to a 3-to-8 demultiplexer. This has the advantage that the power-up defaults are such that all bridges are in the off-state. The first step-up converter provides a stable supply for all logic. The second step-up converter is controlled by the micro-controller and charges the pulse capacitors in a current-mode setup. The pulse capacitors are limited by a zener diode to prevent overcharging in case of brown-out situations.

Prototype power consumption

Measurements on static current consumption showed it to be so low that it was not possible to measure the current directly. Indirect measurement of the current by observing the ripple on Vcc shows a 90mV ripple over 9.5ms. This is measured over 4.7µF plus 2x100nF capacity on Vcc. This results in a rest-current on Vcc of about 46.2µA. When the CPU is active, the same ripple is observed over 300µs, resulting in 1.47mA. However, these values are at the secondary level. The battery current would be higher. At 80% efficiency and 2.8V -> 3.786V conversion it would result in a battery current of 78.5µA in sleep-mode and 2.48mA while the processor is active.

The active current is only consumed once every second and lasts about 40ms. The effective current draw would then be about 99.4µA+75.4µA=174.8µA. The current used for turning the flipdots is significantly higher, and as such it will be the dominating factor for battery life.


You can see on above image that the prototype has one error. The footprint of the battery-holder has its pins too narrow. Nothing that can't be fixed. The production version will have this small oversight corrected.

Prototype serial commands

The system can take an external power supply and the software supports a serial input on the programming header (normally not mounted) at 1200 Baud format 8N1. A simple serial protocol lets you flip dots:
A-GFlip dot 0..6 to white
a-gFlip dot 0..6 to black
-Disable automatic flip program
+Enable automatic flip program
The automatic flip-program is re-enabled automatically if no communication is received for ~60 seconds.

An interesting problem was encountered while testing. The device would reset all the time, preventing anything interesting from happening. The 1s timing between the flips is based on the watchdog timer. It will kick a couple of times every second while the processor is in sleep. When the batteries are inserted for the first time, then the pulse capacitors are empty. It turned out that the first time charge (from battery voltage level to 9.1V) was longer than the time for the watchdog to reset, effectively killing the device and starting from scratch. Once the system is running, a rest-charge on the capacitors is maintained at over 7V, which means a significantly shorter charge-timing.

[Update: 23-may-2013]

Prototype battery life

Finally, the batteries have run down on the test. The two AA batteries of 2500mAh ran for 42.8 days. That is about 5542600 flips at an average of 1.5 flips/s. Each flip consumes 1.69mJ. The average battery voltage (area under the curve divided by time) calculates to 2.56V. The available energy is then 2500mAh*2.56V or about 23kJ. The effective conversion efficiency is 23kJ/1.69mJ/5542600 which is about 40.6%.

The effective efficiency sounds worse than actually is the case. The batteries have an internal resistance that increases over time. When the batteries are about to run out, it is estimated that the internal battery resistance consumes 1.5..2.5mJ per flip, which is released as heat. New batteries only consume 0.1..0.2mJ per flip. That would suggest that one third of the energy is consumed by the batteries. The efficiency of the entire electronic setup is then much better at >60%.

Considering the CPU energy consumption makes even better numbers. The CPU runs at 3.786V with an effective current of 174.8µA. Over the lifetime of the batteries it uses 2445J of energy or 10.6% of the battery content.

The switching power supply conversion efficiency is at least (2445J+5542600*1.69mJ)/(23kJ*2/3) or >76%.

Click on image to enlarge.

[Update: 07-jun-2013]

Production version

A production version was designed after the successful prototype version. Small PCB errors, notably the battery holder's footprint, were fixed. A last-minute change in the design was to add a USB-to-serial converter. This allows the device to be powered and controlled via a PC and lots of fun can be had.


The production changes will have impact on the battery life. The addition of a series diode, to prevent USB power from trying to charge the batteries, reduces effective battery life by 10..15%. However, having serial fun is also worth something.

Modifications to the firmware, apart from small bug fixes, include Vdd voltage measurement. The addition of USB power makes the micro-controller's Vdd line change depending on whether batteries or USB powers the device. The micro-controller has an internal voltages reference which is used to adjust the ADC measurements for the 9.1V generator.

Software control application

A QT application was created to interface with the FlipDemo module and allow computer control. The application works on both Linux and Windows.

The layout and function should be obvious. If not, try clicking on the various parts of the window and buttons ;-)

You do not need to have the FlipDemo module attached to test the application and various user-generated flip programs. The GUI will show you what would happen if you do a dry-run.


Windows executable:
Source code: qflipdemo-1.0.1.tar.gz

The windows executable was created by cross-compiling from my Linux box using MingW. For Linux you need the QT development libs installed (tested with QT 4.8), run qmake on the project file and type make.

Posted: 2013-04-10
Updated: 2013-06-07

Overengineering @ request