CSVPOVD - Charlieplexing Saccadic Valentine's Persostence of Vision Display

Happy Valentine with this strangely named new device!

History

In 1991 I visited the Exploatorium in San Francisco where I noticed a large, glowing butterfly flying around somewhere. I tried to catch it with my eyes but couldn't find it. Finally I found this bar on the wall glowing in red. I took this as half a crosshairs and moved my gaze over it from side to side. Each time I changed my point of view the butterfly appeared! From that moment I knew that I will build such a device. And now - 24 years later - I finally managed to do complete!

Construction

A small breadboard, a PIC12F1501, 12 LEDs and lots of jumpers...I had some problems to aling the LEDS. Rumor has it that they have a diameter of5 mm. However, at their base they are a little wider. Even wider than two rows on the breadboard. Anyway. I left their leads at full length, plugged them diagonally and used a toothpick to line them up. Resistors? No, not with a PIC! Look at the datasheet and find out that such a PIC12F gives just the voltage and current an LED needs.

Firmware

For charlieplexing you can simply control the LEDs as a matrix. I've put in into a loop and went to a pixel array at appropriate speed. I even managed to take a picture of it. This also wasn't easy since I had to move the camera at about the speed of an eys saccade. Oh, and two GPIO pins have been left free. I used one of them to toggle between two images by placing or removing a jumper.

Future Work

Just a few ideas what can be done. No, I won't build all of them but probably a few.

  • Select LED type. They should be bright over a wide angle. Such parts are rather difficult to find.
  • Use more pins for even more LEDs. PIC12F has five GPIO pins able to drive twenty LEDs.PIC16F chips have more GPIO PINs usable for a single charlieplexed matrix or several of them in parallel.
  • The heart is not that easy to recognize. Find out why and solve. Work on timing and width of LED line or LED size.
  • A serial interface would be nice to load images. Bit banged or hardware supported.
  • PIC micros usually can deliver 25 mA on their outputs while some LEDs can draw much higher current. Use a power driver for erally bright display.
  • Move the pattern table to the high endurance are of the PIC12F1501 flash to allow for higher number of pattern reprogrammings. Or use a PIC12F1822 or so and put it to the EEPROM.
  • PWM grayscale. Woah, this will be a major task.

That’s very neat wiring -

That’s very neat wiring - charlieplexing usually ends up with a rat’s nest of wires !

Thank you for the complimen!

Thank you for the complimen! Actually, wiring charplieplexing is not that difficult. You can consider it a pressed matrix. If you handle the mapping insoftware there is no need to order the LEDs. And for an n lead charlieplexy you need n lines in parallel if you don’t use the variant with internal resistors. This can be handled easily. Actually, in autumn I will also post a christmas chain (christmas chas) which looks really tidy. Stay tuned!