This library offers convenient functions for interacting with Interstate75 and Interstate75W - Interstate75 and Interstate75W offer a convenient way and 2 input buttons for all your display and control needs.
The Interstate75 class deals with RGB LED and buttons on the Interstate75 and 75W. To create one, import the interstate75 module, then define a new board variable.
from interstate75 import Interstate75, DISPLAY_INTERSTATE75_32X32
i75 = Interstate75(display=DISPLAY_INTERSTATE75_32X32)You can choose the HUB75 matrix display size by supplying display= as one of:
DISPLAY_INTERSTATE75_32X32DISPLAY_INTERSTATE75_64X32- Two chained 32x32 or a single 64x32 panelDISPLAY_INTERSTATE75_96X32- Three chained 32x32 panelsDISPLAY_INTERSTATE75_96X48- I have... no ideaDISPLAY_INTERSTATE75_128X32- Four chained 32x32 panelsDISPLAY_INTERSTATE75_64X64DISPLAY_INTERSTATE75_128X64- Two chained 64x64 or a single 128x64 panelDISPLAY_INTERSTATE75_192X64- Three chained 64x64 panelsDISPLAY_INTERSTATE75_256X64- Four chained 64x64 or two 128x64 panelsDISPLAY_INTERSTATE75_128X128- Two chained 128x64 panels arranged vertically
Some of these display sizes represent multiple panels in a horizontally chained configuration. Vertical mapping is unsupported with the exception of 128x128 which has a special case. It's on our TODO list to make this better... somehow!
On RP2040 variants the version of Interstate75 you're using should be automatically detected. Check i75.interstate75w to verify this. It should be True on a W and False on a non-W.
The RP2350 has only one variant, and i75.interstate75w does not exist.
There are some additional options for the Interstate75 class, outlined below.
If you've got funky colours or wrong rainbows you might need to adjust your panel colour order. By default we use RGB (Red, Green, Blue). Supply color_order= as one of:
COLOR_ORDER_RGBCOLOR_ORDER_RBGCOLOR_ORDER_GRBCOLOR_ORDER_GBRCOLOR_ORDER_BRGCOLOR_ORDER_BGR
There are to panel types, supplied with panel_type:
PANEL_GENERIC- the default panel configurationPANEL_FM6126A- sends specialFM6126Aconfig magic on startup
If your panel strobe pin logic is inverted, specify stb_invert=True
Interstate75 and 75W have two buttons in the front of the board. To read one of the switches, call .switch_pressed(switch), where switch is a value from 0 to .NUM_SWITCHES - 1. This returns True when the specified switch is pressed, and False otherwise.
To read a specific input, the interstate75 module contains these handy constants:
SWITCH_A=0SWITCH_B=1
Interstate75 (non W) uses the boot button instead of SWITCH_B:
SWITCH_A=0SWITCH_BOOT=1
Interstate75 W (RP2350) has a boot button in addition to the switches:
SWITCH_A=0SWITCH_B=1SWITCH_BOOT=2
if board.switch_pressed(SWITCH_A):
# Do something interesting here!
# Either for Interstate 75W
if board.switch_pressed(SWITCH_B):
# Do something else even more interesting here!
# Or for Interstate 75 / or 75W RP2350
if board.switch_pressed(SWITCH_BOOT):
# Do something else even more interesting here!Interstate 75 has an RGB LED. You can set its colour with:
.set_led(r, g, b)
Where r, g, b are values between 0 and 255:
board.set_led(255, 0, 0) # Makes the LED Red
board.set_led(0, 255, 0) # Makes the LED Blue
board.set_led(0, 0, 255) # Makes the LED GreenThe display is all handled by our custom PicoGraphics drivers they can be accessed via .display:
display = i75.display
display.text("Hello World!", 0, 0)
display.line(0, 0, 128, 64)
i75.update() # Update the displayFor a detailed PicoGraphics guide, see: https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/modules/picographics