14 releases (9 breaking)
0.10.1 | Oct 18, 2024 |
---|---|
0.10.0 | Jan 11, 2022 |
0.9.0 | Sep 27, 2021 |
0.8.0 | Jan 1, 2021 |
0.1.2 | Mar 17, 2019 |
#884 in Embedded development
Used in neobirth
1.5MB
29K
SLoC
Adafruit NeoTrellis M4 Express Board Support Crate
This crate provides a type-safe Rust API for working with the Adafruit NeoTrellis M4 board.
Board Features
- Microchip ATSAMD51G Cortex-M4 microcontroller @ 120 MHz (32-bit, 3.3V logic and power)
- 512kB Flash
- 192kB SRAM
- 8 MB SPI Flash chip
- USB device controller (for e.g. MIDI)
- 4-JST hacking port with 3.3V power, ground, and two GPIO (can be I2C/ADC/UART)
- Analog Devices ADXL343 triple-axis accelerometer
Prerequisites
- Install the cross compile toolchain
rustup target add thumbv7em-none-eabihf
- Install cargo-hf2 the hf2 bootloader flasher tool however your platform requires
Uploading an example
Check out the repository for examples:
https://github.com/atsamd-rs/atsamd/tree/master/boards/trellis_m4/examples
- Be in this directory
cd boards/trellis_m4
- Put your device in bootloader mode usually by hitting the reset button twice.
- Build and upload in one step
$ cargo hf2 --release --example neopixel_rainbow
Finished release [optimized + debuginfo] target(s) in 0.19s
Searching for a connected device with known vid/pid pair.
Trying Ok(Some("Adafruit Industries")) Ok(Some("PyBadge"))
Flashing "/Users/User/atsamd/boards/trellis_m4/target/thumbv7em-none-eabihf/release/examples/neopixel_rainbow"
Finished in 0.079s
$
Optional trellis_m4
Cargo Features
The following optional hardware drivers can be enabled as cargo features:
adxl343
: ADXL343 accelerometer supportkeypad-unproven
: (alpha) support for button input via the keypad crate
To enable them, use the features
option when adding a crate dependency to
your Cargo.toml:
[dependencies]
trellis_m4 = { version = "~0.1", features = ["adxl343", "keypad-unproven"] }
Or when running an example:
$ cargo hf2 --release --example neopixel_keypad
error: target `neopixel_keypad` in package `trellis_m4` requires the features: `keypad-unproven`
Consider enabling them by passing, e.g., `--features="keypad-unproven"`
Just follow the instructions to add --features like
cargo hf2 --release --example neopixel_keypad --features="keypad-unproven"
Finished release [optimized + debuginfo] target(s) in 0.09s
Searching for a connected device with known vid/pid pair.
Trying Ok(Some("Adafruit Industries")) Ok(Some("PyGamer"))
Flashing "/Users/User/atsamd/boards/trellis_m4/target/thumbv7em-none-eabihf/release/examples/neopixel_keypad"
Finished in 0.167s
$
More Examples
Dependencies
~7MB
~168K SLoC