Top 50 Awesome List

rust-embedded/awesome-embedded-rust

Programming Languages  4 days ago  3.6k
Curated list of resources for Embedded and Low-level development in the Rust programming language
View byDAY/WEEK/README
View on Github

Sep 17th

Driver crates

  • usbd-human-interface-devicestars30 - Batteries included embedded USB HID library for usb-device. Includes concrete Keyboard (boot and NKRO), Mouse and Consumer Control implementations as well as support for building your own HID classes - githubstars30 - crates.io
  • Aug 29th

    Driver crates

  • ST7789 - SPI - An embedded-graphics compatible driver for the popular lcd family from Sitronix used in the PineTime watch - githubstars30 - crates.io
  • ST7565 - SPI - An embedded-graphics compatible driver for LCD displays based on the ST7565 chip - githubstars1 - crates.io
  • Jul 18th

    no-std crates

  • moonbootstars12: OTA Bootloader Construction Framework for Rust no_std environments, especially embedded devices without an OS
  • Jul 7th

    Peripheral Access Crates

    GigaDevice

  • gd32e2 Peripheral access API for GD32E23x Cortex-M23 microcontrollers (generated using svd2rust) - crates.io
  • gd32f2 Peripheral access API for GD32F20x Cortex-M3 microcontrollers (generated using svd2rust) - crates.io
  • Jun 15th

    no-std crates

  • drogue-devicestars120: A distribution of tools and examples for building embedded applications in Rust.
  • ectorstars7: An async actor framework for embedded, based on embassy.
  • embedded-updatestars5: Pluggable firmware update protocol for embedded devices.
  • embedded-tlsstars47: A TLS 1.3 implementation that runs in a no-std environment.
  • Jun 14th

    Books, blogs and training materials

  • Ferrous Systems' Embedded Training Courses: 2020-current editionstars205 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 Ferrous Systems to corporate customers.
  • Old books, blogs and training materials

  • Ferrous Systems' Embedded Training Courses: 2019 editionstars102 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.
  • May 12th

    Books, blogs and training materials

  • 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.
  • Apr 11th

    Driver crates

  • PAC194Xstars2 - I2C - Single/multi channel power monitor - Intro blog post - crates.io
  • Apr 3rd

    Board support crates

    STMicroelectronics

  • nucleo-h743zi Beginner-oriented support crate for the Nucleo H743ZI and Nucleo H743ZI2
  • Mar 29th

    Community

    Community Chat Rooms

  • #esp-rs:matrix.org - For discussion of using Embedded Rust on Espressif devices
  • Books, blogs and training materials

  • The Rust on ESP Book - The goal of this book is to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules.
  • Ferrous Systems' Embedded Rust on Espressif - Training Material for learning to use Embedded Rust with the Espressif ESP32-C3.
  • Peripheral Access Crates

    Espressif

  • esp32 - crates.io
  • esp32c3 - crates.io
  • esp32s2 - crates.io
  • esp32s3 - crates.io
  • esp8266 - crates.io
  • HAL implementation crates

    Espressif

  • esp-idf-hal
    • An embedded-hal implementation for ESP32[-XX] + ESP-IDF
  • esp-hal
    • An extremely experimental attempt at writing a HAL which targets the ESP32, ESP32-C3, ESP32-S2, and ESP32-S3.
  • Mar 28th

    Books, blogs and training materials

  • Embedded Rust programming playlist Various livestreams with Embedded Rust live coding
  • Feb 20th

    Driver crates

    WIP

  • grove-matrix-led-my9221-rs - I2C - Rust driver for Grove RGB Matrix Led with my-9221 Driver - crates.io
  • Ft6x36 - I2C - Rust driver for focal tech touch screen FT6236, FT6336 - crates.io
  • Feb 17th

    no-std crates

  • dummy-pin: Dummy implementations of the input/output pin traits. crates.io
  • inverted-pin: Implementations of the input/output pin traits with inverted logic. crates.io
  • Feb 13th

    no-std crates

  • minimq: A minimal MQTT5 client designed for no_std platforms - crates.io
  • Feb 6th

    Driver crates

  • AHT20-driver - I2C - Humidity and temperature sensor - Intro blog post - githubstars2 - crates.io
  • Jan 26th

    Driver crates

  • SSD1309 - I2C/SPI - OLED display controller - Intro blog post - crates.io
  • Jan 17th

    no-std crates

  • lorawan-encoding: A LoRaWAN packet codec.
  • lorawan-device: A LoRaWAN MAC implementation supporting both event driven and async mode.
  • Jan 11th

    Real-time

    Real-time Operating System (RTOS)

  • RIOT-OS directly supports applications written in Rust, both in terms of build system integration and by having safe and idiomatic wrappers.
  • Jan 10th

    Board support crates

    Adafruit

  • metro_m0 - Board support for the Metro M0 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 1 supportstars413 board. crates.io
  • metro_m4 - Board support for the Metro M4 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 1 supportstars413 board. crates.io
  • pyportal - Board support for the PyPortal board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • pygamer - Board support for the PyGamer board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 1 supportstars413 board. crates.io
  • trellis_m4 - Board support for the NeoTrellis M4 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • feather_m0 - Board support for the Feather M0 board, and some variants in the atsamd-rsstars413 repo. It is an atsamd-rs tier 1 supportstars413 board. crates.io
  • feather_m4 - Board support for the Feather M4 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 1 supportstars413 board. crates.io
  • circuit_playground_express - Board support for the Circuit Playground Express board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • edgebadge - Board support for the EdgeBadge board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • gemma_m0 - Board support for the Gemma M0 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • itsybitsy_m0 - Board support for the ItsyBitsy M0 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • itsybitsy_m4 - Board support for the ItsyBitsy M4 Express board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • trinket_m0 - Board support for the Trinket M0 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • neo_trinkey - Board support for the neo trinkey board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • neokey_trinkey - Board support for the neokey trinkey board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • grand_central_m4 - Board support for the grand central m4 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • qt_py_m0 - Board support for the QT Py board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • Board support crates

    Arduino

  • arduino_mkr1000 - Board support for the MKR 1000 WiFi board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • arduino_mkrvidor4000 - Board support for the MKR Vidor board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • arduino_mkrzero - Board support for the mkrzero board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • arduino_nano33iot - Board support for the Arduino Nano 33 IoT in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • Board support crates

    Sparkfun

  • samd21_mini - Board support for the SAMD21 Mini Breakout in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • Board support crates

    SeeedStudio

  • xiao_m0 - Board support for the Seeed Studio Seeeduino XIAO in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • wio_lite_mg126 - Board support for the Seeed Studio wio_lite_mg126 in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • wio_lite_w600 - Board support for the Seeed Studio wio_lite_w600 in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • wio_terminal - Board support for the Seeed Studio wio_terminal in the atsamd-rsstars413 repo. It is an atsamd-rs tier 1 supportstars413 board crates.io
  • Board support crates

    Sodaq

  • sodaq_one - Board support for the Sodaq one board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • sodaq_sara_aff - Board support for the Sodaq sara aff board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • Board support crates

    Other

  • serpente - Board support for the serpente board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • p1am_100 - Board support for the p1am_100 board in the atsamd-rsstars413 repo. It is an atsamd-rs tier 2 supportstars413 board. crates.io
  • Jan 9th

    Community

    Community Chat Rooms

  • #atsamd-rs:gitter.im - For discussions of using Embedded Rust on ATSAMD devices
  • Jan 8th

    Board support crates

    Adafruit

  • feather-f405 - Board support for the Feather STM32F405 Express. crates.io
  • adafruit-feather-rp2040 - Board Support Crate for the Adafruit Feather RP2040 crates.io
  • adafruit-itsy-bitsy-rp2040 - Board Support Crate for the Adafruit ItsyBitsy RP2040 crates.io
  • adafruit-kb2040 - Board Support Crate for the Adafruit KB2040 crates.io
  • adafruit-macropad - Board Support Crate for the Adafruit Macropad crates.io
  • adafruit-qt-py-rp2040 - Board Support Crate for the Adafruit QT Py RP2040 crates.io
  • Peripheral Access Crates

    Microchip

  • atsame53 Peripheral access API for Microchip (formerly Atmel) SAME53 microcontrollers. This git repo hosts both the peripheral access crate and the hal.
  • Dec 31st, 2021

    HAL implementation crates

    OS

  • freebsd-embedded-hal for embedded (or not) FreeBSD systems. - crates.io
  • Dec 30th, 2021

    Peripheral Access Crates

    Microchip

  • pic32-pac Peripheral access API for PIC32MX1/2xx - crates.io
  • HAL implementation crates

    Microchip

  • pic32-hal - HAL for PIC32MX - crates.io
  • no-std crates

  • fixed-fft: Fixed-point Fast Fourier Transform - Crates.io
  • Dec 26th, 2021

    Real-time

    Real-time Operating System (RTOS)

  • Hubrisstars2k A real-time operating systems built by Oxide Computer to run the Service Controller processor in the mainboards of their rack-mount servers.
  • Real-time

    Real-time tools

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

    Raspberry Pi Silicon

  • rp2040-pac - Peripheral access API for the RP2040 dual-core system-on-chip (generated using svd2rust) - crates.io
  • HAL implementation crates

    Raspberry Pi Silicon

  • rp2040-hal - HAL for the RP2040 dual-core system-on-chip - crates.io
  • HAL implementation crates

    Texas Instruments

  • tm4c123x-hal
  • Board support crates

    Pimoroni

  • pimoroni-pico-explorer - Board Support for the Pimoroni Pico Explorer
  • pimoroni-pico-lipo-16mb - Board Support for the Pimoroni Pico Lipo 16MB
  • Board support crates

    Raspberry Pi

  • rp-pico - Board Support Crate for the RP2040 based Raspberry Pi Pico.
  • Board support crates

    Sparkfun

  • sparkfun-pro-micro-rp2040 - Board Support Crate for the RP2040 based Sparkfun Pro Micro.
  • Dec 25th, 2021

    Tools

  • cargo-flash A small cargo subcommand to download your binary to your target chip. - crates.io
  • cargo-embed A superset of cargo-flash with additional useful features like configuration file support, a RTT terminal or a GDB server. - crates.io
  • Dec 20th, 2021

    Tools

  • Embassy startstars14 is a GitHub repo template for setting up async embedded Rust projects that use Embassystars963. This particular template targets nRF hardware and networking using the Uarte for the purposes of illustration only.
  • Dec 17th, 2021

    Driver crates

  • MAX116xx-10bit - SPI - Driver for the MAX11619-MAX11621, MAX11624 and MAX11625 10-bit ADCs - Intro blog post - crates.io
  • Dec 15th, 2021

    Driver crates

  • port-expander - I2C - Driver for I2C port expanders (supports PCA95xx, PCF85xx) - Intro blog post - crates.io
  • Dec 13th, 2021

    Peripheral Access Crates

    Vorago

  • va416xx - crates.io
  • Board support crates

    Vorago

  • vorago-reb1 - crates.io
  • Dec 9th, 2021

    Peripheral Access Crates

    Vorago

  • va108xx - crates.io
  • HAL implementation crates

    GigaDevice

  • gd32vf103xx-hal - crates.io
    • HAL for GD32VF103xx microcontrollers
  • HAL implementation crates

    Vorago

  • va108xx-hal - crates.io
  • Dec 6th, 2021

    Board support crates

    Nordic

  • nrf52840-dk-bsp - nrf52840-dk - crates.io
  • Nov 12th, 2021

    Tools

  • ferrosstars58 A Rust-based userland which also adds compile-time assurances to seL4 development.
  • Nov 9th, 2021

    no-std crates

  • sntpc: Rust SNTP client to get a timestamp from NTP servers. - crates.io
  • Oct 26th, 2021

    no-std crates

  • scapegoat: Safe, stack-only alternative to BTreeSet and BTreeMap. - crates.io
  • Oct 14th, 2021

    Tools

  • embedded-hal-compatstars7, a compatibility layer to provide interoperability between v0.2.x and v1.x.x hal implementations and drivers
  • Aug 24th, 2021

    Community

    Community Chat Rooms

  • #rp-rs:matrix.org - For discussion of using Embedded Rust on RP2040 based devices
  • embedded.rs-wasm-iot - English Telegram chat about Rust and WASM for microcontrollers and IoT
  • Aug 23rd, 2021

    Community

    Community Chat Rooms

  • #avr-rust:gitter.im - For discussion of using Embedded Rust on AVR devices
  • #stm32-rs:matrix.org - For discussion of using Embedded Rust on STM32 based devices
  • Aug 19th, 2021

    Peripheral Access Crates

    NXP

  • SKEAZN642 Peripheral access API for KEA64 family microcontrollers (generated using svd2rust) - crates.io
  • Jul 30th, 2021

    Driver crates

  • rainbow-hat-rs - I2C/SPI/GPIO - Pimoroni Rainbow HAT driver for Raspberry Pi - githubstars1 - crates.io
  • Jul 20th, 2021

    Driver crates

    WIP

  • VEML7700 - I2C - Ambient light sensors - crates.io
  • Jul 5th, 2021

    Tools

  • edc2svdstars4 Generate SVD files for PIC32 devices from EDC files. - crates.io
  • Architecture support crates

    MIPS

  • mips-mcu Low level access to MIPS MCU cores - crates.io
  • Jul 1st, 2021

    Board support crates

    Nordic

  • Thingy:91-nrf9160 - thingy:91 - crates.io
  • Jun 28th, 2021

    Driver crates

    WIP

  • IST7920 - SPI monochrome LCD display - crates.io
  • Jun 24th, 2021

    Driver crates

    WIP

  • SSD1320 - SPI - Graphical OLED display controller - crates.io
  • Jun 22nd, 2021

    Driver crates

  • TCN75A - I2C - Microchip TCN75A temperature sensor - crates.io
  • Jun 20th, 2021

    no-std crates

  • cmsis-dsp-sys: Rust FFI bindings to the Arm CMSIS_5stars696 math library - crates.io
  • Books, blogs and training materials

  • DSP on STM32F407G-DISC1stars17 Unofficial oxidization of the Digital Signal Processing using Arm Cortex-M based Microcontrollers: Theory and Practice book. The book isn't necessary to enjoy the examples and learn a functional DSP Rust coding style.
  • Jun 9th, 2021

    Driver crates

  • CD74HC4067 - GPIO - 16-channel digital and analog multiplexer - Intro blog post - githubstars1 - crates.io
  • HC-12 - SERIAL - Wireless serial transceiver module - Intro blog post - githubstars1 - crates.io
  • May 9th, 2021

    HAL implementation crates

    Microchip

  • atsam4-hal - HAL for SAM4E, SAM4N and SAM4S - crates.io
  • Apr 18th, 2021

    Peripheral Access Crates

    MSP430

  • msp430fr6972 - Crates.io
  • Apr 14th, 2021

    no-std crates

  • cam-geom: Geometric models of cameras for photogrammetry. crates.io
  • Apr 13th, 2021

    HAL implementation crates

    GigaDevice

  • gd32f1x0-hal - crates.io
    • HAL implementation for GD32F1x0 microcontrollers
  • Peripheral Access Crates

    GigaDevice

  • gd32f1 Peripheral access API for GD32F1x0 Cortex-M3 microcontrollers (generated using svd2rust) - crates.io
  • Apr 7th, 2021

    no-std crates

  • adskalman: Kalman filter and Rauch-Tung-Striebel smoothing implementation. crates.io
  • Mar 25th, 2021

    Books, blogs and training materials

  • 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.
  • Tools

  • Knurling Tools are developed by Ferrous Systems to ease the development process for building, debugging, and testing embedded Rust systems. These tools include:
    • Probe Runstars440: a cargo runner to flash and run embedded applications just like you would native applications, including backtraces and panicking behavior
    • defmtstars433: a highly efficient logging framework that targets resource-constrained devices, like microcontrollers.
    • flip-linkstars135, a linker wrapper that provides stack overflow protection without an MMU by flipping the standard memory layout of ARM Cortex-M programs
    • app-templatestars188, a cargo-generate powered project template for quickly setting up new projects using the Knurling Tools.
    • defmt-teststars8, an embedded test harness that lets you write and run unit tests as if you were using the built-in #[test] attribute, but will run on an embedded target
  • Old books, blogs and training materials

  • Internet of Streams A video series by @jamesmunns building a bare metal IoT Sensor Node Platform from (nearly) scratch in Rust
  • Mar 16th, 2021

    Driver crates

  • IIS2MDC - I2C - ST's High accuracy, ultra-low-power, 3-axis digital output magnetometer - crates.io
  • ISM330DHCX - I2C - ST's IMU with 3D accelerometer, 3D gyroscope, ML core and more - crates.io
  • Mar 11th, 2021

    Driver crates

  • DRV8825 - DRV8825 Stepper Motor Driver (based on Stepper) - Intro blog post - crates.io
  • STSPIN220 - STSPIN220 Stepper Motor Driver (based on Stepper) - Intro blog post - crates.io
  • no-std crates

  • RampMaker: Stepper Motor Acceleration Ramp Generator - crates.io
  • Stepper: Universal Stepper Motor Interface - crates.io
  • Mar 7th, 2021

    Peripheral Access Crates

    Nordic

  • nrf52811-pac - Peripheral access API for the nRF52811 microcontroller (generated using svd2rust) - crates.io
  • nrf52833-pac - Peripheral access API for the nRF52833 microcontroller (generated using svd2rust) - crates.io
  • nrf5340-app-pac - Peripheral access API for the nRF5340 application core (generated using svd2rust) - crates.io
  • nrf5340-net-pac - Peripheral access API for the nRF5340 network core (generated using svd2rust) - crates.io
  • nrf9160-pac - Peripheral access API for the nRF9160 system-in-package (generated using svd2rust) - crates.io
  • HAL implementation crates

    Nordic

  • nrf52811-hal - crates.io
  • nrf52833-hal - crates.io
  • nrf9160-hal - crates.io
  • Feb 25th, 2021

    no-std crates

  • mqtt-sn: Implementation of the MQTT-SN protocol - crates.io
  • Feb 14th, 2021

    Board support crates

    STMicroelectronics

  • stm32f3-discovery Board Support Crate for the STM32F3DISCOVERY used in Rust Embedded Discovery book - crates.io
  • Jan 20th, 2021

    no-std crates

  • embassystars963: A set of embedded async tools to make async/await a first-class option for embedded development
  • Jan 14th, 2021

    Component abstraction crates

  • embedded-nal: An Embedded Network Abstraction Layer - crates.io
  • embedded-storage: An Embedded Storage Abstraction Layer
  • Jan 13th, 2021

    Driver crates

  • SRAM23x - SPI - Microchip 23x series serial SRAM/NVSRAM driver - Intro blog post - crates.io
  • Dec 29th, 2020

    no-std crates

  • device-driver: A toolkit to write better device drivers, faster. crates.io
  • Oct 1st, 2020

    Board support crates

    Teensy

  • teensy4-rs Board Support create for the [Teensy 4.0]
  • Sep 28th, 2020

    Driver crates

  • TSIC - GPIO - TSIC 306 temperature sensor driver - Intro blog post crates.io
  • Sep 10th, 2020

    Driver crates

  • embedded-ccs811 - I2C - Gas and VOC sensor driver for monitoring indoor air quality - Intro blog post - crates.io
  • Sep 7th, 2020

    Driver crates

  • AHT20 - I2C - Humidity and temperature sensor - githubstars1 - crates.io
  • Aug 31st, 2020

    no-std crates

  • static-bytesstars7: Help work with buffers without dynamic allocation. Implement traits from bytes crate. crate.io
  • Aug 11th, 2020

    Driver crates

  • dht-sensor - 1-Wire - DHT11/DHT22 temperature/humidity sensor driver - githubstars13 - crates.io
  • Aug 9th, 2020

    no-std crates

  • embedded-crc-macros: Macros implementing portable CRC algorithms and build-time lookup table generation. crates.io
  • smbus-pec: Minimal portable System Management Bus Packet Error Code calculation algorithm. crates.io
  • Aug 7th, 2020

    Driver crates

  • Adafruit-7segment - I2C - Driver for Adafruit 7-segment LED Numeric Backpack based on the ht16k33 chip - githubstars1 - crates.io
  • Driver crates

    WIP

  • epd-waveshare - SPI - driver for E-Paper Modules from Waveshare crates.io
  • Jul 31st, 2020

    no-std crates

  • gdbstub: zero-allocation, pure Rust implementation of the GDB Remote Serial Protocol - crates.io
  • Jul 30th, 2020

    Driver crates

    WIP

  • ltr-559 - I2C - Ambient Light Sensor and Proximity sensor crates.io
  • Jul 29th, 2020

    Driver crates

    WIP

  • MLX9061x - I2C - MLX90614/MLX90615 Contact-less infrared (IR) temperature sensor driver. - crates.io
  • Jul 19th, 2020

    Books, blogs and training materials

  • Writing an OS in rust A blog series creating a small operating system in Rust
  • Writing embedded drivers in Rust isn't that hard A guide to building an embedded-hal driver. Part 2
  • 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.
  • Jul 18th, 2020

    Peripheral Access Crates

    NXP

  • lpc845-pac - crates.io
  • Jul 14th, 2020

    Driver crates

  • MCP25LCXX - SPI - Driver for Microchip's 25LC series of EEPROMs - crates.io
  • Jun 26th, 2020

    Component abstraction crates

  • atat: Abstraction crate to ease writting AT based driver crates - crates.io
  • Driver crates

    WIP

  • ublox-cellular-rsstars10 - Serial - Cellular driver for the full Ublox cellular serial based family
  • Driver crates

  • ADXL313 - SPI - 3-axis accelerometer - crates.io
  • TC72 - SPI - Microchip TC72 temperature sensor - crates.io
  • Jun 19th, 2020

    Driver crates

  • AnyLeaf - I2C - pH sensor module - githubstars3 - crates.io
  • Jun 12th, 2020

    Community

    Community Chat Rooms

  • #rtic-rs:matrix.org - For discussion of the Real-Time Interrupt-driven Concurrency framework
  • Jun 7th, 2020

    Tools

  • cargo-hf2stars43 A small cargo subcommand to download cargo builds to Microsoft UF2 bootloaders via HID USB . - crates.io
  • uf2stars21 Converts binary files to Microsoft's UF2 format for copying over to mass storage device uf2 bootloaders - crates.io
  • May 29th, 2020

    Board support crates

    1BitSquared

  • onebitsy - Board support crate for the 1bitsy STM32F4-based board - crates.io
  • May 23rd, 2020

    no-std crates

  • embedded-websocket: A lightweight server and client websocket library for embedded systems. crates.io
  • May 16th, 2020

    Driver crates

    WIP

  • lvglstars346 - no_std LittleVGLstars10.4k port - crates.io
  • May 15th, 2020

    Real-time

    Real-time Operating System (RTOS)

  • FreeRTOS-ruststars166 Rust interface for FreeRTOS with Rust entry point and build support crate.
  • May 9th, 2020

    Driver crates

    WIP

  • MCP4725 - I2C - 12-bit DAC - crates.io
  • May 2nd, 2020

    Driver crates

    WIP

  • MAX3010x - I2C - Pulse oximeter and heart-rate sensor. ATM Compatible with MAX30102. -crates.io
  • BMI160 - I2C / SPI - Inertial Measurement Unit - crates.io
  • HRS3300 - I2C - Heart rate sensor / monitor used in the PineTime smartwatch, for example. - crates.io
  • HDC20xx - I2C - Temperature and humidity sensor compatible with HDC2080, HDC2021 and HDC2010. - crates.io
  • ISL29125 - I2C - RGB Color Light Sensor with IR Blocking Filter - crates.io
  • MAX170xxstars0 - I2C - LiPo Fuel gauge, battery monitoring ICs compatible with MAX17043/4, MAX17048/9, MAX17058/9.
  • Apr 29th, 2020

    no-std crates

  • debouncr: A simple no-std input debouncer to detect rising/falling edges with minimal RAM requirements. crates.io
  • Driver crates

    WIP

  • MAX17048/9 - I2C - LiPo Fuel gauge, battery monitoring IC - crates.io
  • Apr 23rd, 2020

    Driver crates

    WIP

  • LSM9DS1 - I2C/SPI - 9-axis motion sensor module crates.io
  • Driver crates

  • MAX6955 - I2C - Driver for Alphanumeric LED display driver - Intro blog post - crates.io
  • Apr 12th, 2020

    Driver crates

  • DW1000 - SPI - Radio transceiver (IEEE 802.15.4 and position tracking) - Article - crates.io
  • Mar 30th, 2020

    no-std crates

  • endian_codec: (En/De)code rust types as packed bytes with specific order (endian). Supports derive. - crates.io
  • Mar 22nd, 2020

    Peripheral Access Crates

    MSP430

  • msp430fr2355 Peripheral access API for MSP430FR2355 microcontrollers (generated using svd2rust)
  • HAL implementation crates

    MSP430

  • msp430fr2x5x-hal
    • HAL implementation for the MSP430FR2x5x family of microcontrollers
  • Mar 9th, 2020

    no-std crates

  • microfft: Embedded-friendly (no_std, no-alloc) fast fourier transforms - crates.io
  • Feb 21st, 2020

    Driver crates

    WIP

  • ST7920 - SPI - LCD displays using the ST7920 controller crates.io
  • midi-port - UART - MIDI input - crates.io
  • Feb 19th, 2020

    Peripheral Access Crates

    NXP

  • imxrt-ral Register access layer for i.MX RT series. - crates.io
  • HAL implementation crates

    NXP

  • imxrt-hal - HAL for i.MX RT series. - crates.io
  • Feb 17th, 2020

    Community

    Community Chat Rooms

  • You can usually find community members (including embedded WG members) in the official #rust-embedded:matrix.org Matrix room.
  • embedded.rs - Telegram chat about Rust for microcontrollers in the Russian language.
  • #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
  • #rust-embedded-graphics:matrix.org - For discussion of the embedded-graphics crate and ecosystem
  • Component abstraction crates

  • embedded-graphics: 2D drawing library for any size display - crates.io
  • Feb 14th, 2020

    Driver crates

  • ADXL355 - SPI - 3-axis accelerometer - Intro blog post - crates.io
  • Feb 11th, 2020

    Driver crates

  • SHTCx - I2C - Temperature / humidity sensors - githubstars8 - crates.io
  • Feb 7th, 2020

    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)
  • HAL implementation crates

    Microchip

  • avr-hal - HAL for AVR microcontroller family and AVR-based boards
  • Driver crates

  • usbd-hid-device - USB HID class implementation without unsafe - githubstars12 - crates.io
  • usbd-midi - USB MIDI class implementation - githubstars27 - crates.io