awesome-embedded-rust
Embedded development toolkit
A curated collection of resources and tools for developing embedded software in Rust
Curated list of resources for Embedded and Low-level development in the Rust programming language
6k stars
172 watching
392 forks
last commit: 14 days ago
Linked from 2 awesome lists
awesomeawesome-listembeddedembedded-systemslibrariesrust
Embedded Rust / Community | |||
Embedded WG | 1,926 | about 1 month ago | , including newsletters with progress updates |
Embedded Rust / Community / Community Chat Rooms | |||
#rust-embedded:matrix.org Matrix room | You can usually find community members (including embedded WG members) in the official | ||
#rust-embedded-space:matrix.org | Most Embedded Rust related Matrix rooms are in the Rust Embedded Space | ||
embedded.rs-wasm-iot | English Telegram chat about Rust and WASM for microcontrollers and IoT | ||
embedded.rs | Telegram chat about Rust for microcontrollers in the Russian language | ||
#avr-rust:gitter.im | For discussion of using Embedded Rust on AVR devices | ||
#esp-rs:matrix.org | For discussion of using Embedded Rust on Espressif devices | ||
#nrf-rs:matrix.org | For discussion of using Embedded Rust on Nordic Semiconductor devices | ||
#probe-rs:matrix.org | For discussion of the Probe-rs debugging toolkit | ||
#rp-rs:matrix.org | For discussion of using Embedded Rust on RP2040 based devices | ||
#rtic-rs:matrix.org | For discussion of the Real-Time Interrupt-driven Concurrency framework | ||
#rust-embedded-graphics:matrix.org | For discussion of the crate and ecosystem | ||
#stm32-rs:matrix.org | For discussion of using Embedded Rust on STM32 based devices | ||
#atsamd-rs:gitter.im | For discussions of using Embedded Rust on ATSAMD devices | ||
#ethercrab:matrix.org | For discussion of general EtherCAT and the Rust implementation, EtherCrab | ||
rust-embedded:QQ group | Chinese community for Rust embedded | ||
Embedded Rust / Books, blogs, and training materials / Free and public materials | |||
The Embedded Rust Book | An introductory book about using the Rust Programming Language on "Bare Metal" embedded systems, such as Microcontrollers | ||
The Rust on ESP Book | This book aims to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules | ||
Embedded Rust (no_std) on Espressif | Training for Rust using no_std approach development on ESP32-C3 | ||
Embedded Rust (std) on Espressif | Training for Rust using std approach development on ESP32-C3 by Ferrous Systems | ||
Discovery | by @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 Quickstart | by @japaric – a template and introduction to embedded Rust, suitable for developers familiar with embedded development but new to embedded Rust | ||
Writing an OS in Rust | A blog series creating a small operating system in Rust | ||
MicroRust | Introductory book for embedded development in Rust on the micro:bit | ||
Physical Computing With Rust | A (WIP) guide to physical computing with Rust on the Raspberry Pi | ||
Writing an embedded OS in Rust on the Raspberry Pi | 13,693 | 10 months ago | 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. Runs on the Raspberry Pi 3 and the Raspberry Pi 4 |
Writing embedded drivers in Rust isn't that hard | A guide to building an embedded-hal driver | ||
Ferrous Systems' Embedded Training Courses: 2020-current edition | 248 | over 1 year ago | A 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 Sessions | are 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-DISC1 | 31 | about 3 years ago | Unofficial 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 HAL | A blog containing a series of tutorials demonstrating the use of several peripherals through simple examples leveraging the stm32f4xx-hal crate | ||
Embedded Rust programming playlist | Various livestreams with Embedded Rust live coding | ||
ESP32-C3 Rust Tutorials | Short videos and implementing various peripherals of the ESP32-C3 with the end goal of creating a complete data logger application | ||
Tweede golf's workshop | A 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 Edition | This 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 Edition | This 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 | |||
xargo | 1,096 | over 1 year ago | Rust package manager with support for non-default std libraries — build Rust runtime for your embedded system |
Embedded Rust / Tools / xargo | |||
cargo-xbuild | 258 | over 2 years ago | xargo is great, but since it's in maintenance mode, is catching up as its intended replacement |
Embedded Rust / Tools | |||
svd2rust | 715 | 10 days ago | Generate Rust structs with register mappings from SVD files |
edc2svd | 6 | about 1 year ago | Generate SVD files for PIC32 devices from EDC files. - |
embedded-hal-mock | Mock implementation of traits for testing without accessing real hardware. - | ||
bindgen | Automatically generates Rust FFI bindings to C and C++ libraries. - | ||
cortex-m semihosting | 0 | almost 5 years ago | Semihosting for ARM Cortex-M processors |
bobbin-cli | 114 | almost 5 years ago | A Rust command line tool to simplify embedded development and deployment |
ferros | 108 | over 1 year ago | A Rust-based userland which also adds compile-time assurances to seL4 development |
cargo-flash | A small cargo subcommand to download your binary to your target chip. - | ||
cargo-embed | A superset of cargo-flash with additional useful features like configuration file support, an RTT terminal, or a GDB server. - | ||
cargo-hf2 | 51 | about 1 year ago | A small cargo subcommand to download cargo builds to Microsoft UF2 bootloaders via HID USB . - |
cargo-bloat | 2,373 | 7 months ago | Find out what takes most of the space in your executable |
cargo-call-stack | Static, whole program stack usage analyzer | ||
cargo-dfu | Cargo extension for flashing embedded rust programs via DFU | ||
espflash | 492 | 21 days ago | Serial flasher utility for Espressif SoCs and modules. - |
espup | 232 | 23 days ago | Tool for installing and maintaining Espressif Rust ecosystem. - |
uf2 | 28 | almost 3 years ago | Converts binary files to Microsoft's UF2 format for copying over to mass storage device uf2 bootloaders - |
probe-rs | 1,785 | 5 days ago | : a modern, embedded debugging toolkit, written in Rust |
Knurling Tools | are developed by to ease the development process for building, debugging, and testing embedded Rust systems. These tools include: | ||
Embedded Rust / Tools / Knurling Tools | |||
defmt | 854 | 16 days ago | : a highly efficient logging framework that targets resource-constrained devices, like microcontrollers |
flip-link | 282 | 26 days ago | , a linker wrapper that provides stack overflow protection without an MMU by flipping the standard memory layout of ARM Cortex-M programs |
app-template | 311 | about 1 year ago | , a powered project template for quickly setting up new projects using the Knurling Tools |
defmt-test | 9 | about 4 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-compat | 15 | 7 months ago | , a compatibility layer to provide interoperability between and hal implementations and drivers |
Embassy start | 27 | over 1 year ago | is 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-generator | CLI tool to parse flattened device tree files, and create a SVD file. - | ||
Embedded Rust / Real-time / Real-time Operating System (RTOS) | |||
Drone OS | An Embedded Operating System for writing real-time applications in Rust | ||
FreeRTOS.rs | 232 | about 4 years ago | Rust interface for the FreeRTOS API |
FreeRTOS-rust | 371 | about 1 month ago | Rust interface for FreeRTOS with Rust entry point and build support crate |
RIOT-OS | directly supports applications written in Rust, both in terms of build system integration and by having safe and idiomatic wrappers | ||
Tock | An embedded operating system designed for running multiple concurrent, mutually distrustful applications on low-memory and low-power microcontrollers | ||
Hubris | 3,018 | 7 days ago | A 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.0 | Real-Time Interrupt-driven Concurrency — A concurrency framework for building real-time systems: | ||
Embedded Rust / Real-time / Real-time tools / RTIC v1.0 | |||
cortex-m rtic | 1,808 | 5 days ago | RTIC framework for ARM Cortex-M microcontrollers |
msp430 rtfm | 11 | over 7 years ago | RTFM framework for MSP430 MCUs |
Embedded Rust / Peripheral Access Crates / Microchip | |||
atsamd11 | 565 | 1 day ago | Peripheral access API for Microchip (formerly Atmel) SAMD11 microcontrollers. This git repo hosts both the peripheral access crate and the hal |
atsamd21 | 565 | 1 day ago | Peripheral access API for Microchip (formerly Atmel) SAMD21 microcontrollers. This git repo hosts both the peripheral access crate and the hal |
atsamd51 | 565 | 1 day ago | Peripheral access API for Microchip (formerly Atmel) SAMD51 microcontrollers. This git repo hosts both the peripheral access crate and the hal |
atsame53 | 565 | 1 day ago | Peripheral access API for Microchip (formerly Atmel) SAME53 microcontrollers. This git repo hosts both the peripheral access crate and the hal |
atsame54 | 565 | 1 day ago | Peripheral access API for Microchip (formerly Atmel) SAME54 microcontrollers. This git repo hosts both the peripheral access crate and the hal |
atsamx7x-rust | 25 | 8 months ago | Peripheral 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-device | 178 | about 1 month ago | Peripheral access API for Microchip (formerly Atmel) AVR microcontroller family |
sam3x8e | Peripheral access API for Atmel SAMD3X8E microcontrollers (generated using svd2rust) - | ||
pic32-pac | Peripheral access API for PIC32MX1/2xx - | ||
Embedded Rust / Peripheral Access Crates / Nordic | |||
nrf51 | Peripheral access API for nRF51 microcontrollers (generated using svd2rust) - | ||
nrf52810-pac | Peripheral access API for the nRF52810 microcontroller (generated using svd2rust) - | ||
nrf52811-pac | Peripheral access API for the nRF52811 microcontroller (generated using svd2rust) - | ||
nrf52832-pac | Peripheral access API for the nRF52832 microcontroller (generated using svd2rust) - | ||
nrf52833-pac | Peripheral access API for the nRF52833 microcontroller (generated using svd2rust) - | ||
nrf52840-pac | Peripheral access API for the nRF52840 microcontroller (generated using svd2rust) - | ||
nrf5340-app-pac | Peripheral access API for the nRF5340 application core (generated using svd2rust) - | ||
nrf5340-net-pac | Peripheral access API for the nRF5340 network core (generated using svd2rust) - | ||
nrf9160-pac | Peripheral 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-ral | 137 | 12 days ago | Register access layer for i.MX RT series. - |
SKEAZN642 | Peripheral access API for KEA64 family microcontrollers (generated using svd2rust) - | ||
Embedded Rust / Peripheral Access Crates / Raspberry Pi Silicon | |||
rp2040-pac | Peripheral access API for the RP2040 dual-core system-on-chip (generated using svd2rust) - | ||
Embedded Rust / Peripheral Access Crates / SiFive | |||
e310x | 18 | 15 days ago | svd2rust generated interface to SiFive MCUs - |
Embedded Rust / Peripheral Access Crates / Silicon Labs | |||
efm32pg12-pac | Peripheral 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-pac | svd2rust 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 | |||
tm4c123x | Peripheral access API for TM4C123x microcontrollers (generated using svd2rust) | ||
tm4c129x | Peripheral access API for TM4C129x microcontrollers (generated using svd2rust) | ||
Embedded Rust / Peripheral Access Crates / MSP430 | |||
msp430g2553 | Peripheral access API for MSP430G2553 microcontrollers (generated using svd2rust) | ||
Embedded Rust / Peripheral Access Crates / MSP430 / msp430g2553 | |||
msp430 quickstart | 36 | about 2 years ago | some examples for msp430 |
Embedded Rust / Peripheral Access Crates / MSP430 | |||
msp430fr2355 | Peripheral access API for MSP430FR2355 microcontrollers (generated using svd2rust) | ||
msp430fr6972 | - | ||
Embedded Rust / Peripheral Access Crates / Espressif | |||
esp32 | 112 | 10 days ago | - |
esp32c2 | 112 | 10 days ago | - |
esp32c3 | 112 | 10 days ago | - |
esp32c6 | 112 | 10 days ago | - |
esp32h2 | 112 | 10 days ago | - |
esp32s2 | 112 | 10 days ago | - |
esp32s3 | 112 | 10 days ago | - |
esp8266 | 112 | 10 days ago | - |
Embedded Rust / Peripheral Access Crates / Ambiq Micro | |||
ambiq-apollo1-pac | Peripheral access API for Ambiq Apollo 1 microcontrollers (generated using svd2rust) | ||
ambiq-apollo2-pac | Peripheral access API for Ambiq Apollo 2 microcontrollers (generated using svd2rust) | ||
ambiq-apollo3-pac | Peripheral access API for Ambiq Apollo 3 microcontrollers (generated using svd2rust) | ||
ambiq-apollo3p-pac | Peripheral access API for Ambiq Apollo 3 Plus microcontrollers (generated using svd2rust) | ||
Embedded Rust / Peripheral Access Crates / GigaDevice | |||
gd32vf103-pac | 36 | over 1 year ago | Peripheral access API for GD32VF103 RISC-V microcontrollers (generated using svd2rust) - |
gd32e2 | Peripheral access API for GD32E23x Cortex-M23 microcontrollers (generated using svd2rust) - | ||
gd32f1 | Peripheral access API for GD32F1x0 Cortex-M3 microcontrollers (generated using svd2rust) - | ||
gd32f2 | Peripheral access API for GD32F20x Cortex-M3 microcontrollers (generated using svd2rust) - | ||
Embedded Rust / Peripheral Access Crates / XMC | |||
xmc4100 | 1 | 22 days ago | - |
xmc4200 | 2 | 22 days ago | - |
xmc4300 | 4 | 22 days ago | - |
xmc4400 | 1 | 22 days ago | - |
xmc4500 | 3 | 22 days ago | - |
xmc4700 | 3 | 22 days ago | - |
xmc4800 | 3 | 22 days ago | - |
Embedded Rust / Peripheral Access Crates / Vorago | |||
va108xx | - | ||
va416xx | - | ||
Embedded Rust / Peripheral Access Crates / Wiznet | |||
w7500x-pac | Peripheral Access Crate for Wiznet's W7500x microcontrollers (generated using svd2rust) - | ||
Embedded Rust / Peripheral Access Crates / Renesas | |||
ra2a1 | 8 | about 1 month ago | Peripheral Access Crate for ra2a1 microcontrollers (generated using svd2rust) - |
ra2e1 | 8 | about 1 month ago | Peripheral Access Crate for ra2e1 microcontrollers (generated using svd2rust) - |
ra2e2 | 8 | about 1 month ago | Peripheral Access Crate for ra2e2 microcontrollers (generated using svd2rust) - |
ra2l1 | 8 | about 1 month ago | Peripheral Access Crate for ra2l1 microcontrollers (generated using svd2rust) - |
ra4e1 | 8 | about 1 month ago | Peripheral Access Crate for ra4e1 microcontrollers (generated using svd2rust) - |
ra4m1 | 8 | about 1 month ago | Peripheral Access Crate for ra4m1 microcontrollers (generated using svd2rust) - |
ra4m2 | 8 | about 1 month ago | Peripheral Access Crate for ra4m2 microcontrollers (generated using svd2rust) - |
ra4m3 | 8 | about 1 month ago | Peripheral Access Crate for ra4m3 microcontrollers (generated using svd2rust) - |
ra4w1 | 8 | about 1 month ago | Peripheral Access Crate for ra4w1 microcontrollers (generated using svd2rust) - |
ra6e1 | 8 | about 1 month ago | Peripheral Access Crate for ra6e1 microcontrollers (generated using svd2rust) - |
ra6m1 | 8 | about 1 month ago | Peripheral Access Crate for ra6m1 microcontrollers (generated using svd2rust) - |
ra6m2 | 8 | about 1 month ago | Peripheral Access Crate for ra6m2 microcontrollers (generated using svd2rust) - |
ra6m3 | 8 | about 1 month ago | Peripheral Access Crate for ra6m3 microcontrollers (generated using svd2rust) - |
ra6m4 | 8 | about 1 month ago | Peripheral Access Crate for ra6m4 microcontrollers (generated using svd2rust) - |
ra6t1 | 8 | about 1 month ago | Peripheral Access Crate for ra6t1 microcontrollers (generated using svd2rust) - |
ra6t2 | 8 | about 1 month ago | Peripheral Access Crate for ra6t2 microcontrollers (generated using svd2rust) - |
da14531 | Peripheral Access Crate for DA14531 Ultra-Low Power BT 5.1 System-on-Chip - | ||
Embedded Rust / HAL implementation crates / OS | |||
bitbang-hal | software protocol implementations for microcontrollers with digital::OutputPin and digital::InputPin | ||
ftdi-embedded-hal | for FTDI FTx232H chips connected to Linux systems via USB | ||
linux-embedded-hal | for embedded Linux systems like the Raspberry Pi. - | ||
freebsd-embedded-hal | for embedded (or ) FreeBSD systems. - | ||
Embedded Rust / HAL implementation crates / Microchip | |||
atsam4-hal | HAL for SAM4E, SAM4N and SAM4S - | ||
atsamd-hal | HAL for SAMD11, SAMD21, SAMD51 and SAME54 - | ||
atsamx7x-hal | HAL for SAM S70/E70/V70/V71-based devices - | ||
avr-hal | 1,322 | 18 days ago | HAL for AVR microcontroller family and AVR-based boards |
pic32-hal | HAL 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-hal | HAL for lpc82x and lpc845 - | ||
mkw41z-hal | - | ||
imxrt-hal | 137 | 12 days ago | HAL for i.MX RT series. - |
Embedded Rust / HAL implementation crates / Raspberry Pi Silicon | |||
rp2040-hal | HAL for the RP2040 dual-core system-on-chip - | ||
Embedded Rust / HAL implementation crates / SiFive | |||
e310x-hal | 17 | 8 months ago | HAL for SiFive MCUs - |
Embedded Rust / HAL implementation crates / STMicroelectronics | |||
stm32f0xx-hal | - | ||
Embedded Rust / HAL implementation crates / STMicroelectronics / stm32f0xx-hal | |||
Nucleo-F042K6 | Has examples that can run on boards like the and similar boards | ||
Embedded Rust / HAL implementation crates / STMicroelectronics | |||
stm32f1xx-hal | 575 | about 1 month ago | - |
Embedded Rust / HAL implementation crates / STMicroelectronics / stm32f1xx-hal | |||
Blue pill | Can be run on boards like the , , and similar boards | ||
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-L432KC | Generic 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-hal | 41 | 8 months ago | |
Embedded Rust / HAL implementation crates / MSP430 | |||
msp430fr2x5x-hal | |||
Embedded Rust / HAL implementation crates / Espressif | |||
esp-idf-hal | 469 | 15 days ago | |
esp-hal | 758 | 9 days ago | |
Embedded Rust / HAL implementation crates / Silicon Labs | |||
tomu-hal | 19 | about 2 years ago | |
Embedded Rust / HAL implementation crates / Silicon Labs / tomu-hal | |||
Tomu | HAL 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-hal | 3 | almost 3 years ago | - |
xmc4-hal | 3 | 28 days ago | - |
Embedded Rust / HAL implementation crates / GigaDevice | |||
gd32vf103xx-hal | 54 | 9 months ago | - |
gd32vf103-hal | 62 | almost 3 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-hal | HAL crate for DA14531 Ultra-Low Power BT 5.1 System-on-Chip - | ||
Embedded Rust / HAL implementation crates / StarFive | |||
j71xx-hal | HAL crate for StarFive MCUs - | ||
Embedded Rust / Architecture support crates / ARM | |||
cortex-a | 121 | about 2 years ago | Low-level access to Cortex-A processors (early state) - |
cortex-m | 826 | 18 days ago | Low-level access to Cortex-M processors - |
Embedded Rust / Architecture support crates / RISC-V | |||
riscv | 852 | 5 days ago | Low-level access to RISC-V processors - |
Embedded Rust / Architecture support crates / MIPS | |||
mips | 30 | over 4 years ago | Low-level access to MIPS32 processors - |
mips-mcu | 36 | about 1 month ago | Low-level access to MIPS MCU cores - |
Embedded Rust / Board support crates / 1BitSquared | |||
onebitsy | Board support crate for the STM32F4-based board - | ||
Embedded Rust / Board support crates / Adafruit | |||
metro_m0 | Board support for the in the repo. It is an board | ||
metro_m4 | Board support for the in the repo. It is an board | ||
pyportal | Board support for the in the repo. It is an board | ||
pygamer | Board support for the in the repo. It is an board | ||
trellis_m4 | Board support for the in the repo. It is an board | ||
feather-f405 | Board support for the | ||
feather_m0 | Board support for the , and some variants in the repo. It is an board | ||
feather_m4 | Board support for the in the repo. It is an board | ||
circuit_playground_express | Board support for the in the repo. It is an board | ||
edgebadge | Board support for the in the repo. It is an board | ||
gemma_m0 | Board support for the in the repo. It is an board | ||
itsybitsy_m0 | Board support for the in the repo. It is an board | ||
itsybitsy_m4 | Board support for the in the repo. It is an board | ||
trinket_m0 | Board support for the in the repo. It is an board | ||
neo_trinkey | Board support for the in the repo. It is an board | ||
neokey_trinkey | Board support for the in the repo. It is an board | ||
grand_central_m4 | Board support for the in the repo. It is an board | ||
qt_py_m0 | Board support for the in the repo. It is an board | ||
adafruit-feather-rp2040 | 1,452 | 10 days ago | Board Support Crate for the |
adafruit-itsy-bitsy-rp2040 | 1,452 | 10 days ago | Board Support Crate for the |
adafruit-kb2040 | 1,452 | 10 days ago | Board Support Crate for the |
adafruit-macropad | 1,452 | 10 days ago | Board Support Crate for the |
adafruit-qt-py-rp2040 | 1,452 | 10 days ago | Board Support Crate for the |
Embedded Rust / Board support crates / Arduino | |||
avr-hal | 1,322 | 18 days ago | Board support crate for several AVR-based boards including the Arduino Uno and the Arduino Leonardo |
arduino_mkr1000 | Board support for the in the repo. It is an board | ||
arduino_mkrvidor4000 | Board support for the in the repo. It is an board | ||
arduino_mkrzero | Board support for the in the repo. It is an board | ||
arduino_nano33iot | Board 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-explorer | 1,452 | 10 days ago | Board Support for the |
pimoroni-pico-lipo-16mb | 1,452 | 10 days ago | Board Support for the |
Embedded Rust / Board support crates / Raspberry Pi | |||
rp-pico | 1,452 | 10 days ago | Board Support Crate for the RP2040-based Raspberry Pi Pico |
Embedded Rust / Board support crates / Sparkfun | |||
samd21_mini | Board support for the in the repo. It is an board | ||
sparkfun-pro-micro-rp2040 | 1,452 | 10 days ago | Board Support Crate for the RP2040 based Sparkfun Pro Micro |
Embedded Rust / Board support crates / SeeedStudio | |||
seedstudio-gd32v | 8 | about 4 years ago | Board support crate for the |
xiao_m0 | Board support for the in the repo. It is an board | ||
wio_lite_mg126 | Board support for the in the repo. It is an board | ||
wio_lite_w600 | Board support for the in the repo. It is an board | ||
wio_terminal | Board support for the in the repo. It is an board | ||
Embedded Rust / Board support crates / SiFive | |||
hifive1 | 77 | 12 months ago | Board support crate for and boards - |
Embedded Rust / Board support crates / Sipeed | |||
longan-nano | 117 | 6 months ago | Board support package for the |
Embedded Rust / Board support crates / Sony | |||
prussia | 110 | 20 days ago | SDK for the PlayStation 2 |
Embedded Rust / Board support crates / STMicroelectronics | |||
f3 | Board Support Crate for the - | ||
nucleo-f042k6 | - | ||
nucleo-f103rb | - | ||
nucleo-f401re | - | ||
nucleo-h743zi | 17 | over 1 year ago | Beginner-oriented support crate for the Nucleo H743ZI and Nucleo H743ZI2 |
nucleo-h723zg | 1 | over 1 year ago | Board support crate for the Nucleo H723ZG |
solo-bsp | Board Support Crate for , an open source security token (WIP) - | ||
stm32f407g-disc | Board Support Crate for the (WIP) - | ||
stm32f429i-disc | Board Support Crate for the (WIP) - | ||
stm32f3-discovery | Board Support Crate for the used in - | ||
Embedded Rust / Board support crates / Teensy | |||
teensy4-rs | 287 | 12 days ago | Board 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 | |||
monotron | 191 | over 3 years ago | A 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-launchpad | For the Texas Instruments Stellaris Launchpad and Tiva-C Launchpad | ||
tm4c129-launchpad | 0 | 11 months ago | For the Texas Instruments TM4C129-XL Launchpad board |
Embedded Rust / Board support crates / Special Purpose | |||
betafpv-f3 | 44 | almost 6 years ago | For the BetaFPV F3 drone flight controller |
Embedded Rust / Board support crates / Sodaq | |||
sodaq_one | Board support for the in the repo. It is an board | ||
sodaq_sara_aff | Board support for the in the repo. It is an board | ||
Embedded Rust / Board support crates / Other | |||
serpente | Board support for the in the repo. It is an board | ||
p1am_100 | Board support for the in the repo. It is an board | ||
Embedded Rust / Component abstraction crates | |||
accelerometer | 26 | 4 months ago | Generic 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 - | ||
radio | 71 | 7 months ago | Generic radio transceiver traits, mocks, and helpers - |
smart-leds | : Support for addressable LEDs including WS2812 and APA102 | ||
usb-device | 450 | about 1 month ago | : Abstraction layer between USB peripheral crates & USB class crates - |
atat | 116 | about 2 months ago | : Abstraction crate to ease writing AT based driver crates - |
embedded-nal | 177 | about 2 months ago | : An Embedded Network Abstraction Layer - |
embedded-storage | 69 | 4 months ago | : An Embedded Storage Abstraction Layer |
switch-hal | 26 | 7 months ago | : An "on"/"off" abstraction for input and output switches - |
Embedded Rust / Driver crates | |||
AD983x | SPI - AD9833/AD9837 waveform generators / DDS - - | ||
adafruit-alphanum4 | I2C - Driver for based on the ht16k33 chip - | ||
ADE791x | SPI - ADE7912/ADE7913 3-Channel, Isolated, Sigma-Delta ADC - - | ||
ADS1x1x | I2C - 12/16-bit ADCs like ADS1013, ADS1015, ADS1115, etc. - - | ||
ADXL313 | SPI - 3-axis accelerometer - | ||
ADXL343 | I2C - 3-axis accelerometer - | ||
ADXL355 | SPI - 3-axis accelerometer - - | ||
AFE4404 | 2 | over 1 year ago | I2C - Pulse oximeter - |
AHT20 | I2C - Humidity and temperature sensor - - | ||
AHT20-driver | I2C - Humidity and temperature sensor - - - | ||
AnyLeaf | I2C - pH sensor module - - | ||
AT86RF212 | SPI - Low power IEEE 802.15.4-2011 ISM RF Transceiver - - | ||
BlueNRG | SPI - driver for BlueNRG-MS Bluetooth module - | ||
BMA400 | I2C/SPI - Bosch 12-bit 3-axis accelerometer - | ||
BNO055 | I2C - Bosch Sensortec BNO055 9-axis IMU driver - | ||
CD74HC4067 | GPIO - 16-channel digital and analog multiplexer - - - | ||
dht-sensor | 1-Wire - DHT11/DHT22 temperature/humidity sensor driver - - | ||
embedded-dht-rs | 1-Wire, I2C - DHT11/DHT20/DHT22 temperature/humidity sensor driver - - | ||
DRV8825 | DRV8825 Stepper Motor Driver (based on ) - - | ||
DS1307 | I2C - Real-time clock driver - - | ||
ebyte-e32 | SERIAL - Ebyte E32 LoRa module driver - - | ||
EEPROM24x | I2C - 24x series serial EEPROM driver - - | ||
embedded-ccs811 | I2C - Gas and VOC sensor driver for monitoring indoor air quality - - | ||
embedded-sdmmc | SPI - SD/MMC Card Driver with MS-DOS Partition and FAT16/FAT32 support - | ||
ENC28J60 | SPI - Ethernet controller - - | ||
FUSB302B | 19 | 5 months ago | I2C - Programmable USB Type‐C Controller with USB Power Delivery - |
HC-12 | SERIAL - Wireless serial transceiver module - - - | ||
HTS221 | I2C - Humidity and temperature sensor - - | ||
IIS2MDC | I2C - ST's High accuracy, ultra-low-power, 3-axis digital output magnetometer - | ||
ISM330DHCX | I2C - ST's IMU with 3D accelerometer, 3D gyroscope, ML core and more - | ||
keypad | GPIO - Keypad matrix circuits - - | ||
KXCJ9 | I2C - KXCJ9/KXCJB 3-axis accelerometers - - | ||
L3GD20 | SPI - Gyroscope - - | ||
LSM303DLHC | I2C - Accelerometer + compass (magnetometer) - - | ||
MAX6675 | SPI - A driver for the MAX6675 digital thermocouple converter - - | ||
MAX6955 | I2C - Driver for Alphanumeric LED display driver - - | ||
MAX116xx-10bit | SPI - Driver for the MAX11619-MAX11621, MAX11624 and MAX11625 10-bit ADCs - - | ||
MCP25LCXX | SPI - Driver for Microchip's 25LC series of EEPROMs - | ||
MCP3008 | SPI - 8 channel 10-bit ADC - - | ||
MCP3425 | I2C - 16-bit ADC - - | ||
MCP794xx | I2C - Real-time clock / calendar driver - - | ||
MMA7660FC | I2C - 3-axis accelerometer - | ||
OPT300x | 6 | 4 months ago | I2C - Ambient light sensor family driver - - |
PAC194X | 3 | over 2 years ago | I2C - Single/multi channel power monitor - - |
port-expander | I2C - Driver for I2C port expanders (supports , ) - - | ||
pwm-pca9685 | I2C - 16-channel, 12-bit PWM/Servo/LED controller - - | ||
rainbow-hat-rs | I2C/SPI/GPIO - Pimoroni Rainbow HAT driver for Raspberry Pi - - | ||
rotary-encoder-hal | GPIO - A rotary encoder driver using - - | ||
sega-controller | GPIO - Sega controller input - - | ||
SGP30 | I2C - Gas sensor - - | ||
SH1106 | I2C - Monochrome OLED display controller - | ||
shared-bus | 129 | 9 months ago | I2C - utility driver for sharing a bus between multiple devices - |
shift-register-driver | GPIO - Shift register - - | ||
Si4703 | I2C - FM radio turner (receiver) driver - - | ||
SRAM23x | SPI - Microchip 23x series serial SRAM/NVSRAM driver - - | ||
SSD1306 | I2C/SPI - OLED display controller - - | ||
SSD1309 | I2C/SPI - OLED display controller - - | ||
STSPIN220 | STSPIN220 Stepper Motor Driver (based on ) - - | ||
Sx127x | SPI - Long Range Low Power Sub GHz (Gfsk, LoRa) RF Transceiver - - | ||
Sx128x | SPI - Long range, low power 2.4 GHz (Gfsk, Flrc, LoRa) RF Transceiver - - | ||
TC72 | SPI - Microchip TC72 temperature sensor - | ||
TCN75A | I2C - Microchip TCN75A temperature sensor - | ||
TMP006 | I2C - Contact-less infrared (IR) thermopile temperature sensor driver - | ||
TMP1x2 | I2C - TMP102 and TMP112x temperature sensor driver - | ||
TSIC | GPIO - TSIC 306 temperature sensor driver - | ||
TSL256X | I2C - Light Intensity Sensor - - | ||
VEML6030/VEML7700 | I2C - Ambient light sensors - - | ||
VEML6075 | I2C - UVA and UVB light sensor - - | ||
usbd-serial | USB CDC-ACM class (serial) implementation - - | ||
usbd-hid | USB HID class implementation - - | ||
usbd-hid-device | USB HID class implementation without - - | ||
usbd-human-interface-device | 116 | 24 days ago | Batteries 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-midi | USB MIDI class implementation - - | ||
usbd-webusb | USB webUSB class implementation - - | ||
SHTCx | I2C - Temperature / humidity sensors - - | ||
ST7789 | SPI - An embedded-graphics compatible driver for the popular lcd family from Sitronix used in the PineTime watch - - | ||
DW1000 | SPI - Radio transceiver (IEEE 802.15.4 and position tracking) - - | ||
Adafruit-7segment | I2C - Driver for Adafruit 7-segment LED Numeric Backpack based on the ht16k33 chip - - | ||
ST7565 | SPI - An embedded-graphics compatible driver for LCD displays based on the ST7565 chip - - | ||
tb6612fng | A driver for the TB6612FNG motor driver - | ||
vl53l1x-uld | I2C - A pure-rust driver for the - | ||
i2c-multiplexer | I2C - An I2C Multiplexer library that supports the PCA9546 and TCA9546A chips - - | ||
SHT31-rs | I2C - Fully supported SHT temperature / humidity sensors - - | ||
Embedded Rust / Driver crates / WIP | |||
AD9850 | Embedded driver for the AD9850 DDS synthesizer chip - | ||
AFE4400 | 6 | over 4 years ago | SPI - Pulse oximeter |
APDS9960 | I2C - Proximity, ambient light, RGB, and gesture sensor - | ||
AS5048A | 1 | almost 3 years ago | SPI - AMS AS5048A Magnetic Rotary Encoder |
AXP209 | 5 | over 3 years ago | I2C - Power management unit |
ad57xx | 0 | 9 months ago | SPI - Quad and dual channel DAC - |
BH1750 | 2 | almost 7 years ago | I2C - ambient light sensor (lux meter) |
BME280 | A rust device driver for the Bosch BME280 temperature, humidity, and atmospheric pressure sensor and the Bosch BMP280 temperature and atmospheric pressure sensor | ||
bme680 | 29 | 23 days ago | I2C - Temperature / humidity / gas / pressure sensor - |
BMI160 | I2C / SPI - Inertial Measurement Unit - | ||
BMP280 | A platform agnostic driver to interface with the BMP280 pressure sensor | ||
CC1101 | SPI - Sub-1GHz RF Transceiver - | ||
DS3231 | 7 | almost 7 years ago | I2C - real-time clock |
DS3234 | 1,926 | about 1 month ago | SPI - Real-time clock |
DS323x | I2C/SPI - Real-time clocks (RTC): DS3231, DS3232 and DS3234 - | ||
epd-waveshare | SPI - driver for E-Paper Modules from Waveshare | ||
embedded-morse | Output morse messages - | ||
embedded-nrf24l01 | SPI+GPIO - 2.4 GHz radio | ||
Ft6x36 | I2C - Rust driver for focal tech touch screen FT6236, FT6336 - | ||
grove-matrix-led-my9221-rs | I2C - Rust driver for Grove RGB Matrix Led with my-9221 Driver - | ||
GridEYE | I2C - Rust driver for Grid-EYE / Panasonic AMG88(33) - | ||
HC-SR04 | 17 | almost 6 years ago | DIO - Ultrasound sensor |
HD44780-driver | GPIO - LCD controller - | ||
HD44780 | Parallel port - LCD controller | ||
HM11 | USART - HM-11 bluetooth module AT configuration crate - | ||
HRS3300 | I2C - Heart rate sensor / monitor used in the PineTime smartwatch, for example. - | ||
HDC20xx | I2C - Temperature and humidity sensor compatible with HDC2080, HDC2021 and HDC2010. - | ||
hub75 | 21 | 9 months ago | A driver for rgb led matrices with the hub75 interface - |
hzgrow-r502 | UART capacitive fingerprint reader - | ||
iAQ-Core | 2 | about 3 years ago | I2C - iAQ-Core-C/iAQ-Core-P Gas and VOC sensor driver for monitoring indoor air quality |
ILI9341 | 58 | 9 months ago | SPI - TFT LCD display |
INA260 | I2C - power monitor - | ||
ISL29125 | I2C - RGB Color Light Sensor with IR Blocking Filter - | ||
IST7920 | SPI monochrome LCD display - | ||
LM75 | I2C - 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) - | ||
lp586x | I2C/SPI - LED matrix driver | ||
LS010B7DH01 | 6 | over 6 years ago | SPI - Memory LCD |
LSM303AGR | I2C/SPI - 3D accelerometer + 3D magnetometer. (Used in e.g. micro:bit boards) | ||
LSM303C | A platform agnostic driver to interface with the LSM303C (accelerometer + compass) | ||
LSM9DS1 | I2C/SPI - 9-axis motion sensor module | ||
ltr-559 | I2C - Ambient Light Sensor and Proximity sensor | ||
lvgl | 687 | 5 months ago | no_std port - |
M95320 | SPI - STMicroelectronics Serial flash EEPROM - | ||
MAG3110 | 1 | about 6 years ago | I2C - Magnetometer |
MAX17048/9 | I2C - LiPo Fuel gauge, battery monitoring IC - | ||
MAX170xx | 8 | 7 months ago | I2C - LiPo Fuel gauge, battery monitoring ICs compatible with MAX17043/4, MAX17048/9, MAX17058/9. - |
MAX3010x | I2C - Pulse oximeter and heart-rate sensor. ATM Compatible with MAX30102. - | ||
MAX31855 | 4 | 7 months ago | SPI - Thermocouple digital converter - |
MAX31865 | SPI - RTD to Digital converter - | ||
MAX44009 | I2C - Ambient light sensor - | ||
MAX7219 | 16 | 12 months ago | SPI - LED display driver - |
MCP4725 | I2C - 12-bit DAC - | ||
MCP49xx | SPI - 8/10/12-bit DACs like MCP4921, MCP4922, MCP4801, etc. - | ||
MCP9808 | I2C - Temperature sensor - | ||
MCP4x | SPI - Digital potentiometers (digipot) like MCP41010, MCP41050, MCP41100, MCP42010, MCP42050 and MCP42100, etc. - | ||
MFRC522 | 30 | over 2 years ago | SPI - RFID tag reader/writer |
midi-port | UART - MIDI input - | ||
MLX9061x | I2C - MLX90614/MLX90615 Contact-less infrared (IR) temperature sensor driver. - | ||
MMA8x5x | I2C - Tri-axis accelerometers like MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC and MMA8653FC. - | ||
motor-driver | 10 | over 6 years ago | Motor drivers: L298N, TB6612FNG, etc |
MPU6050 | I2C - no_std driver for the MPU6050 | ||
MPU9250 | no_std driver for the MPU9250 (and other MPU* devices) & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU) | ||
MS5637 | no_std I2C driver for the MS5637 temperature and pressure sensor | ||
NRF24L01 | 28 | over 4 years ago | SPI - 2.4 GHz wireless communication |
OneWire | 1wire - OneWire protocol implementation with drivers for devices such as - | ||
PCD8544 | 0 | over 6 years ago | SPI - 48x84 pixels matrix LCD controller |
PCD8544_rich | SPI - Rich driver for 48x84 pixels matrix LCD controller - | ||
PCF857x | I2C - I/O expanders: PCF8574, PCF8574A, PCF8575 | ||
radio-at86rf212 | SPI - Sub GHz 802.15.4 radio transceiver | ||
RFM69 | 11 | over 2 years ago | SPI - ISM radio transceiver |
RN2xx3 | 5 | about 3 years ago | Serial - A driver for the RN2483 / RN2903 LoRaWAN modems by Microchip |
SCD30 | I2C - CO₂ sensor - | ||
SHT2x | 2 | almost 3 years ago | I2C - temperature / humidity sensors |
SHT3x | 7 | about 2 years ago | I2C - Temperature / humidity sensors |
SI5351 | 3 | 5 months ago | I2C - clock generator |
SI7021 | 5 | almost 5 years ago | I2C - Humidity and temperature sensor |
SPL06-007 | 1 | almost 2 years ago | I2C - Pressure and temperature sensor - |
spi-memory | 23 | almost 3 years ago | SPI - A generic driver for various SPI Flash and EEPROM chips - |
SSD1320 | SPI - Graphical OLED display controller - | ||
SSD1322 | SPI - Graphical OLED display controller - | ||
SSD1322_rs | SPI - Async graphics driver for SSD1322 screen - | ||
SSD1351 | SPI - 16bit colour OLED display driver - | ||
SSD1675 | SPI - Tri-color ePaper display controller - | ||
st7032i | 2 | about 5 years ago | I2C - Dot Matrix LCD Controller driver (Sitronix ST7032i or similar). - |
ST7735-lcd | SPI - An embedded-graphics compatible driver for the popular lcd family from Sitronix | ||
ST7920 | SPI - LCD displays using the ST7920 controller | ||
stm32-eth | 149 | 20 days ago | MCU - Ethernet |
SX1278 | 11 | over 6 years ago | SPI - Long range (LoRa) transceiver |
SX1509 | 1 | 10 months ago | I2C - IO Expander / Keypad driver |
TCS3472 | I2C - RGB color light sensor - | ||
TPA2016D2 | I2C - A driver for interfacing with the Texas Instruments TPA2016D2 Class-D amplifier - | ||
VEML6040 | I2C - RGBW color light sensor - | ||
VEML6070 | I2C - UVA light sensor - | ||
VEML7700 | I2C - Ambient light sensors - | ||
vesc-comm | 1 | 11 months ago | A driver for communicating with |
VL53L0X | A platform agnostic driver to interface with the vl53l0x (time-of-flight sensor) | ||
w5500 | SPI - Ethernet Module with hardwired protocols : TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE - | ||
xCA9548A | I2C - I2C switches/multiplexers: TCA9548A, PCA9548A - | ||
ublox-cellular-rs | 22 | 25 days ago | Serial - Cellular driver for the full Ublox cellular serial based family |
atwinc1500-rs | SPI - A host driver for the Atwinc1500 network controller | ||
HX711 | 6 | 2 months ago | GPIO - 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-registers | A 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-traits | 3 | over 5 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-sys | 17 | 12 months 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-device | 186 | about 1 year ago | : A distribution of tools and examples for building embedded applications in Rust |
dummy-pin | : Dummy implementations of the input/output pin traits | ||
crossbus | 122 | 9 months ago | : A Platform-Less, Runtime-Less Actor Computing Model |
ector | 47 | 27 days ago | : An async actor framework for embedded, based on embassy |
embassy | 4 | about 1 year 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-update | 20 | about 1 year ago | : Pluggable firmware update protocol for embedded devices |
embedded-tls | 172 | 4 months 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. - | ||
ethercrab | 256 | 6 days ago | : A Rust implementation of the industrial automation protocol - |
fixed-fft | : Fixed-point Fast Fourier Transform - | ||
gcode | 89 | over 2 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-encoding | 264 | 6 days ago | : A LoRaWAN packet codec |
lorawan-device | 264 | 6 days 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 . - | ||
menu | 51 | about 2 months 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 - | ||
micromath | 400 | 3 months 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 - | ||
moonboot | 27 | over 2 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 - | ||
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. - | ||
pc-keyboard | 99 | 2 months 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-rs | 47 | over 3 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 | ||
smoltcp | 3,802 | 13 days ago | : a small TCP/IP stack that runs without |
sntpc | : Rust SNTP client to get a timestamp from NTP servers. - | ||
static-bytes | 6 | almost 4 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-framebuffer | 31 | over 4 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-pd | 19 | 5 months 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 . - | ||
wtx | 196 | 8 days ago | : Among other things, provides implementations to interact with HTTP, WebSockets and Databases |
Embedded Rust / no-std crates / WIP | |||
light-cli | 15 | over 5 years ago | : a lightweight heapless cli interface |
OxCC | 19 | about 6 years ago | : A port of Open Source Car Control written in Rust |
Rubble | 398 | over 2 years ago | : A pure-Rust embedded BLE stack |
Embedded Rust / Firmware projects | |||
rmk | 601 | 8 days ago | : Mechanical keyboard firmware for stm32/rp2040, supports vial/dynamic keymap/eeprom, written in Rust |
anne-key | 568 | over 4 years ago | : Alternate keyboard firmware for the Obins ANNE Pro |
μLA | 755 | 16 days ago | : Micro Logic Analyzer for RP2040 |
air-gradient-pro-rs | 9 | about 1 year ago | : Bootloader, firmware, and CLI tools for the AirGradient PRO |
Stabilizer | 111 | 5 days ago | : Firmware for a DSP tool used in quantum physics experimentation, includes telemetry via MQTT and run-time configuration |
Booster | 13 | 5 days ago | : Firmware for an RF power amplifier, including telemetry via MQTT and run-time configuration |
Thermostat EEM | 7 | 5 days ago | : Firmware for a multi-channel temperature controller used in physics experiments |
Card/IO ECG | 30 | about 1 month ago | : Firmware for a business-card-sized ECG device with Wifi connectivity |
BillMock | 13 | 3 months ago | : Firmware for credit card terminal add-on hardware to install on Korean arcade machines |
LuLuu | 7 | 12 months ago | : Firmware for a custom RP2040-based display controller that streams animated images from a microSD card to a small LCD display |
prinThor | 142 | 27 days 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 Teensy | by @branan — Beginner set of articles on getting into embedded dev in Rust | ||
Pragmatic Bare Metal Rust | A starter article about starting Rust development on STM32 microcontrollers (cubeMX + FFI) | ||
Using Rust in an Embedded Project: A Simple Example | Article and some links on setting up Rust cross-compiling | ||
Robigalia | general purpose robust operating system in Rust running on secure seL4 microkernel | ||
intermezzOS | A small teaching operating system in Rust. A book with some explanations is also included | ||
Fearless concurrency | by @japaric — How to easily develop Rust programs for pretty much any ARM Cortex-M microcontroller with memory-safe concurrency | ||
Internet of Streams | A video series by building a bare metal IoT Sensor Node Platform from (nearly) scratch in Rust | ||
Ferrous Systems' Embedded Training Courses: 2019 edition | 114 | over 4 years ago | A 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 | |||
LICENSE-CC0 | CC0 1.0 Universal License ( or ) |