awesome-embedded-rust

Embedded dev resources

A curated list of resources for embedded and low-level development in Rust.

Curated list of resources for Embedded and Low-level development in the Rust programming language

GitHub

6k stars
172 watching
396 forks
last commit: almost 2 years ago
Linked from 2 awesome lists

awesomeawesome-listembeddedembedded-systemslibrariesrust

Embedded Rust / Community

Embedded WG1,936almost 2 years ago, including newsletters with progress updates

Embedded Rust / Community / Community Chat Rooms

#rust-embedded:matrix.org Matrix roomYou can usually find community members (including embedded WG members) in the official
#rust-embedded-space:matrix.orgMost Embedded Rust related Matrix rooms are in the Rust Embedded Space
embedded.rs-wasm-iotEnglish Telegram chat about Rust and WASM for microcontrollers and IoT
embedded.rsTelegram chat about Rust for microcontrollers in the Russian language
#avr-rust:gitter.imFor discussion of using Embedded Rust on AVR devices
#esp-rs:matrix.orgFor discussion of using Embedded Rust on Espressif devices
#nrf-rs:matrix.orgFor discussion of using Embedded Rust on Nordic Semiconductor devices
#probe-rs:matrix.orgFor discussion of the Probe-rs debugging toolkit
#rp-rs:matrix.orgFor discussion of using Embedded Rust on RP2040 based devices
#rtic-rs:matrix.orgFor discussion of the Real-Time Interrupt-driven Concurrency framework
#rust-embedded-graphics:matrix.orgFor discussion of the crate and ecosystem
#stm32-rs:matrix.orgFor discussion of using Embedded Rust on STM32 based devices
#atsamd-rs:gitter.imFor discussions of using Embedded Rust on ATSAMD devices
#ethercrab:matrix.orgFor discussion of general EtherCAT and the Rust implementation, EtherCrab
rust-embedded:QQ groupChinese community for Rust embedded

Embedded Rust / Books, blogs, and training materials / Free and public materials

The Embedded Rust BookAn introductory book about using the Rust Programming Language on "Bare Metal" embedded systems, such as Microcontrollers
The Rust on ESP BookThis book aims to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules
Embedded Rust (no_std) on EspressifTraining for Rust using no_std approach development on ESP32-C3
Embedded Rust (std) on EspressifTraining for Rust using std approach development on ESP32-C3 by Ferrous Systems
Discoveryby @rust-embedded — this book is an introductory course on microcontroller-based embedded systems that uses Rust as the teaching language. Original author: @japaric
Cortex-M Quickstartby @japaric – a template and introduction to embedded Rust, suitable for developers familiar with embedded development but new to embedded Rust
Writing an OS in RustA blog series creating a small operating system in Rust
MicroRustIntroductory book for embedded development in Rust on the micro:bit
Physical Computing With RustA (WIP) guide to physical computing with Rust on the Raspberry Pi
Writing an embedded OS in Rust on the Raspberry Pi13,798over 2 years agoA 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. Runs on the Raspberry Pi 3 and the Raspberry Pi 4
Writing embedded drivers in Rust isn't that hardA guide to building an embedded-hal driver
Ferrous Systems' Embedded Training Courses: 2020-current edition249about 3 years agoA hands-on training course for beginner and advanced learners of Embedded Rust, based on Nordic Semiconductor's nRF52840 hardware. This training was given at Oxidize Conferences and by to corporate customers
Ferrous Systems' Knurling Sessionsare hands-on embedded projects that explore specific concepts using generally available hardware, building full systems and components using microcontrollers, sensors, and actuators
DSP on STM32F407G-DISC131almost 5 years agoUnofficial oxidization of the book. The book isn't necessary to enjoy the examples and learn a functional DSP Rust coding style
Building a sailing starter board with Rust (RTIC)A step-by-step story/guide to build STM32-based PCB and program it with Rust for fun and games
STM32F4xx with Embedded Rust at the HALA blog containing a series of tutorials demonstrating the use of several peripherals through simple examples leveraging the stm32f4xx-hal crate
Embedded Rust programming playlistVarious livestreams with Embedded Rust live coding
ESP32-C3 Rust TutorialsShort videos and implementing various peripherals of the ESP32-C3 with the end goal of creating a complete data logger application
Tweede golf's workshopA full workshop about Rust and embedded Rust. The embedded parts use the nRF52840-DK and a LIS3DH breakout board. ( )

Embedded Rust / Books, blogs, and training materials / Paid and commercially available materials

Simplified Embedded Rust: Standard Library EditionThis book provides a quick path to start learning embedded Rust with minimal setup. Book is based on ESP devices and the Wokwi Simulator. This edition uses the standard library development approach which is based on the ESP-IDF framework
Simplified Embedded Rust: Core Library EditionThis book provides a quick path to start learning embedded Rust with minimal setup. Book is based on ESP devices and the Wokwi Simulator. This edition uses the core library development approach for bare metal development

Embedded Rust / Tools

xargo1,099over 3 years agoRust package manager with support for non-default std libraries — build Rust runtime for your embedded system

Embedded Rust / Tools / xargo

cargo-xbuild259over 4 years agoxargo is great, but since it's in maintenance mode, is catching up as its intended replacement

Embedded Rust / Tools

svd2rust724almost 2 years agoGenerate Rust structs with register mappings from SVD files
edc2svd6almost 3 years agoGenerate SVD files for PIC32 devices from EDC files. -
embedded-hal-mockMock implementation of traits for testing without accessing real hardware. -
bindgenAutomatically generates Rust FFI bindings to C and C++ libraries. -
cortex-m semihosting0over 6 years agoSemihosting for ARM Cortex-M processors
bobbin-cli114over 6 years agoA Rust command line tool to simplify embedded development and deployment
ferros109about 3 years agoA Rust-based userland which also adds compile-time assurances to seL4 development
cargo-flashA small cargo subcommand to download your binary to your target chip. -
cargo-embedA superset of cargo-flash with additional useful features like configuration file support, an RTT terminal, or a GDB server. -
cargo-hf251almost 3 years agoA small cargo subcommand to download cargo builds to Microsoft UF2 bootloaders via HID USB . -
cargo-bloat2,393over 2 years agoFind out what takes most of the space in your executable
cargo-call-stackStatic, whole program stack usage analyzer
cargo-dfuCargo extension for flashing embedded rust programs via DFU
espflash498almost 2 years agoSerial flasher utility for Espressif SoCs and modules. -
espup237almost 2 years agoTool for installing and maintaining Espressif Rust ecosystem. -
uf228almost 5 years agoConverts binary files to Microsoft's UF2 format for copying over to mass storage device uf2 bootloaders -
probe-rs1,839almost 2 years ago: a modern, embedded debugging toolkit, written in Rust
Knurling Toolsare developed by to ease the development process for building, debugging, and testing embedded Rust systems. These tools include:

Embedded Rust / Tools / Knurling Tools

defmt876almost 2 years ago: a highly efficient logging framework that targets resource-constrained devices, like microcontrollers
flip-link289almost 2 years ago, a linker wrapper that provides stack overflow protection without an MMU by flipping the standard memory layout of ARM Cortex-M programs
app-template320almost 2 years ago, a powered project template for quickly setting up new projects using the Knurling Tools
defmt-test9almost 6 years ago, an embedded test harness that lets you write and run unit tests as if you were using the built-in attribute, but will run on an embedded target

Embedded Rust / Tools

embedded-hal-compat15over 2 years ago, a compatibility layer to provide interoperability between and hal implementations and drivers
Embassy start27over 3 years agois a GitHub repo template for setting up async embedded Rust projects that use . This particular template targets nRF hardware and networking using the Uarte for the purposes of illustration only
svd-generatorCLI tool to parse flattened device tree files, and create a SVD file. -

Embedded Rust / Real-time / Real-time Operating System (RTOS)

Drone OSAn Embedded Operating System for writing real-time applications in Rust
FreeRTOS.rs234almost 6 years agoRust interface for the FreeRTOS API
FreeRTOS-rust377almost 2 years agoRust interface for FreeRTOS with Rust entry point and build support crate
RIOT-OSdirectly supports applications written in Rust, both in terms of build system integration and by having safe and idiomatic wrappers
TockAn embedded operating system designed for running multiple concurrent, mutually distrustful applications on low-memory and low-power microcontrollers
Hubris3,050almost 2 years agoA real-time operating system built by Oxide Computer to run the Service Controller processor in the mainboards of their rack-mount servers

Embedded Rust / Real-time / Real-time tools

RTIC v1.0Real-Time Interrupt-driven Concurrency — A concurrency framework for building real-time systems:

Embedded Rust / Real-time / Real-time tools / RTIC v1.0

cortex-m rtic1,849almost 2 years agoRTIC framework for ARM Cortex-M microcontrollers
msp430 rtfm11about 9 years agoRTFM framework for MSP430 MCUs

Embedded Rust / Peripheral Access Crates / Microchip

atsamd11571almost 2 years agoPeripheral access API for Microchip (formerly Atmel) SAMD11 microcontrollers. This git repo hosts both the peripheral access crate and the hal
atsamd21571almost 2 years agoPeripheral access API for Microchip (formerly Atmel) SAMD21 microcontrollers. This git repo hosts both the peripheral access crate and the hal
atsamd51571almost 2 years agoPeripheral access API for Microchip (formerly Atmel) SAMD51 microcontrollers. This git repo hosts both the peripheral access crate and the hal
atsame53571almost 2 years agoPeripheral access API for Microchip (formerly Atmel) SAME53 microcontrollers. This git repo hosts both the peripheral access crate and the hal
atsame54571almost 2 years agoPeripheral access API for Microchip (formerly Atmel) SAME54 microcontrollers. This git repo hosts both the peripheral access crate and the hal
atsamx7x-rust25over 2 years agoPeripheral access API for Microchip (formerly Atmel) SAM S70/E70/V70/V71 microcontrollers. This git repo hosts both the peripheral access crate and the hal
avr-device184almost 2 years agoPeripheral access API for Microchip (formerly Atmel) AVR microcontroller family
sam3x8ePeripheral access API for Atmel SAMD3X8E microcontrollers (generated using svd2rust) -
pic32-pacPeripheral access API for PIC32MX1/2xx -

Embedded Rust / Peripheral Access Crates / Nordic

nrf51Peripheral access API for nRF51 microcontrollers (generated using svd2rust) -
nrf52810-pacPeripheral access API for the nRF52810 microcontroller (generated using svd2rust) -
nrf52811-pacPeripheral access API for the nRF52811 microcontroller (generated using svd2rust) -
nrf52832-pacPeripheral access API for the nRF52832 microcontroller (generated using svd2rust) -
nrf52833-pacPeripheral access API for the nRF52833 microcontroller (generated using svd2rust) -
nrf52840-pacPeripheral access API for the nRF52840 microcontroller (generated using svd2rust) -
nrf5340-app-pacPeripheral access API for the nRF5340 application core (generated using svd2rust) -
nrf5340-net-pacPeripheral access API for the nRF5340 network core (generated using svd2rust) -
nrf9160-pacPeripheral access API for the nRF9160 system-in-package (generated using svd2rust) -

Embedded Rust / Peripheral Access Crates / NXP

k64-
lpc11uxx-
lpc55s6x-pac-
lpc82x-pac-
lpc845-pac-
mkw41z-
imxrt-ral145almost 2 years agoRegister access layer for i.MX RT series. -
SKEAZN642Peripheral access API for KEA64 family microcontrollers (generated using svd2rust) -

Embedded Rust / Peripheral Access Crates / Raspberry Pi Silicon

rp2040-pacPeripheral access API for the RP2040 dual-core system-on-chip (generated using svd2rust) -

Embedded Rust / Peripheral Access Crates / SiFive

e310x19almost 2 years agosvd2rust generated interface to SiFive MCUs -

Embedded Rust / Peripheral Access Crates / Silicon Labs

efm32pg12-pacPeripheral access API for Silicon Labs EFM32PG12 microcontrollers -
efm32g-pac-
efm32gg-pac-
efm32gg11b-pac-
efm32gg12b-pac-
efm32hg-pac-
efm32jg1b-pac-
efm32jg12b-pac-
efm32lg-pac-
efm32pg-pac-
efm32pg22-pac-
efm32pg23-pac-
efm32tg-pac-
efm32tg11b-pac-
efm32wg-pac-
efm32zg-pac-

Embedded Rust / Peripheral Access Crates / StarFive

j71xx-pacsvd2rust generated interface to StarFive MCUs -

Embedded Rust / Peripheral Access Crates / STMicroelectronics

stm32f0-
stm32f1-
stm32f2-
stm32f3-
stm32f4-
stm32f7-
stm32g0-
stm32g4-
stm32h7-
stm32l0-
stm32l1-
stm32l4-

Embedded Rust / Peripheral Access Crates / Texas Instruments

tm4c123xPeripheral access API for TM4C123x microcontrollers (generated using svd2rust)
tm4c129xPeripheral access API for TM4C129x microcontrollers (generated using svd2rust)

Embedded Rust / Peripheral Access Crates / MSP430

msp430g2553Peripheral access API for MSP430G2553 microcontrollers (generated using svd2rust)

Embedded Rust / Peripheral Access Crates / MSP430 / msp430g2553

msp430 quickstart38about 4 years agosome examples for msp430

Embedded Rust / Peripheral Access Crates / MSP430

msp430fr2355Peripheral access API for MSP430FR2355 microcontrollers (generated using svd2rust)
msp430fr6972-

Embedded Rust / Peripheral Access Crates / Espressif

esp32116almost 2 years ago-
esp32c2116almost 2 years ago-
esp32c3116almost 2 years ago-
esp32c6116almost 2 years ago-
esp32h2116almost 2 years ago-
esp32s2116almost 2 years ago-
esp32s3116almost 2 years ago-
esp8266116almost 2 years ago-

Embedded Rust / Peripheral Access Crates / Ambiq Micro

ambiq-apollo1-pacPeripheral access API for Ambiq Apollo 1 microcontrollers (generated using svd2rust)
ambiq-apollo2-pacPeripheral access API for Ambiq Apollo 2 microcontrollers (generated using svd2rust)
ambiq-apollo3-pacPeripheral access API for Ambiq Apollo 3 microcontrollers (generated using svd2rust)
ambiq-apollo3p-pacPeripheral access API for Ambiq Apollo 3 Plus microcontrollers (generated using svd2rust)

Embedded Rust / Peripheral Access Crates / GigaDevice

gd32vf103-pac36almost 2 years agoPeripheral access API for GD32VF103 RISC-V microcontrollers (generated using svd2rust) -
gd32e2Peripheral access API for GD32E23x Cortex-M23 microcontrollers (generated using svd2rust) -
gd32f1Peripheral access API for GD32F1x0 Cortex-M3 microcontrollers (generated using svd2rust) -
gd32f2Peripheral access API for GD32F20x Cortex-M3 microcontrollers (generated using svd2rust) -

Embedded Rust / Peripheral Access Crates / XMC

xmc41001almost 2 years ago-
xmc42002almost 2 years ago-
xmc43004almost 2 years ago-
xmc44001almost 2 years ago-
xmc45003almost 2 years ago-
xmc47003almost 2 years ago-
xmc48003almost 2 years ago-

Embedded Rust / Peripheral Access Crates / Vorago

va108xx-
va416xx-

Embedded Rust / Peripheral Access Crates / Wiznet

w7500x-pacPeripheral Access Crate for Wiznet's W7500x microcontrollers (generated using svd2rust) -

Embedded Rust / Peripheral Access Crates / Renesas

ra2a18almost 2 years agoPeripheral Access Crate for ra2a1 microcontrollers (generated using svd2rust) -
ra2e18almost 2 years agoPeripheral Access Crate for ra2e1 microcontrollers (generated using svd2rust) -
ra2e28almost 2 years agoPeripheral Access Crate for ra2e2 microcontrollers (generated using svd2rust) -
ra2l18almost 2 years agoPeripheral Access Crate for ra2l1 microcontrollers (generated using svd2rust) -
ra4e18almost 2 years agoPeripheral Access Crate for ra4e1 microcontrollers (generated using svd2rust) -
ra4m18almost 2 years agoPeripheral Access Crate for ra4m1 microcontrollers (generated using svd2rust) -
ra4m28almost 2 years agoPeripheral Access Crate for ra4m2 microcontrollers (generated using svd2rust) -
ra4m38almost 2 years agoPeripheral Access Crate for ra4m3 microcontrollers (generated using svd2rust) -
ra4w18almost 2 years agoPeripheral Access Crate for ra4w1 microcontrollers (generated using svd2rust) -
ra6e18almost 2 years agoPeripheral Access Crate for ra6e1 microcontrollers (generated using svd2rust) -
ra6m18almost 2 years agoPeripheral Access Crate for ra6m1 microcontrollers (generated using svd2rust) -
ra6m28almost 2 years agoPeripheral Access Crate for ra6m2 microcontrollers (generated using svd2rust) -
ra6m38almost 2 years agoPeripheral Access Crate for ra6m3 microcontrollers (generated using svd2rust) -
ra6m48almost 2 years agoPeripheral Access Crate for ra6m4 microcontrollers (generated using svd2rust) -
ra6t18almost 2 years agoPeripheral Access Crate for ra6t1 microcontrollers (generated using svd2rust) -
ra6t28almost 2 years agoPeripheral Access Crate for ra6t2 microcontrollers (generated using svd2rust) -
da14531Peripheral Access Crate for DA14531 Ultra-Low Power BT 5.1 System-on-Chip -

Embedded Rust / HAL implementation crates / OS

bitbang-halsoftware protocol implementations for microcontrollers with digital::OutputPin and digital::InputPin
ftdi-embedded-halfor FTDI FTx232H chips connected to Linux systems via USB
linux-embedded-halfor embedded Linux systems like the Raspberry Pi. -
freebsd-embedded-halfor embedded (or ) FreeBSD systems. -

Embedded Rust / HAL implementation crates / Microchip

atsam4-halHAL for SAM4E, SAM4N and SAM4S -
atsamd-halHAL for SAMD11, SAMD21, SAMD51 and SAME54 -
atsamx7x-halHAL for SAM S70/E70/V70/V71-based devices -
avr-hal1,336almost 2 years agoHAL for AVR microcontroller family and AVR-based boards
pic32-halHAL for PIC32MX -

Embedded Rust / HAL implementation crates / Nordic

nrf51-hal-
nrf52810-hal-
nrf52811-hal-
nrf52832-hal-
nrf52833-hal-
nrf52840-hal-
nrf9160-hal-

Embedded Rust / HAL implementation crates / NXP

lpc55s6x-hal-
lpc8xx-halHAL for lpc82x and lpc845 -
mkw41z-hal-
imxrt-hal145almost 2 years agoHAL for i.MX RT series. -

Embedded Rust / HAL implementation crates / Raspberry Pi Silicon

rp2040-halHAL for the RP2040 dual-core system-on-chip -

Embedded Rust / HAL implementation crates / SiFive

e310x-hal17over 2 years agoHAL for SiFive MCUs -

Embedded Rust / HAL implementation crates / STMicroelectronics

stm32f0xx-hal-

Embedded Rust / HAL implementation crates / STMicroelectronics / stm32f0xx-hal

http://www.st.com/en/evaluation-tools/nucleo-f042k6.htmlHas examples that can run on boards like the [Nucleo-F042K6] and similar boards [Nucleo-F042K6]:

Embedded Rust / HAL implementation crates / STMicroelectronics

stm32f1xx-hal579almost 2 years ago-

Embedded Rust / HAL implementation crates / STMicroelectronics / stm32f1xx-hal

https://stm32duinoforum.com/forum/wiki_subdomain/index_title_Blue_Pill.htmlCan be run on boards like the [Blue pill], [Nucleo-F103RB], and similar boards [Blue pill]: [Nucleo-F103RB]:

Embedded Rust / HAL implementation crates / STMicroelectronics

stm32f3xx-hal-
stm32f4xx-hal-
stm32f7xx-hal-
stm32g0xx-hal-
stm32h7xx-hal-
stm32l0xx-hal-
stm32l1xx-hal-
stm32l151-hal-
stm32l4xx-hal-

Embedded Rust / HAL implementation crates / STMicroelectronics / stm32l4xx-hal

Nucleo-L432KCGeneric hal support for stm32l4 devices, has examples that can run on boards like the , , and similar boards

Embedded Rust / HAL implementation crates / STMicroelectronics

stm32-hal-

Embedded Rust / HAL implementation crates / Texas Instruments

tm4c123x-hal42over 2 years ago

Embedded Rust / HAL implementation crates / MSP430

msp430fr2x5x-hal

Embedded Rust / HAL implementation crates / Espressif

esp-idf-hal482almost 2 years ago
esp-hal814almost 2 years ago

Embedded Rust / HAL implementation crates / Silicon Labs

tomu-hal19about 4 years ago

Embedded Rust / HAL implementation crates / Silicon Labs / tomu-hal

TomuHAL implementation targeted for USB board with EFM32HG309F64 ARMv6-M core. Has support to configure directly from an application via the macro

Embedded Rust / HAL implementation crates / XMC

xmc1100-hal3over 4 years ago-
xmc4-hal3almost 2 years ago-

Embedded Rust / HAL implementation crates / GigaDevice

gd32vf103xx-hal54over 2 years ago-
gd32vf103-hal62over 4 years ago-
gd32f1x0-hal-

Embedded Rust / HAL implementation crates / Vorago

va108xx-hal-

Embedded Rust / HAL implementation crates / Vorago / va108xx-hal

Blogpost

Embedded Rust / HAL implementation crates / Renesas

da14531-halHAL crate for DA14531 Ultra-Low Power BT 5.1 System-on-Chip -

Embedded Rust / HAL implementation crates / StarFive

j71xx-halHAL crate for StarFive MCUs -

Embedded Rust / Architecture support crates / ARM

cortex-a121almost 4 years agoLow-level access to Cortex-A processors (early state) -
cortex-m842almost 2 years agoLow-level access to Cortex-M processors -

Embedded Rust / Architecture support crates / RISC-V

riscv874almost 2 years agoLow-level access to RISC-V processors -

Embedded Rust / Architecture support crates / MIPS

mips30over 6 years agoLow-level access to MIPS32 processors -
mips-mcu36almost 2 years agoLow-level access to MIPS MCU cores -

Embedded Rust / Board support crates / 1BitSquared

onebitsyBoard support crate for the STM32F4-based board -

Embedded Rust / Board support crates / Adafruit

metro_m0Board support for the in the repo. It is an board
metro_m4Board support for the in the repo. It is an board
pyportalBoard support for the in the repo. It is an board
pygamerBoard support for the in the repo. It is an board
trellis_m4Board support for the in the repo. It is an board
feather-f405Board support for the
feather_m0Board support for the , and some variants in the repo. It is an board
feather_m4Board support for the in the repo. It is an board
circuit_playground_expressBoard support for the in the repo. It is an board
edgebadgeBoard support for the in the repo. It is an board
gemma_m0Board support for the in the repo. It is an board
itsybitsy_m0Board support for the in the repo. It is an board
itsybitsy_m4Board support for the in the repo. It is an board
trinket_m0Board support for the in the repo. It is an board
neo_trinkeyBoard support for the in the repo. It is an board
neokey_trinkeyBoard support for the in the repo. It is an board
grand_central_m4Board support for the in the repo. It is an board
qt_py_m0Board support for the in the repo. It is an board
adafruit-feather-rp20401,487almost 2 years agoBoard Support Crate for the
adafruit-itsy-bitsy-rp20401,487almost 2 years agoBoard Support Crate for the
adafruit-kb20401,487almost 2 years agoBoard Support Crate for the
adafruit-macropad1,487almost 2 years agoBoard Support Crate for the
adafruit-qt-py-rp20401,487almost 2 years agoBoard Support Crate for the

Embedded Rust / Board support crates / Arduino

avr-hal1,336almost 2 years agoBoard support crate for several AVR-based boards including the Arduino Uno and the Arduino Leonardo
arduino_mkr1000Board support for the in the repo. It is an board
arduino_mkrvidor4000Board support for the in the repo. It is an board
arduino_mkrzeroBoard support for the in the repo. It is an board
arduino_nano33iotBoard support for the in the repo. It is an board

Embedded Rust / Board support crates / Nordic

dwm1001-
microbit-
nrf52840-dk-bsp-
Thingy:91-nrf9160-

Embedded Rust / Board support crates / NXP

frdm-kw41z-

Embedded Rust / Board support crates / Pimoroni

pimoroni-pico-explorer1,487almost 2 years agoBoard Support for the
pimoroni-pico-lipo-16mb1,487almost 2 years agoBoard Support for the

Embedded Rust / Board support crates / Raspberry Pi

rp-pico1,487almost 2 years agoBoard Support Crate for the RP2040-based Raspberry Pi Pico

Embedded Rust / Board support crates / Sparkfun

samd21_miniBoard support for the in the repo. It is an board
sparkfun-pro-micro-rp20401,487almost 2 years agoBoard Support Crate for the RP2040 based Sparkfun Pro Micro

Embedded Rust / Board support crates / SeeedStudio

seedstudio-gd32v8almost 6 years agoBoard support crate for the
xiao_m0Board support for the in the repo. It is an board
wio_lite_mg126Board support for the in the repo. It is an board
wio_lite_w600Board support for the in the repo. It is an board
wio_terminalBoard support for the in the repo. It is an board

Embedded Rust / Board support crates / SiFive

hifive176almost 3 years agoBoard support crate for and boards -

Embedded Rust / Board support crates / Sipeed

longan-nano118almost 2 years agoBoard support package for the

Embedded Rust / Board support crates / Sony

prussia110almost 2 years agoSDK for the PlayStation 2

Embedded Rust / Board support crates / STMicroelectronics

f3Board Support Crate for the -
nucleo-f042k6[Nucleo-F042K6]
nucleo-f103rb[Nucleo-F103RB]
nucleo-f401re-
nucleo-h743zi17over 3 years agoBeginner-oriented support crate for the Nucleo H743ZI and Nucleo H743ZI2
nucleo-h723zg1over 3 years agoBoard support crate for the Nucleo H723ZG
solo-bspBoard Support Crate for , an open source security token (WIP) -
stm32f407g-discBoard Support Crate for the (WIP) -
stm32f429i-discBoard Support Crate for the (WIP) -
stm32f3-discoveryBoard Support Crate for the used in -

Embedded Rust / Board support crates / Teensy

teensy4-rs297almost 2 years agoBoard Support crate for the [Teensy 4.0]

Embedded Rust / Board support crates / Vorago

vorago-reb1-

Embedded Rust / Board support crates / Vorago / vorago-reb1

Blogpost

Embedded Rust / Board support crates / Texas Instruments

monotron192about 5 years agoA 1980s home-computer style application for the Texas Instruments Stellaris Launchpad. PS/2 keyboard input, text output on a bit-bashed 800x600 VGA signal. Uses , and
stellaris-launchpadFor the Texas Instruments Stellaris Launchpad and Tiva-C Launchpad
tm4c129-launchpad0over 2 years agoFor the Texas Instruments TM4C129-XL Launchpad board

Embedded Rust / Board support crates / Special Purpose

betafpv-f345over 7 years agoFor the BetaFPV F3 drone flight controller

Embedded Rust / Board support crates / Sodaq

sodaq_oneBoard support for the in the repo. It is an board
sodaq_sara_affBoard support for the in the repo. It is an board

Embedded Rust / Board support crates / Other

serpenteBoard support for the in the repo. It is an board
p1am_100Board support for the in the repo. It is an board

Embedded Rust / Component abstraction crates

accelerometer26about 2 years agoGeneric accelerometer support, including traits and types for taking readings from 2 or 3-axis accelerometers and tracking device orientations -
embedded-graphics: 2D drawing library for any size display -
radio71over 2 years agoGeneric radio transceiver traits, mocks, and helpers -
smart-leds: Support for addressable LEDs including WS2812 and APA102
usb-device451almost 2 years ago: Abstraction layer between USB peripheral crates & USB class crates -
atat116almost 2 years ago: Abstraction crate to ease writing AT based driver crates -
embedded-nal179almost 2 years ago: An Embedded Network Abstraction Layer -
embedded-storage69almost 2 years ago: An Embedded Storage Abstraction Layer
switch-hal27over 2 years ago: An "on"/"off" abstraction for input and output switches -

Embedded Rust / Driver crates

AD983xSPI - AD9833/AD9837 waveform generators / DDS - -
adafruit-alphanum4I2C - Driver for based on the ht16k33 chip -
ADE791xSPI - ADE7912/ADE7913 3-Channel, Isolated, Sigma-Delta ADC - -
ADS1x1xI2C - 12/16-bit ADCs like ADS1013, ADS1015, ADS1115, etc. - -
ADXL313SPI - 3-axis accelerometer -
ADXL343I2C - 3-axis accelerometer -
ADXL355SPI - 3-axis accelerometer - -
AEM10900I2C - Energy Harvester - -
AFE44042over 3 years agoI2C - Pulse oximeter -
AHT20I2C - Humidity and temperature sensor - -
AHT20-driverI2C - Humidity and temperature sensor - - -
AnyLeafI2C - pH sensor module - -
AT86RF212SPI - Low power IEEE 802.15.4-2011 ISM RF Transceiver - -
BlueNRGSPI - driver for BlueNRG-MS Bluetooth module -
BMA400I2C/SPI - Bosch 12-bit 3-axis accelerometer -
BNO055I2C - Bosch Sensortec BNO055 9-axis IMU driver -
CD74HC4067GPIO - 16-channel digital and analog multiplexer - - -
dht-sensor1-Wire - DHT11/DHT22 temperature/humidity sensor driver - -
embedded-dht-rs1-Wire, I2C - DHT11/DHT20/DHT22 temperature/humidity sensor driver - -
DRV8825DRV8825 Stepper Motor Driver (based on ) - -
DS1307I2C - Real-time clock driver - -
ebyte-e32SERIAL - Ebyte E32 LoRa module driver - -
EEPROM24xI2C - 24x series serial EEPROM driver - -
embedded-ccs811I2C - Gas and VOC sensor driver for monitoring indoor air quality - -
embedded-sdmmcSPI - SD/MMC Card Driver with MS-DOS Partition and FAT16/FAT32 support -
ENC28J60SPI - Ethernet controller - -
FH101RFSPI - Wake-Up Radio - -
FUSB302B21over 2 years agoI2C - Programmable USB Type‐C Controller with USB Power Delivery -
HC-12SERIAL - Wireless serial transceiver module - - -
HTS221I2C - Humidity and temperature sensor - -
IIS2MDCI2C - ST's High accuracy, ultra-low-power, 3-axis digital output magnetometer -
ISM330DHCXI2C - ST's IMU with 3D accelerometer, 3D gyroscope, ML core and more -
keypadGPIO - Keypad matrix circuits - -
KXCJ9I2C - KXCJ9/KXCJB 3-axis accelerometers - -
L3GD20SPI - Gyroscope - -
LSM303DLHCI2C - Accelerometer + compass (magnetometer) - -
MAX6675SPI - A driver for the MAX6675 digital thermocouple converter - -
MAX6955I2C - Driver for Alphanumeric LED display driver - -
MAX116xx-10bitSPI - Driver for the MAX11619-MAX11621, MAX11624 and MAX11625 10-bit ADCs - -
MCP25LCXXSPI - Driver for Microchip's 25LC series of EEPROMs -
MCP3008SPI - 8 channel 10-bit ADC - -
MCP3425I2C - 16-bit ADC - -
MCP794xxI2C - Real-time clock / calendar driver - -
MMA7660FCI2C - 3-axis accelerometer -
OPT300x6about 2 years agoI2C - Ambient light sensor family driver - -
PAC194X3over 4 years agoI2C - Single/multi channel power monitor - -
port-expanderI2C - Driver for I2C port expanders (supports , ) - -
pwm-pca9685I2C - 16-channel, 12-bit PWM/Servo/LED controller - -
rainbow-hat-rsI2C/SPI/GPIO - Pimoroni Rainbow HAT driver for Raspberry Pi - -
rotary-encoder-halGPIO - A rotary encoder driver using - -
sega-controllerGPIO - Sega controller input - -
SGP30I2C - Gas sensor - -
SH1106I2C - Monochrome OLED display controller -
shared-bus129over 2 years agoI2C - utility driver for sharing a bus between multiple devices -
shift-register-driverGPIO - Shift register - -
Si4703I2C - FM radio turner (receiver) driver - -
SRAM23xSPI - Microchip 23x series serial SRAM/NVSRAM driver - -
SSD1306I2C/SPI - OLED display controller - -
SSD1309I2C/SPI - OLED display controller - -
STSPIN220STSPIN220 Stepper Motor Driver (based on ) - -
Sx127xSPI - Long Range Low Power Sub GHz (Gfsk, LoRa) RF Transceiver - -
Sx128xSPI - Long range, low power 2.4 GHz (Gfsk, Flrc, LoRa) RF Transceiver - -
TC72SPI - Microchip TC72 temperature sensor -
TCN75AI2C - Microchip TCN75A temperature sensor -
TMP006I2C - Contact-less infrared (IR) thermopile temperature sensor driver -
TMP1x2I2C - TMP102 and TMP112x temperature sensor driver -
TSICGPIO - TSIC 306 temperature sensor driver -
TSL256XI2C - Light Intensity Sensor - -
VEML6030/VEML7700I2C - Ambient light sensors - -
VEML6075I2C - UVA and UVB light sensor - -
usbd-serialUSB CDC-ACM class (serial) implementation - -
usbd-hidUSB HID class implementation - -
usbd-hid-deviceUSB HID class implementation without - -
usbd-human-interface-device119almost 2 years agoBatteries included embedded USB HID library for . Includes concrete Keyboard (boot and NKRO), Mouse and Consumer Control implementations as well as support for building your own HID classes - -
usbd-midiUSB MIDI class implementation - -
usbd-webusbUSB webUSB class implementation - -
SHTCxI2C - Temperature / humidity sensors - -
ST7789SPI - An embedded-graphics compatible driver for the popular lcd family from Sitronix used in the PineTime watch - -
DW1000SPI - Radio transceiver (IEEE 802.15.4 and position tracking) - -
Adafruit-7segmentI2C - Driver for Adafruit 7-segment LED Numeric Backpack based on the ht16k33 chip - -
ST7565SPI - An embedded-graphics compatible driver for LCD displays based on the ST7565 chip - -
tb6612fngA driver for the TB6612FNG motor driver -
vl53l1x-uldI2C - A pure-rust driver for the -
i2c-multiplexerI2C - An I2C Multiplexer library that supports the PCA9546 and TCA9546A chips - -
SHT31-rsI2C - Fully supported SHT temperature / humidity sensors - -

Embedded Rust / Driver crates / WIP

AD9850Embedded driver for the AD9850 DDS synthesizer chip -
AFE44006over 6 years agoSPI - Pulse oximeter
APDS9960I2C - Proximity, ambient light, RGB, and gesture sensor -
AS5048A1over 4 years agoSPI - AMS AS5048A Magnetic Rotary Encoder
AXP2095over 5 years agoI2C - Power management unit
ad57xx0over 2 years agoSPI - Quad and dual channel DAC -
BH17502over 8 years agoI2C - ambient light sensor (lux meter)
BME280A rust device driver for the Bosch BME280 temperature, humidity, and atmospheric pressure sensor and the Bosch BMP280 temperature and atmospheric pressure sensor
bme68029almost 2 years agoI2C - Temperature / humidity / gas / pressure sensor -
BMI160I2C / SPI - Inertial Measurement Unit -
BMP280A platform agnostic driver to interface with the BMP280 pressure sensor
CC1101SPI - Sub-1GHz RF Transceiver -
DS32317over 8 years agoI2C - real-time clock
DS32341,936almost 2 years agoSPI - Real-time clock
DS323xI2C/SPI - Real-time clocks (RTC): DS3231, DS3232 and DS3234 -
epd-waveshareSPI - driver for E-Paper Modules from Waveshare
embedded-morseOutput morse messages -
embedded-nrf24l01SPI+GPIO - 2.4 GHz radio
Ft6x36I2C - Rust driver for focal tech touch screen FT6236, FT6336 -
grove-matrix-led-my9221-rsI2C - Rust driver for Grove RGB Matrix Led with my-9221 Driver -
GridEYEI2C - Rust driver for Grid-EYE / Panasonic AMG88(33) -
HC-SR0417over 7 years agoDIO - Ultrasound sensor
HD44780-driverGPIO - LCD controller -
HD44780Parallel port - LCD controller
HM11USART - HM-11 bluetooth module AT configuration crate -
HRS3300I2C - Heart rate sensor / monitor used in the PineTime smartwatch, for example. -
HDC20xxI2C - Temperature and humidity sensor compatible with HDC2080, HDC2021 and HDC2010. -
hub7522over 2 years agoA driver for rgb led matrices with the hub75 interface -
hzgrow-r502UART capacitive fingerprint reader -
iAQ-Core2about 5 years agoI2C - iAQ-Core-C/iAQ-Core-P Gas and VOC sensor driver for monitoring indoor air quality
ILI934159over 2 years agoSPI - TFT LCD display
INA260I2C - power monitor -
ISL29125I2C - RGB Color Light Sensor with IR Blocking Filter -
IST7920SPI monochrome LCD display -
LM75I2C - Temperature sensor and thermal watchdog (also compatible with LM75A, LM75B, LM75C, AT30TS75A, DS1775, DS75, DS7505, G751, MAX7500/1/2/3/4, MAX6625, MCP9800/1/2/3, STDS75, TCN75, PCT2075) -
lp586xI2C/SPI - LED matrix driver
LS010B7DH016over 8 years agoSPI - Memory LCD
LSM303AGRI2C/SPI - 3D accelerometer + 3D magnetometer. (Used in e.g. micro:bit boards)
LSM303CA platform agnostic driver to interface with the LSM303C (accelerometer + compass)
LSM9DS1I2C/SPI - 9-axis motion sensor module
ltr-559I2C - Ambient Light Sensor and Proximity sensor
lvgl696about 2 years agono_std port -
M95320SPI - STMicroelectronics Serial flash EEPROM -
MAG31101almost 8 years agoI2C - Magnetometer
MAX17048/9I2C - LiPo Fuel gauge, battery monitoring IC -
MAX170xx8over 2 years agoI2C - LiPo Fuel gauge, battery monitoring ICs compatible with MAX17043/4, MAX17048/9, MAX17058/9. -
MAX3010xI2C - Pulse oximeter and heart-rate sensor. ATM Compatible with MAX30102. -
MAX318554over 2 years agoSPI - Thermocouple digital converter -
MAX31865SPI - RTD to Digital converter -
MAX44009I2C - Ambient light sensor -
MAX721916almost 3 years agoSPI - LED display driver -
MCP4725I2C - 12-bit DAC -
MCP49xxSPI - 8/10/12-bit DACs like MCP4921, MCP4922, MCP4801, etc. -
MCP9808I2C - Temperature sensor -
MCP4xSPI - Digital potentiometers (digipot) like MCP41010, MCP41050, MCP41100, MCP42010, MCP42050 and MCP42100, etc. -
MFRC52230over 4 years agoSPI - RFID tag reader/writer
midi-portUART - MIDI input -
MLX9061xI2C - MLX90614/MLX90615 Contact-less infrared (IR) temperature sensor driver. -
MMA8x5xI2C - Tri-axis accelerometers like MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC and MMA8653FC. -
motor-driver10over 8 years agoMotor drivers: L298N, TB6612FNG, etc
MPU6050I2C - no_std driver for the MPU6050
MPU9250no_std driver for the MPU9250 (and other MPU* devices) & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU)
MS5637no_std I2C driver for the MS5637 temperature and pressure sensor
NRF24L0128over 6 years agoSPI - 2.4 GHz wireless communication
OneWire1wire - OneWire protocol implementation with drivers for devices such as -
PCD85440over 8 years agoSPI - 48x84 pixels matrix LCD controller
PCD8544_richSPI - Rich driver for 48x84 pixels matrix LCD controller -
PCF857xI2C - I/O expanders: PCF8574, PCF8574A, PCF8575
radio-at86rf212SPI - Sub GHz 802.15.4 radio transceiver
RFM6911about 4 years agoSPI - ISM radio transceiver
RN2xx35about 5 years agoSerial - A driver for the RN2483 / RN2903 LoRaWAN modems by Microchip
SCD30I2C - CO₂ sensor -
SHT2x2over 4 years agoI2C - temperature / humidity sensors
SHT3x7almost 4 years agoI2C - Temperature / humidity sensors
SI53513about 2 years agoI2C - clock generator
SI70215over 6 years agoI2C - Humidity and temperature sensor
SPL06-0071over 3 years agoI2C - Pressure and temperature sensor -
spi-memory25over 4 years agoSPI - A generic driver for various SPI Flash and EEPROM chips -
SSD1320SPI - Graphical OLED display controller -
SSD1322SPI - Graphical OLED display controller -
SSD1322_rsSPI - Async graphics driver for SSD1322 screen -
SSD1351SPI - 16bit colour OLED display driver -
SSD1675SPI - Tri-color ePaper display controller -
st7032i2almost 7 years agoI2C - Dot Matrix LCD Controller driver (Sitronix ST7032i or similar). -
ST7735-lcdSPI - An embedded-graphics compatible driver for the popular lcd family from Sitronix
ST7920SPI - LCD displays using the ST7920 controller
stm32-eth150almost 2 years agoMCU - Ethernet
SX127811over 8 years agoSPI - Long range (LoRa) transceiver
SX15091over 2 years agoI2C - IO Expander / Keypad driver
TCS3472I2C - RGB color light sensor -
TPA2016D2I2C - A driver for interfacing with the Texas Instruments TPA2016D2 Class-D amplifier -
VEML6040I2C - RGBW color light sensor -
VEML6070I2C - UVA light sensor -
VEML7700I2C - Ambient light sensors -
vesc-comm1over 2 years agoA driver for communicating with
VL53L0XA platform agnostic driver to interface with the vl53l0x (time-of-flight sensor)
w5500SPI - Ethernet Module with hardwired protocols : TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE -
xCA9548AI2C - I2C switches/multiplexers: TCA9548A, PCA9548A -
ublox-cellular-rs22almost 2 years agoSerial - Cellular driver for the full Ublox cellular serial based family
atwinc1500-rsSPI - A host driver for the Atwinc1500 network controller
HX7116about 2 years agoGPIO - An interrupt-based driver for the HX711 Load Cell Amplifier IC. no-std

Embedded Rust / no-std crates

adskalman: Kalman filter and Rauch-Tung-Striebel smoothing implementation
atomic: Generic Atomic
bbqueue: A SPSC, statically allocatable queue based on BipBuffers suitable for DMA transfers -
bitmatch: A crate that allows you to match, bind, and pack the individual bits of integers. -
biquad: A library for creating second-order IIR filters for signal processing based on Biquads, where both a Direct Form 1 (DF1) and Direct Form 2 Transposed (DF2T) implementation is available
bit_field: manipulating bitfields and bitarrays -
bluetooth-hci: device-independent Bluetooth Host-Controller Interface implementation
bounded-registersA high-assurance memory-mapped register code generation and interaction library. provides a Tock-like API for MMIO registers with the addition of type-based bounds checking. -
cam-geom: Geometric models of cameras for photogrammetry
combine: parser combinator library -
console-traits3over 7 years ago: Describes a basic text console. Used by and implemented by
cmim, or Cortex-M Interrupt Move: A crate for Cortex-M devices to move data to interrupt context, without needing a critical section to access the data within an interrupt, and to remove the need for the "mutex dance" -
cmsis-dsp-sys17almost 3 years ago: Rust FFI bindings to the math library -
dcmimu: An algorithm for fusing low-cost triaxial MEMS gyroscope and accelerometer measurements
debouncr: A simple no-std input debouncer to detect rising/falling edges with minimal RAM requirements
device-driver: A toolkit to write better device drivers, faster
drogue-device187almost 3 years ago: A distribution of tools and examples for building embedded applications in Rust
dummy-pin: Dummy implementations of the input/output pin traits
crossbus123over 2 years ago: A Platform-Less, Runtime-Less Actor Computing Model
ector49almost 2 years ago: An async actor framework for embedded, based on embassy
embassy4almost 2 years ago: A set of embedded async tools to make async/await a first-class option for embedded development
embedded-cli: CLI library with autocompletion, subcommands, options, help and history support
embedded-crc-macros: Macros implementing portable CRC algorithms and build-time lookup table generation
embedded-update22almost 2 years ago: Pluggable firmware update protocol for embedded devices
embedded-tls176about 2 years ago: A TLS 1.3 implementation that runs in a no-std environment
embedded-websocket: A lightweight server and client websocket library for embedded systems
endian_codec: (En/De)code rust types as packed bytes with specific order (endian). Supports derive. -
ethercrab260almost 2 years ago: A Rust implementation of the industrial automation protocol -
fixed-fft: Fixed-point Fast Fourier Transform -
gcode90about 4 years ago: A gcode parser for no-std applications -
gdbstub: zero-allocation, pure Rust implementation of the GDB Remote Serial Protocol -
heapless: provides , , , backed by fixed-size buffers -
idsp: integer DSP algorithms (trigonometry, filtering, PLL...) tuned for precision and speed -
ieee802154: Partial implementation of the IEEE 802.15.4 standard -
infrared: infrared remote control library for embedded rust -
intrusive-collections: intrusive (non-allocating) singly/doubly linked lists and red-black trees -
inverted-pin: Implementations of the input/output pin traits with inverted logic
irq: utilities for writing interrupt handlers (allows moving data into interrupts, and sharing data between them) -
lakers: Microcontroller-optimized implementation, with bindings for C and Python -
lorawan-encoding272almost 2 years ago: A LoRaWAN packet codec
lorawan-device272almost 2 years ago: A LoRaWAN MAC implementation supporting both event-driven and async mode
managed: provides , backed by either their std counterparts or fixed-size buffers for . -
menu52almost 2 years ago: A basic command-line interface library. Has nested menus and basic help functionality
micropb: Rust Protobuf library targetting embedded systems and no_std environments without an allocator. -
mqtt-sn: Implementation of the MQTT-SN protocol -
microfft: Embedded-friendly ( , no- ) fast fourier transforms -
micromath403about 2 years ago: Embedded Rust math library featuring fast, safe floating point approximations for common arithmetic operations, 2D and 3D vector types, and statistical analysis -
miniconf: Lookup/enumerate/serialize/deserialize nodes in trees of heterogeneous structs/arrays by path/key -
minimq: A minimal MQTT5 client designed for no_std platforms -
moonboot27about 4 years ago: OTA Bootloader Construction Framework for Rust no_std environments, especially embedded devices without an OS
nalgebra: general-purpose and low-dimensional linear algebra library -
nom: parser combinator framework -
null-terminated: generic null-terminated arrays -
num-format: Crate for producing string representations of numbers, formatted according to international standards, e.g. "1,000,000" for US English -
pc-keyboard100about 2 years ago: A PS/2 keyboard protocol driver. Transport (bit-banging or SPI) agnostic, but can convert Set 2 Scancodes into Unicode
qei: A qei wrapper that allows you to extend your qei timers from a 16-bit integer to a 64-bit integer. -
qemu-exit: Quit a running QEMU session with user-defined exit code. Useful for unit or integration tests using QEMU. -
RampMaker: Stepper Motor Acceleration Ramp Generator -
register-rs47about 5 years ago: Unified interface for MMIO and CPU registers. Provides type-safe bitfield manipulation. is Tock registers with added support for CPU register definitions using the same API as for the MMIO registers. This enables homogeneous interfaces to registers of all kinds. -
scapegoat: Safe, stack-only alternative to and . -
scroll: extensible and endian-aware Read/Write traits for generic containers -
sized-dst: Owned container for dynamically-sized types (such as trait objects) backed by stack memory. -
Slint: Declarative GUI framework that works on microcontrollers
smbus-pec: Minimal portable System Management Bus Packet Error Code calculation algorithm
smoltcp3,830almost 2 years ago: a small TCP/IP stack that runs without
sntpc: Rust SNTP client to get a timestamp from NTP servers. -
static-bytes6over 5 years ago: Help work with buffers without dynamic allocation. Implement traits from bytes crate
Stepper: Universal Stepper Motor Interface -
tinybmp: No-std, no-alloc BMP parser for embedded systems. -
vga-framebuffer31over 6 years ago: A VGA signal generator and font renderer for VGA-less microcontrollers. Used by to generate 48 by 36 character display using 3 SPI peripherals and a timer
usb-pd21over 2 years ago: USB-PD library, supports using the FUSB302B as a Sink driver, with Source functionality planned
wyhash: A fast, simple and portable hashing algorithm and random number generator. -
adafruit-bluefruit-protocol: A parser for the . -
wtx228almost 2 years ago: Among other things, provides implementations to interact with HTTP, WebSockets and Databases

Embedded Rust / no-std crates / WIP

light-cli15over 7 years ago: a lightweight heapless cli interface
OxCC20almost 8 years ago: A port of Open Source Car Control written in Rust
Rubble399over 4 years ago: A pure-Rust embedded BLE stack

Embedded Rust / Panic handling

dont_panic+ : panic!()-like macro that causes linking error instead of panicking. May be used to statically ensure some code won't panic. +
no-panic: Attribute macro to require that the compiler prove a function can't ever panic
panic-abort: Causes an abort on panics (nightly-only)
panic-halt: Halts the processor on panics
panic-itm842almost 2 years ago: Prints the panic through the chip's ITM to a debugger attached to the SWO pin (Cortex-M with ITM only)
panic-never: This crate guarantees that your application is free of panicking branches
panic-persist: A panic handler crate inspired by that logs panic messages to a region of RAM defined by the user, allowing for discovery of panic messages post-mortem using normal program control flow. -
panic-probe: A panic handler that exits with an error code
panic-ramdump: Writes the panic message into the beginning of RAM and enters an infinite loop; the message can be extracted by attaching a debugger (Cortex-M only)
panic-rtt: Set the panicking behavior to log to a JLINK debugger and loop
panic-rtt-target: Logs panic messages over RTT. Uses
panic-semihosting12almost 6 years ago: Prints the panic message via semihosting to an attached debugger (Cortex-M only)

Embedded Rust / Firmware projects

rmk652almost 2 years ago: Mechanical keyboard firmware for stm32/rp2040, supports vial/dynamic keymap/eeprom, written in Rust
anne-key568about 6 years ago: Alternate keyboard firmware for the Obins ANNE Pro
μLA780almost 2 years ago: Micro Logic Analyzer for RP2040
air-gradient-pro-rs9almost 3 years ago: Bootloader, firmware, and CLI tools for the AirGradient PRO
Stabilizer114almost 2 years ago: Firmware for a DSP tool used in quantum physics experimentation, includes telemetry via MQTT and run-time configuration
Booster13almost 2 years ago: Firmware for an RF power amplifier, including telemetry via MQTT and run-time configuration
Thermostat EEM7almost 2 years ago: Firmware for a multi-channel temperature controller used in physics experiments
Card/IO ECG31almost 2 years ago: Firmware for a business-card-sized ECG device with Wifi connectivity
BillMock13about 2 years ago: Firmware for credit card terminal add-on hardware to install on Korean arcade machines
LuLuu7almost 3 years ago: Firmware for a custom RP2040-based display controller that streams animated images from a microSD card to a small LCD display
prinThor145almost 2 years ago: 3DPrinter/CNC/Engraver firmware framework powered by rust embassy for stm32 families and rp2040

Embedded Rust / Old books, blogs, and training materials

Exploring Rust on Teensyby @branan — Beginner set of articles on getting into embedded dev in Rust
Pragmatic Bare Metal RustA starter article about starting Rust development on STM32 microcontrollers (cubeMX + FFI)
Using Rust in an Embedded Project: A Simple ExampleArticle and some links on setting up Rust cross-compiling
Robigaliageneral purpose robust operating system in Rust running on secure seL4 microkernel
intermezzOSA small teaching operating system in Rust. A book with some explanations is also included
Fearless concurrencyby @japaric — How to easily develop Rust programs for pretty much any ARM Cortex-M microcontroller with memory-safe concurrency
Internet of StreamsA video series by building a bare metal IoT Sensor Node Platform from (nearly) scratch in Rust
Ferrous Systems' Embedded Training Courses: 2019 edition115about 6 years agoA hands-on training course for beginner and advanced learners of Embedded Rust, based on Nordic Semiconductor's nRF52 and Decawave's DWM1001-DEV hardware. This training was given at Oxidize Conferences and by Ferrous Systems to corporate customers

Embedded Rust / License

CC0 1.0 Universal Licenseaka

Backlinks from these awesome lists:

More related projects: