Crates.io | ravedude |
lib.rs | ravedude |
version | 0.1.8 |
source | src |
created_at | 2021-03-06 13:38:58.056832 |
updated_at | 2024-03-15 17:17:45.421296 |
description | Tool to easily flash code onto an AVR microcontroller with avrdude |
homepage | |
repository | https://github.com/Rahix/avr-hal/tree/main/ravedude |
max_upload_size | |
id | 364794 |
size | 535,983 |
ravedude
is a CLI utility to make Rust development for AVR microcontrollers
super smooth. It's a wrapper around avrdude
and provides easy access to the
target's serial console, similar to the Arduino IDE.
ravedude
is meant to be used as a cargo "runner". This allows you to just use
cargo run
for building, deploying, and running your AVR code!
if you get an Error: no matching serial port found, use -P or set RAVEDUDE_PORT in your environment
,
run cargo run
with set environment variable or adjust runner = "ravedude {X} -cb {X} -P /dev/ttyUSB{X}"
inside .cargo/config.toml
(replace {X} with your respective values)
On Linux systems, you'll need pkg-config and libudev development files installed:
pacman -S systemd pkgconf
apt install libudev-dev pkg-config
dnf install systemd-devel pkgconf-pkg-config
Next, install the latest version from crates.io with the following command:
cargo install ravedude
Alternatively, if you're using Nix (the package manager) + Flakes, you can install ravedude
by adding inputs.ravedude.url = "github:Rahix/avr-hal?dir=ravedude";
and use the package ravedude.packages."${system}".default
.
Now you need to add ravedude to your project. For example in a project for
Arduino Uno, place the following into your .cargo/config.toml
(not in
Cargo.toml
):
[target.'cfg(target_arch = "avr")']
runner = "ravedude uno --open-console --baudrate 57600"
And that's all, now just call cargo run
and watch it do its magic:
avr-hal/examples/arduino-uno on ravedude via v1.51.0-nightly ❯ cargo run --bin uno-i2cdetect Compiling arduino-uno-examples v0.0.0 (avr-hal/examples/arduino-uno) Finished dev [optimized + debuginfo] target(s) in 1.26s Running `ravedude uno -cb 57600 avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf` Board Arduino Uno Programming avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf => /dev/ttyACM0 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: erasing chip avrdude: reading input file "avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf" avrdude: writing flash (1654 bytes): Writing | ################################################## | 100% 0.27s avrdude: 1654 bytes of flash written avrdude: verifying flash memory against avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf: avrdude: load data flash data from input file avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf: avrdude: input file avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf contains 1654 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.21s avrdude: verifying ... avrdude: 1654 bytes of flash verified avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. Programmed avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf Console /dev/ttyACM0 at 57600 baud Write direction test: - 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- 38 39 -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- Read direction test: - 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- 38 39 -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
ravedude is licensed under either of
at your option.