Getting serial input on rPi while doing 3 ABCDE chains

@hzeller, I had a look at https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/adapter/active-3/schematic.pdf
I thought that the RX pin was free for at least sending serial commands to the Pi, but now I see it’s only free if I don’t have an ABCDE panel on chain 3.

Am I reading the schematic correctly that there is effectively no pins free at all if you do ABCDE on 3 chains?
If so, that’s very bad news from my project that needs to have an ESP32 send commands over a single wire, to the Pi.

Obviously, ABCDE output could be sent to a shift register to free up some pins, but that would mean a board and driver redesign, which doesn’t sound great.
Is there anything else I can do?

So, I could throw away my $500+ of ABCDE panels, and replace them with ABC panels, if you can even find those on purpose nowadays, but for money reasons, I’d rather avoid this :slight_smile:
I can also chain my panels so that they only use a single output instead of 3, but now my refresh rate is divided by 3 and looks pretty bad on pictures :-/ (by then, I can also go back to using an ESP32 or teensy4 to drive them with SmartMatrix)

Thanks.

Ok, I found a reasonable answer: I can just plug a USB to serial adapter in the rPi, and that will give me 2 extra I/O pins :slight_smile:

end result: https://www.youtube.com/watch?v=bQc7sh-a6hQ

Yay for USB :slight_smile:
Looks like you now have a good set-up for all kinds of amazing animations!

Yeah, I do. It was kind of stupid of me to discount USB. Basically with USB, rPi has infinite I/O even if you fill all the GPIO pins, which your lib does in 3 channels of ABCDE panels.
All this time I was turning my nose at those 128x64 ABC panels, but they would have given me 2 IO pins back :slight_smile:

Is is possible to use GPIO 1 and 0 for LED matrix and connect E line there?

I’m not entirely sure if more GPIOs can be scrounged from other uses

From https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/adapter/active-3/schematic.pdf
and https://www.raspberrypi.org/documentation/usage/gpio/

  • pin 9 => Gnd
  • pin 17 => 3.3V
  • pin 27 => GPIO0 (ID_SD)
  • pin 28 => GPIO1 (ID_SC)
  • pin 30 => Gnd

https://raspberrypi.stackexchange.com/questions/55300/what-can-i-connect-in-id-sd-and-id-sc-pins says you can use those pins
I guess I could probably hack the code and the traces on my adapter3 board to use those pins and free up RX/TX on the hardware UART.
I thought about doing softserial on 27/28, but rPi is apparently not realtime enough to do it reliably.

That said, USB just offers infinite serial ports, so that’s a much easier route. I thought have thought of that first.

This is a demo of the ESP32 talking to rPi over USB serial: