(I'm assuming crosscompiling then running on Linux, not bare-metal (but that also should be possible)) Not a big project, but I've run simple HTTP server on one. To be honest, with Rust it mostly just: rustup target add arm-unknown-linux-musleabihf cargo build --target arm-unknown-linux-musleabihf You might need to adjust target, depending on which Raspberry Pi version you're using. In my case, because I've fairly old one (RPi 1 B+), I had to additionally download gcc toolchain (for linking) from arm's website, as the one from distro didn't support armv6. Answer from Shadow0133 on reddit.com
🌐
GitHub
github.com › rust-embedded › rust-raspberrypi-OS-tutorials
GitHub - rust-embedded/rust-raspberrypi-OS-tutorials: :books: Learn to write an embedded OS in Rust :crab: · GitHub
Therefore, efforts were made to eliminate the biggest painpoint in embedded development as much as possible: Toolchain hassle. Rust itself is already helping a lot in that regard, because it has built-in support for cross-compilation. All that we need for cross-compiling from an x86 host to the Raspberry Pi's AArch64 architecture will be automatically installed by rustup.
Starred by 14.6K users
Forked by 870 users
Languages   Rust 82.2% | Makefile 8.5% | Ruby 5.9% | Assembly 3.2%
🌐
Embedded Rust
docs.rust-embedded.org
Embedded Rust documentation
Operating System development tutorials in Rust on the Raspberry Pi is a tutorial series for hobby OS developers who are new to ARM’s 64 bit ARMv8-A architecture. The tutorials will give a guided, step-by-step tour of how to write a monolithic Operating System kernel for an embedded system from scratch.
Discussions

Has anyone programmed a Raspberry Pi with Rust?

(I'm assuming crosscompiling then running on Linux, not bare-metal (but that also should be possible)) Not a big project, but I've run simple HTTP server on one. To be honest, with Rust it mostly just:

rustup target add arm-unknown-linux-musleabihf
cargo build --target arm-unknown-linux-musleabihf

You might need to adjust target, depending on which Raspberry Pi version you're using.

In my case, because I've fairly old one (RPi 1 B+), I had to additionally download gcc toolchain (for linking) from arm's website, as the one from distro didn't support armv6.

More on reddit.com
🌐 r/rust
25
57
July 1, 2022
Anyone using Rust on a PI ? - Raspberry Pi Forums
I prefer any of these over C++ ... my main Pi dev OS for these languages. Sakaki has newer versions on Gentoo64 than those on current Raspbian. Firefox is Rust, Neddy Seagoon wrote up that saga for Gentoo64 on the Gentoo pages. I would call that a pretty serious project. There is also a baremetal version somewhere. https://github.com/rust-embedded/rust-r ... More on raspberrypi.org
🌐 raspberrypi.org
February 18, 2019
A Book on Embedded programming with Raspberry Pi Pico 2
The RP2350 is a 32-bit dual ARM Cortex-M33 and Hazard3 RISC-V microcontroller integrated circuit designed by Raspberry Pi Ltd. It was released in August 2024 as part of the Raspberry Pi Pico 2 board. Is this true, they designed own chip for Pico 2? I mean it is limiting use in production because there will be always supply shortage. From my past experience with RPI platform, its almost impossible to buy mini boards in larger quantities. More on reddit.com
🌐 r/rust
12
86
December 2, 2024
Implementing a non blocking delay on Raspberry with Rust
You can use the crate nb , which is a minimal non-blocking I/O layer. The whole thing with the crate is that it doesn't block, but you can even make it block if you need it to. nb is used all the time by many HALs. (Examples on the documentation ) Alternatively you can use countdown timers or hardware alarms. Your HAL should implement some form of that. Alarm example: (rp-2040 hal, will probably be different on your hal) loop { let _ = alarm.schedule(DELAY_TIME.micros()); while !alarm.finished() { // Do stuff } // Alarm timer is automatically cleared here and will be rescheduled on the next loop } And your idea of using a timer is perfectly valid and it's commonly done; Timer example: (rp-2040 hal, will probably be different on your hal) loop { while timer.get_counter() < prev_time + DELAY_TIME { // do stuff } prev_time = timer.get_counter(); } Edit: I now see that it isn't implemented on your HAL. Then nb is probably your best bet. Best of luck! More on reddit.com
🌐 r/embedded
5
3
February 7, 2023
🌐
Raspberry Pi
raspberrypi.com › home › news › develop embedded firmware for pico using rust or zephyr with pico-vscode
Develop embedded firmware for Pico using Rust or Zephyr with pico-vscode - Raspberry Pi
October 29, 2025 - Bringing Zephyr and Rust support to the Raspberry Pi Pico ecosystem was only possible thanks to the hard work and dedication of many open-source contributors. Here are some of the people and communities that made it happen: Magpie Embedded — contributed major components to the Zephyr project to enable full support for the Raspberry Pi Pico (W) and Pico 2 (W) boards
🌐
GitHub
github.com › rust-embedded › awesome-embedded-rust
GitHub - rust-embedded/awesome-embedded-rust: Curated list of resources for Embedded and Low-level development in the Rust programming language · GitHub
Writing an embedded OS in Rust on the Raspberry Pi A set of tutorials that give a guided, step-by-step tour of how to write a monolithic Operating System kernel for an embedded system from scratch.
Starred by 7.8K users
Forked by 468 users
🌐
Rust
docs.rs › rpi_embedded
rpi_embedded - Rust
rpi_embedded is a fork of the RPPAL library. This fork is made to increase the usability of the RPPAL library. Spesificaly making it more user friendly and beginer friendly rpi_embedded provides access to the Raspberry Pi’s GPIO, I2C, PWM, SPI, UART and Bluetooth peripherals.
🌐
Medium
medium.com › @thiagopnts › raspberry-pi-bare-metal-programming-with-rust-a6f145e84024
Raspberry Pi Bare Metal Programming with Rust | by Thiago | Medium
August 21, 2016 - To get started we’re going to need `arm-none-eabi` toolchain, for cross-compiling, Rust nightly with `libcore` compiled for this architecture, Raspberry’s boot files and a Raspberry Pi B+ to run our code. I’ll walk-through the process. The steps below were done on OSX, but you can easily adapt to Linux. To install the arm-none-eabi toolchain you can either use homebrew or download the tarball, for OSX, Linux and Windows. With homebrew you just have to: $ brew tap nitsky/stm32 $ brew install arm-none-eabi-gcc $ arm-none-eabi-gcc --version arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 227977]
Find elsewhere
🌐
freeCodeCamp
freecodecamp.org › news › embedded-rust-programming-on-raspberry-pi-zero-w
Embedded Rust Programming on Raspberry Pi Zero W
June 9, 2022 - Using a Raspberry Pi Zero W, you can quickly get up and running with embedded Rust. Starting with an embedded "Hello World" equivalent, and advancing to a text-to-morse-code translato...
🌐
Rust-embedded
showcase.rust-embedded.org
Embedded Rust Showcase
A tri-color e-Paper display on a battery powered Raspberry Pi Zero W controlled by a Rust program using the embedded-hal ecosystem on Linux.
🌐
Apriorit
apriorit.com › home › blog › software development blog › how to develop a minimal os for raspberry pi 3 in rust
How to Develop a Minimal OS for Raspberry Pi 3 in Rust | Apriorit
October 10, 2025 - Our project includes the development of a no_std binary, driver abstractions, and I/O operations that make a Raspberry Pi 3 echo user input. Using Rust, a Raspberry Pi 3, and ready-made GPIO and UART registers allowed us to speed up development.
🌐
GitHub
github.com › JackG-eth › rust-raspberrypi-OS
GitHub - JackG-eth/rust-raspberrypi-OS: embedded OS in Rust :crab:
Therefore, efforts were made to eliminate the biggest painpoint in embedded development as much as possible: Toolchain hassle. Rust itself is already helping a lot in that regard, because it has built-in support for cross-compilation. All that we need for cross-compiling from an x86 host to the Raspberry Pi's AArch64 architecture will be automatically installed by rustup.
Author   JackG-eth
🌐
Raspberry Pi Forums
forums.raspberrypi.com › board index › hardware and peripherals › raspberry pi pico › general
"How Rust & Embassy Shine on Embedded Devices (Part 1)" - Raspberry Pi Forums
Embrace no_std and avoid alloc where possible. Brad and I wrote up details in a free Medium article: How Rust & Embassy Shine on Embedded Devices (Part 1). There is also an open-source Pico example and emulation instructions.
🌐
HelloGitHub
hellogithub.com › en › repository › rust-embedded › rust-raspberrypi-OS-tutorials
rust-embedded/rust-raspberrypi-OS-tutorials: Learn How to Write an Embedded Operating System in Rust - HelloGitHub
This tutorial starts from scratch and guides you step by step on how to develop a fully functional kernel for an embedded operating system using Rust. It includes tasks common to operating systems, such as developing a serial console, setting up virtual memory, and handling hardware exceptions. All the code in the tutorial can run on Raspberry Pi 3 and 4.
🌐
GitHub
github.com › kjartanklein › rpi_embedded
GitHub - KjartanKlein/rpi_embedded: A Rust library that provides access to the Raspberry Pi's GPIO, I2C, PWM, SPI and UART peripherals.
A Rust library that provides access to the Raspberry Pi's GPIO, I2C, PWM, SPI and UART peripherals. This library has documentation here https://docs.rs/rpi_embedded/
Author   KjartanKlein
🌐
Hannobraun
archive.hannobraun.com › embedded-rust › getting-started
Getting Started with Embedded Rust, Embassy, and the Raspberry Pi Pico
The Pi Pico and the RP2040 have a big community, and there's a large ecosystem of related hardware, including many other boards that feature the RP2040. probe-rs is an embedded debugging toolkit, also written in Rust, which integrates nicely with the rest of the tooling we're going to use.
🌐
Raspberry Pi
raspberrypi.org › board index › programming › other programming languages
Anyone using Rust on a PI ? - Raspberry Pi Forums
February 18, 2019 - I prefer any of these over C++ These all work in Gentoo64 which is my main Pi dev OS for these languages. Sakaki has newer versions on Gentoo64 than those on current Raspbian. Firefox is Rust, Neddy Seagoon wrote up that saga for Gentoo64 on the Gentoo pages. I would call that a pretty serious project. There is also a baremetal version somewhere. https://github.com/rust-embedded/rust-r ...
🌐
Medium
murraytodd.medium.com › learning-rust-with-embedded-programming-on-rp2040-e784389d2d3d
Learning Rust with Embedded Programming on RP2040 | by Murray Todd Williams | Medium
September 23, 2024 - Raspberry Pi released a couple small boards with the RP2040: the Pico and Pico W with it’s on-board Wifi/Bluetooth chip. Pictured above is another RP2040-powered board I bought from SparkFun, their Pro Micro RP2040.
🌐
GitHub
github.com › rp-rs › rp-hal
GitHub - rp-rs/rp-hal: A Rust Embedded-HAL for the rp series microcontrollers · GitHub
They used to be in this repository, but were moved out because there were so many of them. Rust generates standard Arm ELF files, which you can load onto your Raspberry Pi microcontroller device with your favourite Arm flashing/debugging tool.
Starred by 1.9K users
Forked by 287 users
Languages   Rust
🌐
Rustrepo
rustrepo.com › repo › rust-embedded-rust-raspberrypi-OS-tutorials-rust-operating-systems
Learn to write an embedded OS in Rust | RustRepo
January 6, 2023 - Therefore, efforts were made to eliminate the biggest painpoint in embedded development as much as possible: Toolchain hassle. Rust itself is already helping a lot in that regard, because it has built-in support for cross-compilation. All that we need for cross-compiling from an x86 host to the Raspberry Pi's AArch64 architecture will be automatically installed by rustup.