Picture of 64pixels
This is a tiny device to display animations and short messages. It consists of three components only and is really easy to build. And fun to watch.

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

Picture of Parts and Tools
Only four parts needed:

  • 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

The ATtiny2313V is a microcontroller, that runs from 5.5 down to 1.8 Volt. So its easy to power it from two AA cells.
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)

If you want to program your own animations and messages, you will need an AVR programmer as well.
1-40 of 94Next »
neevando7 months ago

Nice , I edited font.h from tomas123 so i have Uppercase and Lowercase font


Genius 47011 months ago


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

You can't program it with arduino because arduino has atmega and this is an attiny and there pins are different
Mic100 Genius 47010 months ago

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

Mic10010 months ago


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

tomas1234 years ago
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 http://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

64.zip55 KB
how to generate the makefile, I'm a newbie: P thanks
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.
maomakmaa4 years ago
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 :-)
theAVRdude4 years ago
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
darkria 454 years ago
would it effect anything if i use a socket?
alex_weber (author)  darkria 454 years ago
No, that would work.
im afraid i might burn out the chip
tomas1234 years ago
This is a christmas card with ATTINY2313 and 8x8 Matrix LED
here a video from 64pixels with all patterns
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)
alex_weber (author)  tomas1234 years ago
Wow, that's great, really nice animations. Thanks for sharing!
zack2474 years ago
what are pins 1 and 11 usually used for?
alex_weber (author)  zack2474 years ago
Pin 1 is used to reset the chip. Pin 11 can be used as input or output.
ok. thanks.
where do you get the stuff to program it?
i got mine from adafuit industries.i think mine is a kit, it hasnt come in yet but its only 11.49 if u use first class mail for shipping
awosme5 years ago
Is there any way that you could run the 64 pixels on an arduino?
alex_weber (author)  awosme5 years ago
Not as is. Search for "arduino matrix" to see some examples how to use an LED matrix. Then migrate the code for animation and messages. Cheers, Alex
pmcall2215 years ago
I downloaded your c file and followed your comments in the c file to change the messages.  However, when the new hex file is written to the microcontroller it still contains the messages of the original c file.  Are there additional steps I am missing?
AVR Studio is the easiest way. After making changes to the c file save then rebuild all. Then flash with the new hex file.
alex_weber (author)  pmcall2215 years ago
I assume, you compiled the c file ...
i did. i used programmers notepad.  Does the .lss file also need to be edited?
I figured out the problem. Just a little makefile snaffu.  It's my first time with WinAVR.

Can editing the animations be done in a similar matter?
Also the text scrolls right to left and animations move left to right.  Is it possible to have animations move from top to bottom or vice versa?
alex_weber (author)  pmcall2215 years ago
Yes, you can have animations going from top to bottom. Take a look at the scroll_animation method. You have to replace the x with y direction.
godofal5 years ago
mine still doesnt work, but i just decided to look at the code, and can anyone clear this up for me?
i really thought LOLWTF?!

this was in the code from line 32~43

const prog_char PROGMEM message_00[] PROGMEM = "   WTF!?! ";
const prog_char PROGMEM message_01[] PROGMEM = "   I AM NO BOMB! ";
const prog_char PROGMEM message_02[] PROGMEM = "   5   4   3   2   1  ...  BOOM! ";
const prog_char PROGMEM message_03[] PROGMEM = "   I'M SORRY DAVE, I'M AFRAID I CAN'T DO THAT.  ";
const prog_char PROGMEM message_04[] PROGMEM = "   NOW BYE ME A SOLDERING STATION ";
const prog_char PROGMEM message_05[] PROGMEM = "   MAKE STUFF ";
const prog_char PROGMEM message_06[] PROGMEM = "   IF YOU CAN'T OPEN IT, YOU DON'T OWN IT ";
const prog_char PROGMEM message_07[] PROGMEM = "   1337 3L3X7RON!C5 !1!! ";
const prog_char PROGMEM message_08[] PROGMEM = "   MY KUNG FU IS BETTER THAN YOURS ";
const prog_char PROGMEM message_09[] PROGMEM = "   SUDO MAKE ME A SANDWICH ";
const prog_char PROGMEM message_10[] PROGMEM = "   ZOMBIES AHEAD ";
const prog_char PROGMEM message_11[] PROGMEM = "   HTTP://TINKERLOG.COM ";

what does this add to the code? i just cant think of anything...

btw, no wonder nearly no version can make this program small enough to fit inside the attiny2313...
alex_weber (author)  godofal5 years ago
These are the different messages that get printed on the display.

If the compiled hex file is too big for the tiny2313, try the other compiler version as noted on step 3.

its not to big, but i've heard about people getting that...

but you mean that those message's get displayed?
alex_weber (author)  godofal5 years ago
Yes, they are displayed.
godfish5 years ago
Hmmm when I build the C file I get 4 warnings and no errors, and I just can't get this to work right. I programed the chip with the code anyway and all I get is lots of leds lighting and going off at once.

What could be the prob? I'm using AVR Studio 4 for a compiler.

I also tryed to just use the step 2 hex file to the chip and same. just lots of random flashes, I got the 64 LED matrix from furloc in your link, is there anything I need to do with the code?..
alex_weber (author)  godfish5 years ago
Please check if the pinout of the matrix is the same. Also check if you have the right orientation of the matrix.
And maybe you can try WinAVR compiler.
godfish5 years ago
 can anyone post a link for the .hex file, when I try and build the .hex from the .c file I get 5 errors and I'm not good at C yet to know how to fix the errors.

alex_weber (author)  godfish5 years ago
Here you go, I added the hex file to step 2.
godofal5 years ago
im making one with protoboard, since my dot matrix is different (size, other lay-out)
and ive decided to add a standard 6pin header for reprogramming ease.
just 2 quick questions:

when programming, can i use the 5V coming from a USB port. i dont think so, becouse itl burn out the matrix (i think)
so, instead can i just turn it on and program it? (with the 3V from 2 1.5V batteries)

and, ive looked at the datasheets, and it looks like i have a common cathode, but im not sure (always get confused about what cathode/anode is XD)
so, heres the pdf can someone tell me if it is indeed common cathode, and if so, how should i alter the code?
btw, i have reversed the attiny (so where pin1 normally would be is now pin11) to fix this problem (i believe it would anyway) but im not sure if that would work...
alex_weber (author)  godofal5 years ago
Yes, you would probably burn the matrix. You could hook it up with current limiting resistors on a breadboard for programming.
The matrix looks like a common anode one.
and if im going to use batteries for programming? then there wouldnt be enough power to burn it right?
and if i needed the resistors in combo with the 5V, how much would those resistors be needed to be?

so, for the common anode part, i dont need to change anything? and the flipping i did with the chip works?
alex_weber (author)  godofal5 years ago
If you want to use batteries, be sure that you don't connect VCC of the programmer to (+) of the batteries.
If you power the circuit with 5V, 220 Ohm should be ok.
There are parts in the code that deal with common anode or common cathode. Just comment and uncomment the relevant part. You don't need to flip the controller.
1-40 of 94Next »