If you don't feel like gathering all stuff yourself, you can buy a kit with all needed parts and a pre-programmed microcontroller at the Tinker Store.
Step 1: Parts and Tools
- ATTINY2313V-10PU, microcontroller, 2 k flash RAM, Digikey
- LEDMS88R, 8 * 8 LED matrix, Futurlec
- Battery holder with switch for two AA batteries, Digikey
- 2 AA batteries or rechargeables
And as you see, there are no resistors. Normally you would need a resistor to limit the current through the LEDs. We are a bit adventurous here and attach the LED matrix the Evil-Mad-Scientist-way directly to the controller. The controller enables only one row at a time and cycles thru all rows that fast, that a steady image emerges.
With two AA batteries the display ran over two weeks non-stop. Battery life depends a bit on how much pixels are lit at the same time.
To build it, you need:
- Soldering iron and solder
- Wire stripper or knife
- Alligator clips
- Third hand (optional)
Step 2: Prototyping on a Breadboard
Please note, most of the time you need current limiting resistors for LEDs. Only in very special cases you may drop the current limiting resistor. Otherwise you may destroy the LED.
Attached is a zip that contains the source code and a Makefile.
Update May, 7th, 2009: If you have compiled it on your own and it won't fit on the ATtiny2313 (avrdude complaining about address 0xXXX out of range), then please try an older version of avr-gcc. Version 3.4.6 works fine for me. If you are using WinAVR, then look for WinAVR-20060421-install.exe.
Step 3: Prepare the Controller
Step 4: Prepare the Display
Step 5: Attach the Battery Cables
Step 6: Align the Display With the Microcontroller
Step 7: Solder It
Then remove the alligator clips and recheck the alignment of all pins. If all fits, solder the rest of the pins.
Last job is to hook up the battery cables. Form tiny hooks on the end of each cable. The red one connects to pin 20, the top right pin. The black cable connects to pin 10 at bottom left side.
Step 8: Insert the Batteries
You're done. Hope, you enjoyed it.