Cheap POV (persistence of vision) clock kit

POVclockThese kits are available on for about $11 shipping included.  Tricky soldering, and they don’t come with any instructions.  There are instructions available on the website – but not unless you read Chinese.  The pictures on the website help though.

Anyway, I recommend the kit.  Even if you can’t get it working properly, it’s worth the money for the parts alone – you get everything you need apart from a bit of strip board to solder the power supply components to, and a hunk of aluminium to act as a heat sink on one power transistor.

It runs on about 4 volts up to 5 or so.  I wouldn’t recommend going much above 5.5 volts as the ‘regulator’ on the main board is just a small zener diode that leaks current away once the voltage gets up to 5.1  It draws about a third of an amp – I run mine off a single LiPo cell.

Gary asked about the inside of the box.  Please see VoltLog’s build video – the only thing I did differently was to build up the circuit on some stripboard instead of in mid-air, and I added a bit of aluminium plate to the main power transistor to act as a heatsink.

There are more (and bigger) photos of the top and bottom of my stripboard layout here:

Look at this video on the Voltlog YouTube channel to get an idea of how tricky it is to build.

I certainly got good value from it as it also comes without a program – so I wrote one, and no tool for uploading the program to the microcontroller.  See my previous post for the upload tool.  Here’s the link to the hex file for my clock program. (Right click and save as… if it opens up as a text file when you click on the link).

I made a quick video showing how to set the time.  The camera settings were bad though – auto focus and strobing problems. 🙁

6 thoughts on “Cheap POV (persistence of vision) clock kit”

  1. Hi Martin,

    I managed to get your clock code compiled with the free SDCC compiler and get it running on the LED board.

    I only had to make some slight changes to your source code as the SDCC compiler expects some underscore prefixes to some reserved words like “__using” and “__sbit” instead of “using” and “bit”. I also made a new header file with the definitions of all the STC89C52RC registers and interrupts and such.

    Compilation went quit smoothly, but for some reason the code was not running well. Setting the clock seemed to work like you explained in your video, but when I started the motor running, only the last waterfall like pattern remained displayed. So there was no clock and no scrolling text. It looked as if your bit variable “Turning” never became true.

    I made some debug changes to your code so I could display the status of some important variables on the LED board. I eventually ended up with introducing a very little delay at some point in your INT1 interrupt routine and then it all suddely worked. To be honest I don’t really get it why that delay there should make it play, but it does 🙂 I have to investigate this further.

    Please let me know if you’re interested in this modified code.



    1. Hi Ewald,

      Yes please – I’d be interested to see the code. I’ve been meaning to try the SDCC compiler you mentioned in a previous comment, but I’ve been busy with another MCS-51 chip project, and I thought I’d finish that before setting up the new compiler.

      I had a couple of small Atmel-chipped 7-segment type clocks. I looked up the chip (AT89C2051) I saw that it runs MCS-51 code but the method of programming it is completely different to the STC chips – no serial bootloader. I got interested and started programming an Arduino to act as a programmer for it: the chip needs 12V for programming so I made a PCB that piggy backs onto the Arduino and has a charge pump voltage multiplier to step up the 5V voltage of the Arduino to provide the 12V programming voltage. Then I had to write a PC program to communicate with the Arduino, read and write hex files and such and I’m just finishing off the Arduino sketch that drives the pins of the chip being programmed. I’ll make a post about it once it’s working.

    2. Hi Ewald

      I am interested in your code. I have ordered the kit at banggood. While waiting on the arrival i would like to get the code compiled and working.
      I would be very happy if you could be so kind.



  2. Hi Martin,

    Sorry, I’m a little late 🙂
    Sounds interesting what you are doing. Looking forward to your posts.
    I have found little time lately to work on anything else than regular work and kids 🙂
    But tonight I have uploaded the (modified) source code files that can be compiled with the SDCC compiler to your e-mail address. I wonder what you’ll find.

    By the way the STC-ISP programmer works actually quit well here once I found the procedure that always works.
    When programming I follow these steps:
    1) Connect the board (using a USB to Serial adapter)
    2) Hit the “Download/Program” button (checking…)
    3) Disconnect the board
    4) Immediately reconnect the board
    After these steps, programming starts and finishes succesfully.



  3. Hi,
    I also got the clock working thanks to your great program – thanks for sharing. My unit is still a bit unreliable, but looks like a transformer problem – just to inefficient at the moment :/.
    For now I hacked together a little script to modify your HEX file and change the bottom row text without recompiling – not quite the best way to do it, but enough to impress coworkers 😉 .Since I really would like to get some kind of DCF/NTP going: Any chance to see the SDCC-version published?

    1. Hi Florian,

      I’ve been too busy with other stuff lately to look at the SDCC-version. I’m not likely to get around to it any time soon – maybe this is something that you and Ewald could work on together?

Leave a Reply

Your email address will not be published. Required fields are marked *