Tuesday, June 23, 2020

Build a wireless energy POV display propeller clock with Android app

A POV display aka propeller display/clock is a display that uses the Persistence Of Vision (POV). By turning just a few LEDs on and off at a specific position around a circle, a full display that would normally require hundreds of LEDs can be created. This illusion of a still image is due to the eye's slow refresh rate. Without this perk we would see moving pictures instead of videos and obnoxious LED lights caused by PWM in daily life.

If you think about it is is an interesting and fun project to experiment with. This will be more obvious in part 2 where we will discuss the code and the basic principles. It can be used as a clock or display text from internet in real-time or for image display.

Here is a video with the POV display controlled by an Android app. Needless to say it looks better in person. The display can be styled by different LED colors.


POV display construction overview

POV display construction 01

Part list

Power Transmitter board
  • 1 x 92mm PC fan
  • 4 x 4mm screws with nuts for fixing the board on the fan
  • 1 x ATtiny13A microcontroller for controlling the main TX coil
  • 1 x female (receptacle) header 1 row 6 pins (2.54 mm spacing) for programming the microcontroller
  • 1 x DC jack. A panel mount one connected with wires is better than the one I use
  • 1 x 12V to 5V linear voltage regulator
  • 1 x 0,1uF ceramic capacitor 2,54mm (C4)
  • 1 x 0,33uF ceramic 5mm (C5)
  • 1 x 470uF/16V electrolytic capacitor 5mm (C1)
  • 1 x 33nF film capacitor (important) (C2)
  • 1 x IRFZ44N N-Mosfet or equivalent (Q4)
  • 2 x BC337 NPN transistors (Q1 and Q3)
  • 1 x BC327 PNP transistor (Q2)
  • 1 x 10k resistor (R5)
  • 2 x 47k (R2 and R4)
  • 2 x 2.2k (R1 and R3)
  • 1 x 100mm x 110mm double sided copper clad board
All resistors are normal size low power through hole with ~8 mm distance between pins.

Main (top) board
  • 1 x EFM8BB31F32I-B-QFP32 microcontroller
  • 1 x USB to Serial converter (UART) for programming the MCU
  • 1 x ESP8266-01 module
  • 1 x female header for ESP module 2 rows 4 pins 2.54mm. It can be made from 2 headers with 4 pins.
  • 1 x female header 1 row 6 pins 2.54mm for programming the main microcontroller
  • 16 x 0805 SMD LEDs with a desired color (yellow or white works better for text)
  • 1 x red, 1 x green, 1 x blue 0805 SMD LEDs
  • 1 x AH372-P-B Hall sensor (from Farnell) or equivalent
  • 1 x AMS1117-3.3V voltage regulator
  • 1 x 12V low power zener diode
  • 1 x 33nF film capacitor (important)
  • 1 x SK24A Schottky diode or equivalent
  • 2 x 3mm x 24mm screws with 3 nuts for each screw
  • 1 x 160mm x 50mm double sided copper clad board
  • 1 x 80mm x 80 mm single or double copper clad board for making the circular receiver coil board. This can be integrated in the main board since a manufacturer can easily cut any board shape.
  • other generic resistors and capacitors (see the schematic). Most are 0805 surface mount which is preferred for a spinning board.
The PCBs are not made for factory manufacturing because they are home made using the UV method. If you plan to order them from a manufacturer then carefully examine the gerber files that you will generate if the traces and holes are correct.


The brain of the display is EFM8BB31F32I-B-QFP32 microcontroller set to run at 49MHz and it uses ESP8266-01 module to connect to internet and to local LAN to communicate with an Android app. Under the ESP module is a piezo diaphragm for producing alarm sounds.
On the left side there are two screws with nuts acting as a counterweight. This must be tweaked until the vibration is reduced to the minimum. Is not very elegant but I don't know of any other solution for now.
Between the two screws there are 3 LEDs red, green, blue used for the rim color and then two sets of 16 LEDs. One yellow with 16 resistors and one set blue with no resistors. After I tested the board I've noticed it was not a good idea since the LEDs need to be perpendicular to the center otherwise the display image will look skewed. In the schematic this is corrected.

The board is powered through the two screws in the middle. The two nuts on top are used to press the board on other two nuts beneath the board that are used to conduct power to the board. Under these second pair of nuts is a circular board that captures the magnetic fields and it sits on two other nuts for electrical connection and also for height adjustment.

POV display construction 02

POV display construction 03

POV display construction 04

POV display construction 05

POV display construction 06
Inductive wireless power receiver

Inductive wireless power transmitter
Inductive wireless power transmitter

POV display construction 08

The whole assemble is supported on two screws used also for powering the top board. Pulling out the fan is achieved by removing a small ring connected to the shaft on the other side where you normally put the oil. Removing the ring is a bit tricky. Try using some curved tweezers.

POV display construction 09

POV display construction 10

POV display construction 11

Warning: be sure nothing is loose on the board. If something breaks from the board at full speed it could hit someone with 40 Km/h speed. For safety wear glasses during testing and keep the device in an enclosure after it is ready.


Inductive wireless power transmitter

Inductive wireless power transmitter

The 92mm PC fan used here has three main roles: to support the display inside a case, to spin the top board and for cooling.

The board is powered with 12V through a DC jack (panel mounted ideally) and an external power switch connected using wires. The fan wires are connected to the board through another switch so the board doesn't spin during programming of the top board microcontroller. U2 can be a generic 5V voltage regulator for powering the U1 IC which is an ATtiny13A microcontroller that is used to produce a 267 KHz square wave. A more elegant solution would be the use of a ring oscillator using 3 Schmitt-triggered inverter gates, resistors and capacitors.
Q1, Q2, and Q3 transistors form a gate driver for the power mosfet Q4. L1 is a printed circuit board  inductor with 7 turns, 2.5 mm trace width, 1.3 mm clearance and together with C2 capacitor forms an LC tank oscillator. C2 must be of a plastic film type.

Inductive wireless transmitter bottom view

I did measure the efficiency and output power but I forgot to take notes and I can't redo it now in circuit. All I can remember is that the input power is 12V / 0.5A and that the efficiency is not very good. The mosfet and the capacitor gets a bit hot without the board spinning. Maybe with a better circuit that would measures the mosfet drain voltage and adjust the oscillating frequency depending on the load the efficiency would be better.

Inductive wireless power receiver


The receiver coil is the same as the transmitter one and it could be integrated in the main board.

POV display main board

POV display main board

Starting from the left power is coming through the two screws that are connected to the printed inductor board beneath and together with C6 film capacitor forms an LC tank oscillator. D1 is a Schottky diode to rectify the AC voltage. C7 is a bulk capacitor and perhaps could be lower in value.
D5 is a 12V Zener diode to cap the input voltage. Unloaded voltage from the LC oscillator is around 90V but will drop quickly under even a small load so the Zener diode will not see much current.
Then a 3.3V voltage regulator provides voltage to the LEDs and microcontroller which is a 3.3V type.

C1 is a decoupling cap for the micro, R2 is a pull-up for the reset pin and C3 is used by the DTR for programming.

There is also a piezo diaphragm connected directly to the high voltage side but could be removed together with it's circuitry if not needed.

Red, green and blue LEDs are for the display's contour and could be used in any combination.
16 yellow LEDs are connected directly to the microcontroller each one having a 75 ohm resistor. The color of the leds could be any color you like but since the voltage drop is dependent of the led color the resistor value will vary.
For this 0805 type of leds  I have measured the following voltage drops:
  • Red: 2V (120 ohm, 10mA)
  • Green: 2.1V  (120 ohm, 10mA)
  • Blue: 3.3V (with no resistor 10.4mA)
Keep in mind that the maximum current the microcontroller can sink is 200mA. It would be preferable to drive the leds with 20mA for maximum brightness especially considering they are not on all the time, but the current for one led multiplied by (16 leds + 1 led for rim color) must not exceed 200mA.

IC1 is an AH372 bipolar latch hall effect sensor and it triggers an interrupt each time the sensor passes on top of a magnet. To align the magnet with the right polarity you could toggle a led inside the ISR then move the board by hand counter-clockwise until the led toggles on each rotation. The sensor is bent with the front side facing the board and can sense the magnetic field through the PCB. A big and strong magnet works better than a small one.
If you notice any jitter in the image put the magnet closer or use a stronger magnet. I've noticed that when the magnet is farther away at full speed many times doesn't trigger the interrupt thus causing jitter.

J1 is used for programming the micro. JP1 has two jumpers. When they are placed towards the center of the board the microcontroller's UART is connected to the ESP. When is on the other side the micro is connected to the USB to serial converter for programming. C2D pin of the micro must be connected to GND with a jumper wire to enter into programming mode then the software can be uploaded. In case the programming fails pull out the ESP first.

Possible Improvements

  • Maybe mounting the leds vertically to remove the vertical gaps without reducing the screen height
  • Placing the leds very close to each other vertically for higher pixel density but that would decrease the screen height. Doubling the number of leds to 32 will fix that but then extra circuitry is required such as shift registers since there are not enough pins on the micro
  • Using RGB leds. Maybe in version 2
  • Better circuitry for the inductive wireless power to increase it's efficiency

In the next part I will be talking about the code and basic principles of a POV display.


If you have comments or suggestions leave them in the comments below.

Download:

This zip file contains:
  • schematic and PCB layout made in DipTrace (free version) for all 3 boards
  • 92mm fan footprint for drilling holes in the enclosure
  • html and javascript file character generator. Although all A-Z, a-z and 0-9 characters are already in the code file, you could use this to modify them.

Android app .apk format version 1.0


Install from unknown sources must be enabled since is not installed from Google Store. Uploading apps on Google Store cost a few dollars and for now it will only be available for download here.