Flames effect with a 8×8 LED Matrix and ATMega328

Flames effect

A while ago I found some blog posts explaining how to use a LED matrix as a pendant (http://hackaday.com/2013/01/10/8×8-led-matrix-pendant-sealed-in-a-block-of-epoxy/ and https://sites.google.com/site/tinymatrix/ ). The 8×8 matrix pendant looked cool, but it was missing detailed information on which parts to use and how to solder everything together.
With help from a friend, Uriel Guy, we managed to figure out how to make it work. Well, actually, Uriel did most of the work… including of cleaning up the code, modifying it to work with Arduino, and optimize it. I’m just writing the instructable because he got lazy 🙂
By the way – the code itself is a piece of art. Check it out if you want to see how to implement 16 levels of red using the dot matrix.

Flames effect

Step 1: Materials

You’ll need the following –

  • ATMega328
  • 8×8 LED matrix. I used the 38mm x 38mm  (see the comments below)
  • Metal pins
  • 10k ohm resistor
  • 100uF capacitor
  • 2 x 22pf Capacitor
  • 16 MHz crystal
  • AVR programmer
  • Soldering iron and assorted accessories
  • Power source. I used  2 x CR2032 cell batteries connected in series

Note about LED Matrix – I used a 38mm x 38mm matrix because it hides the ATMega328 well. The code in this instructable is designed to work with a SZ*21588 matrix, where rows are ground and columns are positive (attach link to schematic and bad schematic). If you are not sure what I am talking about, make sure your schematics look like the one I attached to this instructable. Note that when I ordered mine I ordered two pieces from EBay, and I got two different models – SZ*21588 and SZ*11588. So make sure you know what matrix you ordered. Or just modify the code accordingly.

Step 2: Getting everything ready + testing

We will start by putting everything together on a breadboard, just to make sure you got all the parts working. To make life easier, we left the pins required for programming free.
Flames effect with a 8x8 LED Matrix and ATMega328 Schematic
You should first place the “Arduino” parts (ATMega, crystal, etc) and try a blink example (sorry, but I won’t cover this part in this Instructable).
After you got the example to work, hook up the matrix and load the code using Arduino IDE (or whatever IDE you are using). Make sure you got Pin #1 of the matrix in the right place (as shown on my lovely sketch).
Is it working? Great. Time to do some soldering.

Step 3: Soldering

A little bit of warning now – this part can get really confusing, so read carefully. We actually got everything soldered the wrong way on the first attempt… and it was a pain to take apart.

The first thing you should do is to solder “extensions” to the legs of the matrix because they are not long enough to reach the legs of the ATMega. Don’t worry if the extensions are too long – you can always shorten them with your trusty cutter.

Bend down all the legs of the ATMega that goes to the matrix. You need to do this anyway, and it will make it easier to figure out the correct orientation.

Now for the tricky part – put the matrix with the leds facing DOWN. Pin #1 of the matrix should be on the upper left corner. Place the ATMega in the middle of the matrix, facing DOWN as well. ATMega pin #1 (reset) is the upper left pin. You might want to flip the ATMega pin mapping image so you won’t get confused. Seriously, this can get confusing. If you are not sure – look at the photos I placed here.

Bend the matrix legs (with the extensions) so they touch the correct ATMega pins and solder them. If some of the legs are too long, just use a cutter to shorten them.

Using a piece of wire, connect VCC to AVCC (#7 to # 20).

Solder the resistor from pin #1 to the VCC pin.

Solder GND to GND (#8 to #22). As you can see in my photos, I used a longer wire here.

Solder the crystal and 22pf  capacitors.

Solder the 100uF capacitor.

Connect VCC and GND to a power source.

Read more:  Flames effect with a 8×8 LED Matrix and ATMega328

Leave a Comment

Your email address will not be published. Required fields are marked *