rp-rs / rp-hal-boards

Board Support Packages for RP2040 based PCBs
211 stars 87 forks source link

Add sparkfun-micromod-rp2040 board #24

Closed Finomnis closed 1 year ago

Finomnis commented 1 year ago

Adds support for the Sparkfun Micromod RP2040 board.

Finomnis commented 1 year ago

Board does not start automatically when ATP carrier is powered on, a reset push is required. Needs some investigation before merging.

EDIT: Turns out this was a problem with my USB port.

Finomnis commented 1 year ago

@jannic Ping. Any reason this is stale? I'm still interested in having this merged :)

Finomnis commented 1 year ago

@9names Is there anything to do for me now to get this published to crates.io? Or is this an automated process?

9names commented 1 year ago

Not automated. If we follow what we've done previously: one of the rp-rs folks will publish it the first time, so we can add the team and add you as an author as well (so we can publish in the future if you are no longer active on the project). If you're planning to hang around it would be good to get you added to a team (and maybe we should have a boards team?) so you can help out with reviews and publishing in the future.

Finomnis commented 1 year ago

@9names Sure :) although it turned out in my current project that the RP2040 is not powerful enough, so I switched to a micromod teensy. What I'm trying to say is I'm not currently actively working on a project that requires this crate any more, so I'm not sure how active I will be.

Finomnis commented 1 year ago

But I have the hardware at home, so if problems arise, I can jump in and maintain.

jannic commented 1 year ago

I switched to a micromod teensy

Out of curiosity: How was the experience porting your code to the new platform? This looks like an interesting case, where your external peripherals stay the same, but you replace the processor module.

Are the different HALs of the embedded rust ecosystem similar enough that such a change is possible without major refactorings? Or did they already diverge too far? Anything we could do to improve the situation?

Finomnis commented 1 year ago

Out of curiosity: How was the experience porting your code to the new platform? This looks like an interesting case, where your external peripherals stay the same, but you replace the processor module.

Are the different HALs of the embedded rust ecosystem similar enough that such a change is possible without major refactorings? Or did they already diverge too far? Anything we could do to improve the situation?

The application code stayed the same, but the entire io layer had to be completely rewritten. Well there were further complications because I relied on PIO (it's a neopixel project) and the only way to drive neopixel with teensy is the nxp flexio. Which currently is not supported by the imxrt-hal/ral/teensy4-bsp yet. So I pretty much have pull requests open along the entire stack :D but everyone is super supportive.

Finomnis commented 1 year ago

The experience would probably have been more straight forward if my usecase would rely more on the standardized micromod interface, like uart, spi, i2c etc.

9names commented 1 year ago

https://crates.io/crates/sparkfun-micromod-rp2040 I've added you as an owner @Finomnis, you'll have to accept before your name shows up on crates.io

jannic commented 1 year ago

Thanks for the feedback (and for your contribution, in the first place!)

If you notice something where another HAL has made better API choices than the rp2040 one, please open a ticket or tell us in the matrix chat room.