Max7219 and signal repeating over long distances.

I'm using a few max7219s daisy chained to control some large 5x7 pixel displays. The displays are approximately 2ft across and 3ft tall. I have the 5 pins needed to use the max7219 wired up via rj45 ports, so I can daisy chain any number of the individual character displays together.

The problem I'm having is that since the displays are so big, the clock and load signals end up having to travel quite a long distance from the arduino. I can hook up a single display with no issues whatsoever. If I hook up a second display, it works for a few characters (1 character per second), but then goes blank. I assume the second panel is losing sync and thus getting garbage data. If I resend the initialization data to the chips, it works properly again. I currently have my scrolling message set to "Happy New Year! ", and resend the initialization data after displaying the message twice. This was a crappy software workaround to a hardware issue, and sometimes the 2nd character stops working midway through.

Basically my question boils down to this: How can I repeat / boost the clk and load signals form the arduino so I can chain as many displays as I like together?
I have 5v and ground on the boards that I'd add the components to, so power isn't an issue.

Thanks.

The distance from one panel to the next is about 3 ft, and the first distance is about 6 inches. So the 2nd panel would be 3.5ft away, the 3rd would be 6.5, etc.

I am using the code found here: Arduino Playground - Max7219
to control the chips. I added a delay routine, making the clock wait at least 100µs to toggle (so period is ~200µs), which visibly makes the 2nd display lag behind the first, and it still loses sync after a while (maybe 5 times through the message).

I will see if I can get some non inverting line drivers and see if that helps at all.

Wouldn't it be better to put all the MAX7219s together on one PCB and then extent the LED driver lines? That should get rid of the cable length differences between the chips but wouldn't be quite as modular.

Richard, multiple MAX7219 get daisy-chained, not addressed. If you have one, you push 8 bits into it and then take LOAD low. With 2 chips you push 16 bits into the first, which pushes out the first bit the other end when it receives the 17th bit. Then you pull LOAD low when all bits have been transmitted. Kind of like daisy-chained shift registers.

So how would you do it properly? With the line drivers? Or a pull-up R near each chip for each line?

I'm currently also designing a circuit using the MAX7219 and would be interested in any tips. Though I won't have long line lengths...

OK, let's say 10 metres, 8 evenly spaced MAX7219, bus running at 100kHz, timing not as important as reliability but at least 2 full display updates per second.

I guess it would help to keep as much distance between the individual lines as possible to minimise crosstalk. If it was a ribbon cable it might make sense to have a GND line between each... But then I run out of ideas...
Put the Arduino in the middle of the bus maybe?