rust-embedded / wg

Coordination repository of the embedded devices Working Group
1.92k stars 97 forks source link

Rust support for Adafruit NeoTrellis M4 Express boads #286

Closed tarcieri closed 5 years ago

tarcieri commented 5 years ago

Hello all. I'm looking for other people who might be interested in developing some Rust crates for use with the NeoTrellis and NeoTrellis M4 (pictured below) devices from Adafruit:

https://learn.adafruit.com/adafruit-neotrellis/ https://learn.adafruit.com/adafruit-neotrellis-m4/

adafruit_products_3963_iso_lit_orig_2018_10

These devices are usable as relatively inexpensive ($60), small, self-contained (low fi) music synthesizers or USB MIDI controllers with a grid of 4x4 or 4x8 RGB LED buttons.

Here is a quick breakdown of the hardware:

tarcieri commented 5 years ago

Tangibly I'm interested in hearing from anyone who has developed Rust applications leveraging any of this hardware, and also collaborating on a Rust crate which presents some high-level interfaces to the device's functionality.

RandomInsano commented 5 years ago

This sounds like fun. I've got a few random things https://gist.github.com/RandomInsano/49148e290b5b3d8650b0d600c3e2dd2b going right now so I can't promise anything but reach out if you're not sure where to start.

I've been pretty far out of the loop lately so I'm not sure where the USB client crate is for that micro controller at the moment, but the rest of the features of the board look very doable.

On Dec 27, 2018, at 10:46 AM, Tony Arcieri notifications@github.com wrote:

Tangibly I'm interested in hearing from anyone who has developed Rust applications leveraging any of this hardware, and also collaborating on a Rust crate which presents some high-level interfaces to the device's functionality.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rust-embedded/wg/issues/286#issuecomment-450188403, or mute the thread https://github.com/notifications/unsubscribe-auth/AAEXanV5UyjSNwvrli-K733KT0x9Cx3_ks5u9PllgaJpZM4Zi9yO.

jonwingfield commented 5 years ago

Hi Tony,

There is already some active work going on for the ATSAMD21/51 family of micros at https://github.com/atsamd-rs/atsamd. Most of the work currently focuses on the 21, but there has been some started on the 51, and I think it would be a relatively simple thing to get going once you're familiar with the basics (SVDs, HAL, etc). I'd recommend opening a discussion there.

tarcieri commented 5 years ago

Thanks! I've opened an issue over there about ATSAMD51 support: https://github.com/atsamd-rs/atsamd/issues/38

tarcieri commented 5 years ago

Here's a PR to add an ATSAMD51 HAL: https://github.com/atsamd-rs/atsamd/pull/31

I've opened a separate issue about DAC support, documenting what AdaFruit's code does to utilize the DAC, as well as the corresponding Rust ATSAMD21 code: https://github.com/atsamd-rs/atsamd/issues/39

tarcieri commented 5 years ago

I've opened a PR to add a board definition here:

https://github.com/atsamd-rs/atsamd/pull/40

...and with that, I think I can close out this issue. Thanks for the help!

tarcieri commented 5 years ago

One last thing... here's Rust blinking all of the LED buttons! 🎉

ezgif-5-66826ee0bddf

tarcieri commented 5 years ago

Okay I lied. Last but not least here is the board support crate: https://crates.io/crates/trellis_m4