2-side POV

In 2005 I spent a few months playing around with a persistence of vision (POV) circuit for a bike wheel. It was my first foray into electronics and micro-controllers so, while it worked, it was a hack.

The project was linked to by hack a day which was my 15 minutes of internet fame.

2-Sided POV says: SPACEMAN

I based the project on two of Lady Ada’s POV projects, the MiniPOV and Spoke POV. The MiniPOV uses only a single PIC16F630 while the spoke uses an Amtel micro-controller, an EEPROM, and several 74x259 8-bit latches.

Finished 2-Sided POV

I wanted to enhance the MiniPOV to display text on both sides of the bike wheel. I chose to use Microchip’s PIC because they sold a cheap programmer and I had Lady Ada’s working source code. the biggest challenge with displaying text on both sides of the wheel each side needs to read from a different end of the string. if you’re displaying ABC the left side needs to start at C and the right side needs to start at A. that meant I needed 16 outputs, four more than the 16F630 has. To work around this I used an 8-bit addressable latch for each side.

MiniPOV uses a simple bitmap to determine what to output. I wanted to have separate bitmaps for each character and link them together in a string. I started by modifying the MiniPOV to use two jump tables. The first selected the character from the string, and the second returned individual rows in the character. Once that was working I started trying to figure out how to read it in reverse order. I wasn’t able to think of anything cleaver so I decided to just throw memory at it, and duplicated the code with the order reversed.

I went through a hell of a time finding the proper LEDs for this. Trying to find bright LEDs that had a wide viewing angle and didn’t cost a buck each was hard. I probably ordered ten different kinds from Digi-Key. the ones below are 1500 mcd with a 70° by 40° viewing angle and only cost about 30 cents each.

Parts list

Description Quantity Supplier Part number
PCB board 1 advanced circuits custom order
PIC16F630 8-bit PIC microcontroller 1 Digi-Key PIC16F630-I/P-ND
14-pin IC socket 1 Digi-Key AE7214-ND
74HC259 8-bit addressable latch 2 Digi-Key 296-8291-5-ND
high brightness LEDs 16 Digi-Key 160-1620-ND
3 volt lithium battery with soldering tabs 1 Digi-Key P201-ND
SPDT slide switch 1 Digi-Key EG1901-ND


The PIC assembly code is attached below. To assemble it you’ll need Microchip’s mplab IDE or the gnu PIC tools. Then you’ll need something to program the PIC with. I spent the $30 for Microchip’s PICkit 1 flash starter kit.


The board layout was done using CadSoft’s freeware version of EAGLE. you can download the board and schematic files below.

Schematic Board

Future improvments

This is the first board I’d ever designed so I made plenty of mistakes:

In the next revision has plenty of room for improvement: