2024-07-15
1761
#rust
MacBobby Chibuzor
142078
Jul 15, 2024 â‹… 6 min read

A complete guide to running Rust on Arduino

MacBobby Chibuzor Go, Solidity, and Haskell developer interested in the cloud native world and blockchain technology. A fanatic for technical writing and open source contribution.

Recent posts:

How to use the Swiper.js slider library

Learn how to use Swiper, a powerful JavaScript slider library, to create responsive, interactive, and smooth UI experiences for websites.

Jude Miracle
Mar 18, 2025 â‹… 14 min read
A Complete Guide to Fetch API In Javascript

A complete guide to Fetch API in JavaScript

Learn how to use the Fetch API, an easy method for fetching resources from a remote or local server through a JavaScript interface.

Njong Emy
Mar 17, 2025 â‹… 8 min read
typescript enums

TypeScript enums: Usage, advantages, and best practices

Learn how TypeScript enums work, the difference between numeric and string enums, and when to use enums vs. other alternatives.

Clara Ekekenta
Mar 14, 2025 â‹… 7 min read
how to handle react-scripts in a fast-changing React landscape

How to handle react-scripts in a fast-changing React landscape

Review the basics of react-scripts, its functionality, status in the React ecosystem, and alternatives for modern React development.

Ibrahima Ndaw
Mar 13, 2025 â‹… 9 min read
View all posts

7 Replies to "A complete guide to running Rust on Arduino"

  1. > Starting a new Arduino project with avrdude

    > Starting a new project is made simpler with the cargo-generate crate. Simply run the following commands consecutively to create a new project:

    > cargo install cargo-generate

    where? run the commands *where* ?

  2. > Alternatively, you can run the command below to install the libudev-sys crate:

    ^ This tripped me up big-time! If you install libudev-sys via apt you must NOT put the dependency in cargo or it will break your build. I spent about and hour trying to fix this before I re-read the instructions and actually paid attention to the word “alternatively”.

  3. Setting the USB-Port under Windows isnt mentioned here unfortunately. I had to try this a bit and looked for how you list devices under windows:

    “`Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match ‘^USB’ } | Format-List“`
    in powershell gets you something. You have to look through your USB devices and find where the Microcontroller is located, and then put in the port like this in the cargo\config.toml file (as mentioned in the ravedude repo):

    “`runner = “ravedude uno -cb 57600 -P COM3″“`

    COM3 here is where the USB-Port showed up on my machine, uno is the target microcontroller, cb appears to be some sort of datalink speed (should be preset).

    Using ravedude it is possible to simply use cargo run and just flashing the code on the uno which is very neat.

    1. Nice one man!

      I didn’t know the part about the config.toml file, but you can find the COM port to use through the Arduino IDE or in Device Manager (built in to windows) if you want a GUI way to do it.

Leave a Reply