Tuesday, January 3, 2012

Making LadyAda's MiniPOV3

     A while ago I was struck with the idea of making a persistence of vision device. I have seen various contraptions all over the internet that would write out text or make images and I wanted to see what all the hoopla was about. I settled on a MiniPOV3 designed by LadyAda because it seemed very simple and I had nearly all the parts necessary to assemble it in my stockpile.

That's right. I'm a tinkerer.

     To begin with, I bought the PCB from adafruit.com. I had everything needed to assemble the project but one thing, the microcontroller. I went ahead and bought the ATtiny2313V from mouser.com. At the time I only needed this one chip, so I ordered it by itself. That turned out to be a costly mistake, because the $1.91 chip turned into a $11.12 order after shipping was added in. I knew shipping would be expensive, but I had hoped it wouldn't be that bad.

     I started off by soldering in all the necessary resistors and zener diodes. I used 5.1V zener diodes because that is the only kind I could get my hands on. Although the parts list says to use 5.6V zener diodes, this page mentions 5.1V zener diodes and they work fine for me. I made a 20 pin IC socket by cutting down two 16 pin IC sockets and cleaning up the edges with a small file. I chose to use red LEDs because I think they look the nicest. I made a mistake by working late at night when soldering this together and soldered in a male DB-9 connector instead of a female one. When I unsoldered and removed the male connector, I accidentally lifted up a pad, but fixed it by running a short wire to the resistor it was meant to go to. I had a battery case that held 2 AA batteries, but it did not have a power switch like the model in the parts list. I made my own by bending a single pole, double throw switch so the mounting arms held it to the battery case. After running some short wires and covering all connections with Liquid Electrical Tape, I realized that the mounting holes on the PCB lined up very well with the battery holder. I found some good screws from my screw collection and with a piece of foam that was used to ship an IC chip in, I had a solid, one-piece POV kit assembled.

Everything soldered. You can see the black jumper wire used to
amend lifting up the pad on the DB-9 connector.
Pretty looking
My custom battery holder/power switch

     The next step was flashing the microcontroller with the .hex file containing the message to be displayed. I had a USB to serial converter handy that worked well for this project. I let Windows 7 find and install the drivers for this converter. I downloaded the latest version of WinAVR and installed it as per these instructions. I followed the instructions on this page to update AVRDUDE to be compatible with USB to serial converters. I downloaded the firmware for this device from here. I followed these instructions to get everything started. I had to modify the makefile so that it found my programmer on COM7. (Note: I did not need to modify the avrdude.conf for my USB to serial converter because my converter must be pretty quick, but you may need to.) Because I had a virgin chip, I used "make burn-fuse" to get the chip configured right, then I used "make program-minipov" to get the message programmed.

Programming the chip via my USB to serial converter
The result should look like this
(I use the app "Slow Shutter Cam" on my iPhone to create this effect.
I have it in Light trail mode with shutter speed of B [manual] and sensitivity of 1.) 

     The next step is to create your own message. You can modify source code as seen here, but it is so much easier and nicer to use this program to let it do the hard work for you. I copy and overwrite only the array of numbers from the image [] array from the program output into the already-created mypov.c and then follow the instructions here to program the newest message. You can see the results of my custom message in the first picture of this post.

     Good luck! I'm looking forward to seeing some POV pictures in the comments of this post.