Interstate 75 W with CircuitPython rgbmatrix

Hey folks. I’ve got myself a neat Interstate 75 W to drive a Waveshare 32x64 matrix.
Following the guide I can get it working with micropython, but can’t get off the ground with CircuitPython.

The guide says to define your matrix:

matrix = rgbmatrix.RGBMatrix(
    width=64, height=32, bit_depth=3,
    rgb_pins=[board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5],
    addr_pins=[board.GP6, board.GP7, board.GP8, board.GP9],
    clock_pin=board.CLK, latch_pin=board.LAT, output_enable_pin=board.OE)

The pins on the last line don’t exist. Doing a dir(board) I get:

['__class__', '__name__', 'A0', 'A1', 'A2', 'A3', 'GP0', 'GP1', 'GP10', 'GP11', 'GP12', 'GP13', 'GP14', 'GP15', 'GP16', 'GP17', 'GP18', 'GP19', 'GP2', 'GP20', 'GP21', 'GP22', 'GP26', 'GP26_A0', 'GP27', 'GP27_A1', 'GP28', 'GP28_A2', 'GP3', 'GP4', 'GP5', 'GP6', 'GP7', 'GP8', 'GP9', 'LED', 'SMPS_MODE', 'STEMMA_I2C', 'VBUS_SENSE', 'VOLTAGE_MONITOR', 'board_id']

I’ve tried to fudget this using either the 64x64 setup, or by just putting GP10-12 or GP11-13 down. If I do that I get:

Traceback (most recent call last):
  File "code.py", line 39, in <module>
RuntimeError: Too many display busses

Anyone seen anything similar? Do you know the correct pinout I should be specifying here, or if something else is going wrong?

Info from the REPL:
Adafruit CircuitPython 8.2.0 on 2023-07-05; Raspberry Pi Pico W with rp2040

Cheers for the help

I feel your pain! I have the same setup but I also need access to more gpio pins. I’ve tried 2 different gpio expanders using the qwiic connector but it seems no libraries exist for any gpio expanders. So I tried circuit python and have spent many hours trying to get it to work but no joy. It seems to be that an Interstate 75w is NOT the same as a pico when it comes to libraries/modules. I have tried stuff on a bare pico which works, but the same code on an Interstate 75w doesn’t.

I’ve almost given up and decided I either need an Arduino or a Raspberry Pi as MicroPython and Circuit Python just don’t work with the Interstate board and a gpio expander.

Be interested to know if anyone has got it working, but I suspect the lack of replies to your question means no.

1 Like

The 75 W schematic is here,
interstate_w.sch (shopify.com)
and 75 here
interstate_75.sch (shopify.com)
Might help.
I have two 64 x 32 panels wired up to an Interstate 75 W. I’m running Micro Python, and haven’t tried Circuit Python on this setup.

I started with a Matrix Portal running Circuit Python. Everything worked, I just struggled with Adafruit’s graphics. I wanted WIFI and there was no Interstate 75 W at the time of purchase.

Once the 75 W was released I changed paths and went with Micro Python.
Long story made short, just a FYI post.

1 Like

So, the access to pins wasn’t an issue, but the boilerplate code on the site definitely didn’t work.
Thanks very much alphanumeric! The schematic was exactly what I needed to tweak this.
Boilerplate code should read:

matrix = rgbmatrix.RGBMatrix(
    width=64, height=32, bit_depth=3,
    rgb_pins=[board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5],
    addr_pins=[board.GP6, board.GP7, board.GP8, board.GP9],
    clock_pin=board.GP11, latch_pin=board.GP12, output_enable_pin=board.GP13
)

My too many display busses error was a red herring, caused by me not fully resetting the tihng when reloading, and it getting upset at trying to define the display matrix multiple times. Haven’t figured a solution fo that yet.

Hope that boilerplate helps the next person looking, and thanks for the help!

Oops, sorry about that (and glad to hear you figured it out!) I’ve fixed the code in the Learn article.

@Snowgoose This “should” work with the Interstate 75, Might have to solder / wire it up. QWICC will work if you don’t need to use the Int pin. And of course depending on what you need the extra pins for?
IO Expander Breakout (pimoroni.com)
Might even work with the Interstate 75 W. Depends on whether you need the Int pin or not.

Thanks for the suggestion. I actually had a breakthrough recently. I had an Adafruit QWIIC gpio mcp23017 which I couldn’t get to work until I found a MicroPython module, which had an error. With a bit of trial and error I got that working and everything feel into place. So I now have 16 gpio pins connected via qwiic and all working great with the 64x32 led matrix.
My only question now is whether it is possible to use the HUB75 libraries to write text. I suspect not.

I’m displaying text on my physical 64 x 64 layout. It’s two 64 x 32 panels.
The Interstate 75 W treats it electronically as 128 x 32, so I had to get a bit creative to get what I wanted where I wanted it. I used Pimoroni’s custom Micro Python uf2.