5 Tips for Learning Rust for Embedded Systems

5 Tips for Learning Rust for Embedded Systems

Deciding on the programming language for your upcoming embedded item could not be as basic as just picking out C. Though C has been the industry’s go-to workhorse for the past 50 years, its functions and capabilities radically lag fashionable languages like C++ and Rust. As a end result, I have witnessed several teams transitioning from C to C++ nevertheless, could there be a place for Rust?

Irrespective of whether you are zealous about adopting Rust for embedded methods or merely curious about the language, there are five tips you can follow to aid you get up to pace and recognize no matter whether Rust is acceptable for your jobs.

Tip #1 – Study the Rust Books

The Rust community has been excellent about producing studying materials for the computer software local community and earning them commonly offered. Having said that, if you don’t know nearly anything about Rust, there are several sources that I would suggest you verify out.

  • The Rust Programming Language. The introductory reserve introduces builders to the Rust toolchain and important principles these as ownership, structured knowledge, pattern matching, language syntax, software packaging, and more.
  • Discovery. A microcontroller introductory e book that works by using Rust to introduce readers to Rust. The book is great for learners and novices but could not be a fantastic read for embedded application builders with experience. Having said that, the reserve does decide on a “choose your individual adventure” with palms-on mastering.
  • The Embedded Rust Ebook. Aimed at knowledgeable embedded builders to give them the language capabilities they want to produce embedded code with Rust, this ebook walks by way of acquiring started with Rust, the toolchain, simulation, and on-concentrate on deployment making use of STM32 sections. If you have encounter, this is the position to start!

I would also advocate that you look at out the Embedded Rust Documentation. The group often updates these resources and is an great supply of information.

Idea #2 – Get Fingers-on With a Task

The very best way to study a programming language is to get palms-on and make some thing real. Therefore, if you are severe about seeking out Rust for embedded, you require to consider a task you are interested in and consider to create. Of class, I’m not indicating you ought to spend all your weekends and create a solution you will acquire to market place. However, a very simple passion task can do.

For a long time, I’ve used a weather conditions station as my technological tryout. If you go back again through my programs, blogs, and information, you are going to explore that I’ve built temperature stations:

  • In Python on Raspberry Pis
  • In C on STM32s
  • In MicroPython on Netduinos
  • In C++ on STM32L4s
  • In Rust for an STM32F3

I’m not overly passionate about the climate I just have identified that the moment I developed a weather conditions station, I comprehended the principles and hardware. Earning it yet again in various languages on marginally various hardware assists me to:

  • Understand the new syntax
  • Understand language principles
  • Understand how to map memory on the microcontroller
  • Create motorists and interfaces
  • Interface with exterior gadgets
  • Compose reusable code

Locate anything uncomplicated that passions you, and then understand Rust by making it!

Idea #3 – Attend Layout Information‘s Rust CEC System

Official education can enable you understand a language substantially more quickly. You can master from an teacher of the ideal practices, what to do, what not to do, and so forth. Design Information has its Digikey Continuing Instruction Heart (CEC), which has a ton of excellent classes. 1 future class is entitled Rust for Embedded, and the speaker will be yours genuinely. The course will operate from February 28 – March 3rd, 2023. The recordings will be obtainable in the archive afterward, but you may want to contemplate attending live so that you can question questions.

Tip #4 – Leverage CoPilot to Speed up Learning

An interesting natural environment to understand Rust is Visible Studio Code (VSC). VSC has a GitHub Copilot extension that can suggest and help autocomplete code. If you download the Rust extension, it also provides an superb resource for you to see the Rust code.

The adhering to is an illustration of a very simple Rust software that I wrote to print “Hello Environment,” study in 10 people, and then print them to the terminal:


// Rust major functionality

fn most important()

    println!(“Howdy, world!”)


    // Rust array with 10 elements initialized to

    permit mut a = [0; 10]


    // Go through characters from keyboard in a

    for i in ..10

        a[i] = examine!()



    // Print array

    for i in ..10

        print!(” “, a[i])



Let me be apparent: the only code I wrote was the reviews. Based mostly on my feedback, Copilot produced or proposed the code that came right after. It is a uncomplicated, trivial instance, but I assume you can see the electricity of this kind of a technique!

Idea #5 – Use ChatGPT to Improve Your Code

The code that GitHub Copilot created was very amazing. It allows you to write functioning code. However, was that code it generated the best to use? Did it fit with Rust’s idiomatic syntax? Would an knowledgeable Rust developer cringe at the code we just wrote? Possibly. So how could we improve it if we don’t fully grasp the language?

An additional way to make improvements to your code is to ask ChatGPT to make improvements to it or to use the open AI auto code completion playground. When I asked the AI design, “Can you strengthen the next Rust code to be much more Rust idiomatic?” it responded with the adhering to:


// Enhanced variation

fn major()

    println!(“Hello there, environment!”)


    permit mut a: [i32; 10] = [0; 10]


    for i in ..10

        a[i] = go through_enter().unwrap_or()



    for i in ..10

        print!(” “, a[i])



fn study_enter() -> Final result

    permit mut input = String::new()


    std::io::stdin().browse_line(&mut enter)?



We can see that this code now reads in a string and parses and will return an error if 1 is produced. If you had been new to Rust, you’d discover some new syntax and libraries to assistance make existence less complicated.      


Rust is an enjoyable language. It might one particular working day become the dominant embedded programming language or come to be an different selection to C/C++. There are several strategies to learn Rust involving guides, palms-on tasks, courses, and even leveraging AI models to guide you. As a procedure language, Rust appears to have an eye on embedded advancement. Whether it will come to dominate the industry is nevertheless to be witnessed. Either way, I consider you’ll obtain that Rust is an interesting language worth understanding. No matter whether you adopt it as your go-to language, only time will explain to.