rp-rs / rp-hal-boards

Board Support Packages for RP2040 based PCBs
199 stars 82 forks source link

add BSP for Pimoroni Interstate 75 #72

Open ericseppanen opened 3 months ago

ericseppanen commented 3 months ago

This adds a bsp crate for the Pimoroni Interstate 75.

I used the pin names from the schematic. In some cases the names are odd or ambiguous; I chose to keep the schematic names rather than adjust things. Confusing names are documented in lib.rs.

I have verified that the onboard RGB LED works with the included example. I also verified the HUB75 LED matrix pins work, using a fork of hub75-pio. I have not verified the expansion header pins or the current sense input.

I'm not confident I understand the details of the bsp_pins! macro, so I haven't added any pin function aliases. Advice on how to do this properly would be welcome!

For example, would it be a good idea to add a PWM function for the onboard RGB LED pins?

Should I do anything special for hardwired button input pins? sw_a is a switch to ground with no current-limiting or pullup/pulldown resistors, so I think the only correct configuration is as an input with internal pull-up. Can I enforce this?

Similarly, GPIO29 is connected to an opamp output, so I think the only correct pin configuration is as a high-impedance ADC input.

The board also has some expansion pins for the user (and aren't connected to anything onboard); should I add function aliases for:

ericseppanen commented 3 months ago

It's also fine with me if the team would rather this crate stay external. I thought I'd offer it here first so it could stay in sync with the other pimoroni bsp crates, but if it would be a maintenance burden I can publish it myself.

I'd still be grateful for any review comments or advice about setting up function aliases.