SparkFun Forums 

Where electronics enthusiasts find answers.

For the discussion of Arduino related topics.
By AllenPitts
#197801
Hello Sparkfun forum,

Working on using an Arduino and a Maxim7219 to control 292 LEDs in a display.

All of the literature on the Maxim7219 seems to be for controling a matix or a seven segment LED display.

The LEDs displayed in the project are in a curvilinear line.

Have worked out a PCB that breaks out the LEDs into a linear display.
Image
But have a bit of rat's nest in construction because the anode from any one
LED is connected to cathode on a different group of connections.
This PCB is based on a schematic (for a matrix display) from the Arduino web site at
http://playground.arduino.cc/Main/MAX72XXHardware


That is, in the diagram of the PCB marked 'MAXIM 7219 Breakout
171230', , sixteen groups of eight connections are shown. The cathodes
and anodes are connected back and for the from group to group.
And so on thru 64 LEDs until the PCB that looks
like this in the beginning
Image
looks but like this when complete.
Image
A real headache for construction and a nightmare for troubleshooting.

So began looking at a way to use PCB traces to simplify the construction. Because the PCB
is four layers the voltage source, ground, Clock, Load and DIN are in one plane and
the anodes and cathodes are in the remaining three planes.
Image
In this diagram of the anode/cathode planes of the PCB just the first sixteen LEDS are traced.
The LEDs are numbered
000, 001, 002,...007, 010, 011, 012, ...017.
This is to align with Arduino the sketch (partial):
lc.setLed(0,0,0,true);
delay(delaytime2);
lc.setLed(0,0,1,true);
delay(delaytime2);
lc.setLed(0,0,2,true);

This arrangement would put the LED anode/cathode
pairs next to each other, a marked improvement.

As I worked thru the traces for another $400 PCB order I wondered if there was away to
do, programatically, what the traces on the improved PCB would do electronically.

To this end some research was conducted and a sketch was found that uses what seems to be
binary code to control a 7-segment.

The code can be found at
http://tronixstuff.com/2013/10/11/tutor ... driver-ic/
but part of it is

void loop(){
scrollMessage(scrollText);
scrollFont();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
prog_uchar font5x7 [] PROGMEM = { //Numeric Font Matrix (Arranged as 7x font data + 1x kerning data)
B00000000, //Space (Char 0x20)
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
6,

Have done Javascript and C# programming but cannot make
heads or tails of it. Is the 'B' for binary?
The comment says '7x font data + 1x kerning data'
but it looks like nine characters to me , not 8.

So that's the question: Does anyone know how the sketch now
being used could be adapted to address the LEDs so that
the connections would be side-to-side as on the PCB marked
'Maxim 7219 Breakout 171230, above'. That is, how can the anode and cathode
of each LED be deployed shoulder to shoulder in a more orderly fashion?

It would save me a fistful of cash if programmatic solution can be found instead of
an electronic one.

Thanks

Allen in Dallas