For the buttons, consider a matrix arrangement (even if the layout is not rectangular). That should save some GPIOs.
I'm guessing the LEDs are built into the buttons and you can't use serial addressable RGB LEDs (e.g. WS2812B)? The LED driver is a good option to drive resistorless common-anode RGB LEDs. Or more generic shift-register buffers to drive 5V LEDs. They can be chained.
If you still need the expansion boards: Make sure the board has switches or links allowing the address to be changed. Then you can connect up to 8 of them in parallel to the same I2C bus.
Remember that Raspberry Pi GPIOs are all 3.3V. Outputs can often interface with 5V CMOS/TTL components, but the slightest pull-up or leakage to 5V can damage the GPIO pins.
Obviously if using GPIOs you won't be able to use a DPI display HAT -- unless it has an auxiliary I2C connector, as some of them do, that meets all your needs? Otherwise, a DSI or even HDMI panel could be a good option.
I'm guessing the LEDs are built into the buttons and you can't use serial addressable RGB LEDs (e.g. WS2812B)? The LED driver is a good option to drive resistorless common-anode RGB LEDs. Or more generic shift-register buffers to drive 5V LEDs. They can be chained.
If you still need the expansion boards: Make sure the board has switches or links allowing the address to be changed. Then you can connect up to 8 of them in parallel to the same I2C bus.
Remember that Raspberry Pi GPIOs are all 3.3V. Outputs can often interface with 5V CMOS/TTL components, but the slightest pull-up or leakage to 5V can damage the GPIO pins.
Obviously if using GPIOs you won't be able to use a DPI display HAT -- unless it has an auxiliary I2C connector, as some of them do, that meets all your needs? Otherwise, a DSI or even HDMI panel could be a good option.
Statistics: Posted by njh — Fri Jun 20, 2025 9:51 am