Introduction: 64pixels
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
- Pliers
- Wire stripper or knife
- Alligator clips
- Third hand (optional)
Step 2: Prototyping on a Breadboard
I used a breadboard to test the circuit and to try out new messages or animations. The controller on the breadboard is powered by the programmer with 5 Volts. That's the reason for the 100 Ohm resistors. These are only needed on the 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.
Attachments
Step 3: Prepare the Controller
Take the pliers and bend the pins slightly up. Afterwards, all pins should be somewhat aligned.
Step 4: Prepare the Display
Now take the matrix display and bend its legs as well. You can use a piece of plastic to bend the legs over it. That may make is easier.
Step 5: Attach the Battery Cables
Now take the cable of the battery case and wrap them around one of the middle pins. Insert the cable on the top side of the matrix. The bottom is marked with an inscription (NFM-12883AS-11), in this picture on the right side of the matrix. Make a simple knot around the pin. That serves as strain relief. Strip the black wire a bit.
Step 6: Align the Display With the Microcontroller
Fix the the controller in place with alligator clips. Place it on the matrix so that there are two pins on the top and on the bottom, that are not attached to the matrix. This can be a bit tricky. Maybe you have to realign some of the pins. There is a small notch on the microcontroller. That notch has to point to the left.
Step 7: Solder It
Now solder two pins, one on each side.
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
And that's it. Insert two AA batteries or rechargeables and switch it on. Every time you switch it on, it displays another one of the preprogrammed animation or text messages.
You're done. Hope, you enjoyed it.

Participated in the
Epilog Challenge
96 Comments
6 years ago
thumbs up..great project..I add my voice to others...if we can get code for attiny85 would be very great..plz plz plz
8 years ago on Introduction
Nice , I edited font.h from tomas123 so i have Uppercase and Lowercase font
Thx
9 years ago on Step 2
Hi'
I'm trying to program the Attiny from a arduino uno, and i cant read the code, i
was woundering if you could send me the code for the attiny than runs the led matrix. My Email is Mojemdadi@gmail.com
Reply 8 years ago
You can't program it with arduino because arduino has atmega and this is an attiny and there pins are different
Reply 9 years ago on Introduction
the easier it is to use a timer on EBAY USBASP you also find
you download the file to the programmer, I used v.1.72 progisp under W7 64BIT
and you load the matrix.hex file (which is below 64pixels.zip)
you throw progisp
You select ATtiny2313 (chip select in the top left)
Clicking on flash load (top right to load the hex file)
Custom flash and then write checks then flash
Then you have to program the fuses to 4MHz oscillator and low voltage 1.8V
Clicking on the 3-point (to the right of Auto)and you put CKDIV8 1
LowValue E2
HighValue to DD
and you click on write
9 years ago on Introduction
Hi'
Many thanks for this instructable :)
i made it with common anode matrix ,I just downloaded the original HEX file,after flashing 2313, display was weird,
I changed the order of the connections on 2313 and everything is OK now
13 years ago on Introduction
Hello Alex - thanks for this great idea
I rewrote your program to get significant more space for dozens of patterns.
Further I changed to a better readable (larger) 5x7 font.
I also reworked the nice pattern generator as excel sheet from https://www.instructables.com/id/LED-Scolling-Dot-Matrix-Font-Graphics-Generator-/
Now you can copy the code from excel sheet directly in your program.
My ATTINY2313 without V goes down until 1,8V @ 4Mhz.
PS: Your nice LEDMS88R with rectable LED are hard to purchase in Germany ;-)
I used a cheap 8x8 32mm LED Matrix with the same pin layout (!)
Google for: 12088AMR
he send from Poland to all Europe
Tomas
Reply 11 years ago on Introduction
how to generate the makefile, I'm a newbie: P thanks
11 years ago on Introduction
I am a beginner, but I can not properly display characters.I noticed that:
* NFM-12883 common anode |
* A0B5B4D4B2D3D1D0 +-----+
* PD5 o o o o o o o o | |
* PA1 o o o o o o o o _+_ |
* PB0 o o o o o o o o \ / |
* PD2 o o o o o o o o _V_ |
* PB7 o o o o o o o o | |
* PB1 o o o o o o o o ---+-----C---
* PB6 o o o o o o o o |
* PB3 o o o o o o o o
*
But My LED matrix is ( See the pic)
Please teach me, how to modify it ??? Thanks you very much.
12 years ago on Introduction
Hey , thanks for your nice work ! :-)
I bought your Kit and a cheap USB ISP and worked the first time with Microcontrollers.Awesome !
But I still don`t understand how to make my own pictures and change the scroll or repeat animation...:how to change pixels? the signs on the right to hex!?!?!
0x18, // ___XX___
0x3C, // __XXXX__
0x7E, // _XXXXXX_
i wanna start with the first animation,not scrolled,then change the picture/animation....a hint would be nice :-)
bless,maomakmaa
12 years ago on Introduction
Ok, thanks for all the treads and comments. I have so much fun with this, my brains need more eeprom!!
I flashed a couple of 2313 and succesfully burnt the right fuses but now I am interested in making some PCBs cause I dont like soldering chips directly to the matrix.
what is the next step? A circuit diagram would be awesome at this point.
Again( I'm such a geekou) thanks for some help in my process
13 years ago on Introduction
would it effect anything if i use a socket?
Reply 13 years ago on Introduction
No, that would work.
Reply 13 years ago on Introduction
im afraid i might burn out the chip
13 years ago on Introduction
followup:
This is a christmas card with ATTINY2313 and 8x8 Matrix LED
here a video from 64pixels with all patterns
http://www.youtube.com/watch?v=sncy6wHNnMc
source code below
----------------------------------------
AVR Memory Usage
----------------
Device: attiny2313
Program: 2034 bytes (99.3% Full)
(.text + .data + .bootloader)
Data: 18 bytes (14.1% Full)
(.data + .bss + .noinit)
Reply 13 years ago on Introduction
Wow, that's great, really nice animations. Thanks for sharing!
13 years ago on Introduction
what are pins 1 and 11 usually used for?
Reply 13 years ago on Introduction
Pin 1 is used to reset the chip. Pin 11 can be used as input or output.
Reply 13 years ago on Introduction
ok. thanks.
14 years ago on Step 2
where do you get the stuff to program it?