9 releases (5 breaking)
0.7.2 | Oct 18, 2024 |
---|---|
0.7.1 | Jul 15, 2023 |
0.7.0 | Jan 11, 2022 |
0.5.0 | Sep 27, 2021 |
0.2.0 | Jul 30, 2020 |
#2317 in Embedded development
53 downloads per month
1.5MB
28K
SLoC
Arduino Nano 33 IOT Board Support Crate
This crate provides a type-safe API for working with the Arduino nano 33 IOT board.
Requirements
- Arduino IDE or arduino CLI installed.
samd
package installed. You can do this by going to Tools->Board->BoardManager and then searching forsamd
or runarduino-cli core install arduino:samd
.- Now the arduino distribution contains bossac.exe in
ArduinoData/packages/arduino/tools/bossac/1.7.0[-arduino3]/
add it to your path
- linux:
ArduinoData
is likely something like~/.arduino15/
- OSX:
ArduinoData
is likely something like~/Library/Arduino15
- Probably best to install an example sketch via the IDE just to make sure everything is working.
arm-none-eabi
tools installed, you needgcc
andobjcopy
.
- Note: Alternatively, you can use cargo-binutils, which is likely easier to install on OSX and also easier to use, as it will automatically detect the target
thumbv6m-none-eabi
rust target installed viarustup target add thumbv6m-none-eabi
. Some features may also require nightly rust.
Steps
cargo build --release --example blinky_basic
# If using cargo-binutils, you can `rust-objcopy` with the same flags, or combine these 2 steps with `cargo objcopy`
arm-none-eabi-objcopy -O binary target/thumbv6m-none-eabi/release/examples/blinky_basic target/blinky_basic.bin
# If using bossac
bossac -i -d -U true -i -e -w -v target/blinky_basic.bin -R
# If using arduino-cli
arduino-cli upload -i target/blinky_basic.bin -b arduino:samd:nano_33_iot -p /dev/ttyACM0
(You may need to use --port
with something like /dev/ttyACM0
//dev/ttyACM1
, or /dev/tty.usbmodemNNNNN
on OSX)
Notes
- It may help to double-press the center button to reset when re-flashing the device. This sets the device in a bootloader mode.
- For the usb example,
picocom
is a good simple terminal serial emulator, installable with your os's package manager orbrew
- On OSX, after flashing the tty for serial communication may be different, for example
/dev/tty.usbmodemTEST1
- On OSX, after flashing the tty for serial communication may be different, for example
Dependencies
~5MB
~118K SLoC