Introduction: 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

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.

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.

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.

Epilog Challenge

Participated in the
Epilog Challenge

1 Person Made This Project!


  • Unusual Uses Contest

    Unusual Uses Contest
  • Laser Challenge

    Laser Challenge
  • Hour of Code Speed Challenge

    Hour of Code Speed Challenge



4 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


6 years ago on Introduction

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


Genius 470
Genius 470

7 years ago on Step 2


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

Arduino Tech
Arduino Tech

Reply 6 years ago

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


Reply 7 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


7 years ago on Introduction


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


11 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



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.


10 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 :-)


10 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


11 years ago on Introduction

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)


Reply 11 years ago on Introduction

Wow, that's great, really nice animations. Thanks for sharing!


11 years ago on Introduction

what are pins 1 and 11 usually used for?


Reply 11 years ago on Introduction

Pin 1 is used to reset the chip. Pin 11 can be used as input or output.