Arduino to Maxim7219, 292 LEDs

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.

http://www.allenpitts.com/electronics/M … 228_sm.jpg

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

http://www.allenpitts.com/electronics/M … 0105_B.JPG

looks but like this when complete.

http://www.allenpitts.com/electronics/M … 180104.JPG

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.

http://www.allenpitts.com/electronics/M … o_grnd.jpg

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