Unable to use 32x32 LED Matrix with SPI due to both sharing Digital Pin 10.


Right now, I'm attempting to link two Arduino Unos with SPI. One of them computes and processes logic and variables, while the other only has enough SRAM to display the 32x32 RGB Matrix. I'm planning on sending each struct over from the Logic Arduino Uno to the Display Arduino Uno for it to display each object at its correct position. This means that I would have my Logic Arduino as a Master to the Display Arduino, the Slave.

The problem I'm having however, is that the SS Pin for SPI uses Pin 10 while the RGB Matrix's library uses Pin 10 as a latch. I've looked around the forums and it was hard to conclude whether it was possible to change the SS pin for SPI to another pin.

I attempted redefining and connecting the SS Pin to Analog A5 since I read that you could also use those similar to Digital Inputs. When I ran the program, it turns out that my matrix displays straight lines horizontally along the rows containing enabled LEDs.

Inversely, I attempted redefining the Latch Pin to Digital 0, since the library specifically states that the definitions much remain on PORTB, which I believe were the digital ports. Same RGB Matrix output.

After taking using some comments, it turns out my Display screws up when I comment out the line that will toggle the Arduino into a Slave SPI. The one that toggles SPE on SPCR.

SPCR |= bit (SPE);

There was also the statement that Nick Cammon also provided as well in his example Master-Slave Demo from 2011.

SPCR = (1 << SPE);

But they both serve the same purpose of setting the SPE bit.

The LED Matrix that I have is Adafruit's 32x32 RGB Matrix. I made the horrible mistake of trying to run it on a single Arduino Uno with 2K SRAM, so I'm trying to find a workaround. USART communication is too slow and loses too many packets to be reliable. Running the logic straight off the display unit will result in running out of SRAM. It seemed I was really close to making it work with SPI, except I need is one more Pin.

I'm using their RGB Matrix's library as well as Arduino's "SPI.h" file.

Is the lack of information I'm finding about driving that display right off of another Arduino because it's a futile idea? It doesn't seem too far fetched when objectively looked at. It's just that both the Latch and SS pins will interfere with each other.

I feel like there should be a way to do this, especially with tinkering with the SS pin on SPI since from my understanding it just synchronizes the Master and Slave Arduinos.

Any ideas?

Well. Sometimes I want to just slap myself.

I just learned about I2C protocol which only uses three connections, and is still relatively fast enough to draw the matrix with the data sent.

Thanks for reading that huge wall anyway, I suppose.