Arduino + MAX7219 + Marktech 8x8 Problem

I am attempting interface a Marktech MTAN6385-AHRG 8x8 bi-color LED matrix to a Maxim MAX7219 and the Bare Bones Board (Rev. E).

I've wired everything up based on several diagrams and tutorials, but when I fire the thing up, it does not respond to any Arduino programs. All of the LEDs on the matrix light and stay lit. I've also noticed that the MAX7219 gets rather warm if I leave the power hooked up for a bit.

Any suggestions/advice on what I did wrong would be greatly appreciated. I'm rather lost on this.

--John

Since I'm new here, the message board wouldn't let me include links to outside websites in the previous post. Data sheets for the components I'm using and my wiring diagram are below.

MAX7219

Marktech 8x8 led matrix (purchased from Jameco)
http://www.jameco.com/Jameco/Products/ProdDS/1955221.pdf

The following PDF shows how I've wired the whole mess up.
http://www.johnrpowell.net/downloads/8x8toMax.pdf

The following is the code I'm attempting to use with the matrix circuit.

#include "Sprite.h"
#include "Matrix.h"

Matrix mat = Matrix(1, 12, 13);

void setup() {
  // this space intentionally left blank
}

void loop() {
  mat.clear();
  delay(1000);

  mat.write(1, 5, HIGH);
  mat.write(2, 2, HIGH);
  mat.write(2, 6, HIGH);
  mat.write(3, 6, HIGH);
  mat.write(4, 6, HIGH);
  mat.write(5, 2, HIGH);
  mat.write(5, 6, HIGH);
  mat.write(6, 5, HIGH);
  delay(1000);
}

Hi,
the problem is you have wired the matrix the wrong way round.
The anodes of the leds have to be connected to the SegA, SegB, ... outputs of the Max7219, and the cathodes to the Dig0, Dig1, .... outputs.

http://www.arduino.cc/playground/Main/MAX72XXHardware
Some more on the MAX7219 is also here
http://www.arduino.cc/playground/Main/LEDMatrix

But there are good news too: this happpend to many others and it doesn't seem to cause any permanent damage to the MAX7219.

Eberhard

Wow... I feel like an idiot. For some reason, I assumed that the pins on the IC labeled "dig" implied digital output. Live and learn. Thanks for your help!

I corrected my wiring and now I get very infrequent, quick flashes from various leds on the display. One tutorial on the Arduino website mentions something about needing two capacitors, but the majority of data sheets I've seen make no mention of this. Could the lack of those be causing this erratic behavior?

Any other ideas?

Hi,

I corrected my wiring and now I get very infrequent, quick flashes from various leds on the display.

I'm not sure I understand this. Does the matrix basically work, but sometimes you get those flashes, or does it not work and all you see are these flashes?

One tutorial on the Arduino website mentions something about needing two capacitors, but the majority of data sheets I've seen make no mention of this. Could the lack of those be causing this erratic behavior?

I wrote this here ....

The capacitors are there to supress noise signals introduced through the power-supply lines. By no means these 2 capacitors can be ommitted, as it might lead to sporadic or permanent malfunctions. These types of errors are really hard to track down. Both capacitors must be placed as near as possible to the V+ and the Gnd pins of the MAX72XX.

... so ... Yes, this can be the reason

Other things I can think of :
Software problems? Write a very basic Sketch this switches a singel Led on and off. Does this work? Are you using a library? Try some other libraries/code does this happen with all code.

Length of the wiring between the arduino and the MAX7219? The SPI bus used here is picky about noise (Capacitors again). I'd say 10-30cm is the maximum distance i would go for between the components.

Eberhard

I corrected my wiring and now I get very infrequent, quick flashes from various leds on the display.

Are you supplying the MAX7219 power from the arduino's 5V? Assuming that the matrix works and there is just some flickering, you could try feeding it directly with an external ~5V regulated instead. I had a similar issue and that solved the problem. I just assumed the arduino couldn't supply enough current.

The two capacitors are a 10uF and a 100nF capacitors. They are used to couple the voltage going into your max72xx and must be done on every chip. Pretty much they balance out the voltage and current going into your circuit.