From 4fd4c9175697d261b75501527ccbfdb222804b8f Mon Sep 17 00:00:00 2001 From: rmsyn Date: Fri, 29 Sep 2023 02:19:26 +0000 Subject: [PATCH 01/12] pac: add StarFive JH71xx PAC Adds information for the [`jh71xx-pac`](https://github.com/rmsyn/jh71xx-pac) that supports the JH71xx SoCs from StarFive. --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 1493cf0..7daa1f5 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ This project is developed and maintained by the [Resources team][team]. - [Raspberry Pi Silicon](#raspberry-pi-silicon) - [SiFive](#sifive) - [Silicon Labs](#silicon-labs) + - [StarFive](#starfive) - [STMicroelectronics](#stmicroelectronics) - [Texas Instruments](#texas-instruments) - [MSP430](#msp430) @@ -272,6 +273,15 @@ The [`efm32-rs`](https://github.com/efm32-rs) project has peripheral access APIs - [`efm32wg-pac`](https://crates.io/crates/efm32wg-pac) - ![crates.io](https://img.shields.io/crates/v/efm32wg-pac) - [`efm32zg-pac`](https://crates.io/crates/efm32zg-pac) - ![crates.io](https://img.shields.io/crates/v/efm32zg-pac) +### StarFive + +- [`j71xx-pac`](https://github.com/rmsyn/jh71xx-pac) - svd2rust generated interface to StarFive [JH71xx](https://www.starfivetech.com/en/site/soc) MCUs - ![crates.io](https://img.shields.io/crates/v/jh71xx-pac.svg) + +Currently, the two VisionFive2 board revisions (v1.2a and v1.3b) are supported: + +- [`jh7110-vf2-12a-pac`](https://crates.io/crates/jh7110-vf2-12a-pac) - ![crates.io](https://img.shields.io/crates/v/jh7110-vf2-12a-pac) +- [`jh7110-vf2-13b-pac`](https://crates.io/crates/jh7110-vf2-13b-pac) - ![crates.io](https://img.shields.io/crates/v/jh7110-vf2-13b-pac) + ### STMicroelectronics The [`stm32-rs`](https://github.com/stm32-rs/stm32-rs) project has peripheral access APIs for most STM32 microcontrollers (generated using svd2rust): From 80e8406c9c9d4b6a29a5ddb77f166b42a12e35a7 Mon Sep 17 00:00:00 2001 From: James Waples Date: Tue, 10 Oct 2023 22:20:28 +0100 Subject: [PATCH 02/12] Add EtherCrab chat room and crate links EtherCrab is a Rust implementation of EtherCAT and supports both std and `no_std`. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 7daa1f5..2075237 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ In 2018 the Rust community created an embedded working group to help drive adopt - [#rust-embedded-graphics:matrix.org] - For discussion of the [`embedded-graphics`] 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-graphics:matrix.org]: https://matrix.to/#/#rust-embedded-graphics:matrix.org [#esp-rs:matrix.org]: https://matrix.to/#/#esp-rs:matrix.org @@ -125,6 +126,7 @@ In 2018 the Rust community created an embedded working group to help drive adopt [#avr-rust:gitter.im]: https://matrix.to/#/#avr-rust_Lobby:gitter.im [#rp-rs:matrix.org]: https://matrix.to/#/#rp-rs:matrix.org [#atsamd-rs:gitter.im]: https://matrix.to/#/#atsamd-rs_community:gitter.im +[#ethercrab:matrix.org]: https://matrix.to/#/#ethercrab:matrix.org ## Books, blogs and training materials @@ -1208,6 +1210,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [embedded-tls](https://github.com/drogue-iot/embedded-tls): A TLS 1.3 implementation that runs in a no-std environment. 1. [embedded-websocket](https://crates.io/crates/embedded-websocket): A lightweight server and client websocket library for embedded systems. ![crates.io](https://img.shields.io/crates/v/embedded-websocket.svg) 1. [endian_codec]: (En/De)code rust types as packed bytes with specific order (endian). Supports derive. - [![crates.io](https://img.shields.io/crates/v/endian_codec.svg)](https://crates.io/crates/endian_codec) +1. [ethercrab](https://github.com/ethercrab-rs/ethercrab): A Rust implementation of the [EtherCAT](https://ethercat.org) industrial automation protocol - ![crates.io](https://img.shields.io/crates/v/ethercrab.svg) 1. [fixed-fft](https://crates.io/crates/fixed-fft): Fixed-point Fast Fourier Transform - [![Crates.io](https://img.shields.io/crates/v/fixed-fft.svg)](https://crates.io/crates/fixed-fft) 1. [gcode](https://github.com/Michael-F-Bryan/gcode-rs): A gcode parser for no-std applications - [![crates.io](https://img.shields.io/crates/v/gcode.svg)](https://crates.io/crates/gcode) 1. [gdbstub](https://crates.io/crates/gdbstub): zero-allocation, pure Rust implementation of the GDB Remote Serial Protocol - [![crates.io](https://img.shields.io/crates/v/gdbstub.svg)](https://crates.io/crates/gdbstub) From 25319746b48b350a19366dc89f4b49cb9ed8f669 Mon Sep 17 00:00:00 2001 From: HaoboGu Date: Tue, 17 Oct 2023 07:20:52 -0500 Subject: [PATCH 03/12] Add rmk firmware --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2075237..195a9e0 100644 --- a/README.md +++ b/README.md @@ -1285,6 +1285,7 @@ Work in progress crates. Help the authors make these crates awesome! ## Firmware projects +- [rmk](https://github.com/HaoboGu/rmk): Mechanical keyboard firmware for stm32/rp2040, with dynamic keymap/vial/eeprom support, written in Rust - [anne-key](https://github.com/ah-/anne-key): Alternate keyboard firmware for the Obins ANNE Pro - [μLA](https://github.com/dotcypress/ula): Micro Logic Analyzer for RP2040 - [air-gradient-pro-rs](https://github.com/jonlamb-gh/air-gradient-pro-rs): Bootloader, firmware and CLI tools for the AirGradient PRO From 73a7a27cc562330054ce70cb4447a2cbe440ef27 Mon Sep 17 00:00:00 2001 From: HaoboGu Date: Tue, 17 Oct 2023 07:28:22 -0500 Subject: [PATCH 04/12] Update rmk description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 195a9e0..b6cc18b 100644 --- a/README.md +++ b/README.md @@ -1285,7 +1285,7 @@ Work in progress crates. Help the authors make these crates awesome! ## Firmware projects -- [rmk](https://github.com/HaoboGu/rmk): Mechanical keyboard firmware for stm32/rp2040, with dynamic keymap/vial/eeprom support, written in Rust +- [rmk](https://github.com/HaoboGu/rmk): Mechanical keyboard firmware for stm32/rp2040, supports vial/dynamic keymap/eeprom, written in Rust - [anne-key](https://github.com/ah-/anne-key): Alternate keyboard firmware for the Obins ANNE Pro - [μLA](https://github.com/dotcypress/ula): Micro Logic Analyzer for RP2040 - [air-gradient-pro-rs](https://github.com/jonlamb-gh/air-gradient-pro-rs): Bootloader, firmware and CLI tools for the AirGradient PRO From 3039597d56fbd05a4cd4c2180266bf90ba75f7fb Mon Sep 17 00:00:00 2001 From: Niklas Cathor Date: Sun, 29 Oct 2023 12:01:50 +0100 Subject: [PATCH 05/12] Add ad9850 crate to WIP drivers --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b6cc18b..75c0eb1 100644 --- a/README.md +++ b/README.md @@ -992,6 +992,7 @@ keyword on crates.io! Work in progress drivers. Help the authors make these crates awesome! +1. [AD9850] - Embedded driver for the AD9850 DDS synthesizer chip - ![crates.io](https://img.shields.io/crates/v/ad9850.svg) 1. [AFE4400] - SPI - Pulse oximeter 1. [APDS9960] - I2C - Proximity, ambient light, RGB and gesture sensor - ![crates.io](https://img.shields.io/crates/v/apds9960.svg) 1. [AS5048A] - SPI - AMS AS5048A Magnetic Rotary Encoder @@ -1085,6 +1086,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [ublox-cellular-rs] - Serial - Cellular driver for the full Ublox cellular serial based family 1. [atwinc1500-rs] - SPI - A host driver for the Atwinc1500 network controller +[AD9850]: https://crates.io/crates/ad9850 [AFE4400]: https://github.com/ReeceStevens/afe4400 [APDS9960]: https://crates.io/crates/apds9960 [AS5048A]: https://github.com/uwearzt/as5048a From 0143f745377f3bc27bfbc3d8d20da6c64c9a51a8 Mon Sep 17 00:00:00 2001 From: Dion Dokter Date: Tue, 31 Oct 2023 13:53:36 +0100 Subject: [PATCH 06/12] Add tweede golf workshop --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 75c0eb1..eb38617 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,8 @@ In 2018 the Rust community created an embedded working group to help drive adopt - [STM32F4xx with Embedded Rust at the HAL](https://apollolabsblog.hashnode.dev/series/stm32f4-embedded-rust-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](https://www.youtube.com/playlist?list=PLP_X41VhYn5X6Wwjnm0bRwI3n2pdaszxU) Various livestreams with Embedded Rust live coding - [ESP32-C3 Rust Tutorials](https://youtube.com/playlist?list=PLkch9g9DEE0Lkm1LqcD7pZNDmXEczOo-a) Short videos and [Github project](https://github.com/shanemmattner/ESP32-C3_Rust_Tutorials) implementing various peripherals of the ESP32-C3 with the end goal of creating a complete data logger application. +- [Tweede golf's workshop](https://workshop.tweede.golf) - A full workshop about Rust and embedded Rust. The embedded parts use the nRF52840-DK and a LIS3DH breakout board. ([github source](https://github.com/tweedegolf/rust-workshop)) + [Ferrous Systems]: https://ferrous-systems.com ## Tools From 440bf7d33036c7ba3112caf9e33ba8bb3cc5e9d7 Mon Sep 17 00:00:00 2001 From: Gray Olson Date: Thu, 16 Nov 2023 14:24:54 +0100 Subject: [PATCH 07/12] Add `luluu` firmware --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb38617..48cacb9 100644 --- a/README.md +++ b/README.md @@ -1298,6 +1298,7 @@ Work in progress crates. Help the authors make these crates awesome! - [Thermostat EEM](https://github.com/quartiq/thermostat-eem): Firmware for a multi-channel temperature controller used in physics experiments - [Card/IO ECG](https://github.com/card-io-ecg/card-io-fw): Firmware for a business-card sized ECG device with Wifi connectivity - [BillMcok](https://github.com/pmnxis/billmock-app-rs): Firmware for credit card terminal add-on hardware to install on Korean arcade machines +- [LuLuu](https://github.com/fu5ha/luluu): Firmware for a custom RP2040-based display controller which streams animated images from a microSD card to a small LCD display. ## Old books, blogs and training materials From 3cd26584a17ecd1c6fd4a827242b430558f611c4 Mon Sep 17 00:00:00 2001 From: andber1 <82754113+andber1@users.noreply.github.com> Date: Fri, 1 Dec 2023 16:06:12 +0100 Subject: [PATCH 08/12] Add atsamx7x --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 48cacb9..6631cbd 100644 --- a/README.md +++ b/README.md @@ -220,6 +220,7 @@ Peripheral Access Crates were also called Device Crates. - [`atsamd51`](https://github.com/atsamd-rs/atsamd) Peripheral access API for Microchip (formerly Atmel) SAMD51 microcontrollers. This git repo hosts both the peripheral access crate and the hal. - [`atsame53`](https://github.com/atsamd-rs/atsamd) Peripheral access API for Microchip (formerly Atmel) SAME53 microcontrollers. This git repo hosts both the peripheral access crate and the hal. - [`atsame54`](https://github.com/atsamd-rs/atsamd) Peripheral access API for Microchip (formerly Atmel) SAME54 microcontrollers. This git repo hosts both the peripheral access crate and the hal. +- [`atsamx7x-rust`](https://github.com/atsams-rs/atsamx7x-rust) 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`](https://github.com/Rahix/avr-device) Peripheral access API for Microchip (formerly Atmel) AVR microcontroller family. - [`sam3x8e`](https://crates.io/crates/sam3x8e) Peripheral access API for Atmel SAMD3X8E microcontrollers (generated using svd2rust) - ![crates.io](https://img.shields.io/crates/v/sam3x8e.svg) - [`pic32-pac`](https://crates.io/crates/pic32mx2xx) Peripheral access API for PIC32MX1/2xx - ![crates.io](https://img.shields.io/crates/v/pic32mx2xx) @@ -408,6 +409,7 @@ Implementations of [`embedded-hal`] for microcontroller families and systems run - [`atsam4-hal`](https://crates.io/crates/atsam4-hal) - HAL for SAM4E, SAM4N and SAM4S - ![crates.io](https://img.shields.io/crates/v/atsam4-hal.svg) - [`atsamd-hal`](https://crates.io/crates/atsamd-hal) - HAL for SAMD11, SAMD21, SAMD51 and SAME54 - ![crates.io](https://img.shields.io/crates/v/atsamd-hal.svg) +- [`atsamx7x-hal`](https://crates.io/crates/atsamx7x-hal) - HAL for SAM S70/E70/V70/V71-based devices - ![crates.io](https://img.shields.io/crates/v/atsamx7x-hal.svg) - [`avr-hal`](https://github.com/Rahix/avr-hal) - HAL for AVR microcontroller family and AVR-based boards - [`pic32-hal`](https://crates.io/crates/pic32-hal) - HAL for PIC32MX - ![crates.io](https://img.shields.io/crates/v/pic32-hal.svg) From c0be8630cafac97941eeee94cf2bc555d5f6b77c Mon Sep 17 00:00:00 2001 From: DaneSlattery Date: Tue, 3 Oct 2023 23:59:27 +0200 Subject: [PATCH 09/12] Add HX711 to readme I am building a library for the sparkfun load cell amplifier, and would love more eyes on it from this awesome community! --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6631cbd..747c281 100644 --- a/README.md +++ b/README.md @@ -1089,6 +1089,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [xCA9548A] - I2C - I2C switches/multiplexers: TCA9548A, PCA9548A - ![crates.io](https://img.shields.io/crates/v/xca9548a.svg) 1. [ublox-cellular-rs] - Serial - Cellular driver for the full Ublox cellular serial based family 1. [atwinc1500-rs] - SPI - A host driver for the Atwinc1500 network controller +1. [HX711] - GPIO - An interrupt-based driver for the HX711 Load Cell Amplifer IC. no-std. [AD9850]: https://crates.io/crates/ad9850 [AFE4400]: https://github.com/ReeceStevens/afe4400 @@ -1185,6 +1186,7 @@ Work in progress drivers. Help the authors make these crates awesome! [xCA9548A]: https://crates.io/crates/xca9548a [ublox-cellular-rs]: https://github.com/BlackbirdHQ/ublox-cellular-rs [atwinc1500-rs]: https://crates.io/crates/atwinc1500 +[HX711]: https://github.com/DaneSlattery/hx711 ## no-std crates From 236821200b25e0bd78340fd0ffc51174362f7324 Mon Sep 17 00:00:00 2001 From: Barrett Date: Tue, 19 Dec 2023 23:33:18 -0600 Subject: [PATCH 10/12] drivers: Add MAX6675 thermocouple digitizer This commit adds my new MAX6675 thermocouple digitizer driver to the list. You can find it on GitHub below: https://github.com/onkoe/max6675-hal --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 747c281..230af0c 100644 --- a/README.md +++ b/README.md @@ -787,6 +787,7 @@ Otherwise please add it to the [WIP section](#WIP) below. 1. [KXCJ9] - I2C - KXCJ9/KXCJB 3-axis accelerometers - [Intro blog post][24] - ![crates.io](https://img.shields.io/crates/v/kxcj9.svg) 1. [L3GD20] - SPI - Gyroscope - [Intro blog post][1&2] - ![crates.io](https://img.shields.io/crates/v/l3gd20.svg) 1. [LSM303DLHC] - I2C - Accelerometer + compass (magnetometer) - [Intro blog post][1&2] - ![crates.io](https://img.shields.io/crates/v/lsm303dlhc.svg) +1. [MAX6675] - SPI - A driver for the MAX6675 digital thermocouple converter - [Intro blog post][73] - ![crates.io](https://img.shields.io/crates/v/max6675-hal.svg) 1. [MAX6955] - I2C - Driver for Alphanumeric LED display driver - [Intro blog post][46] - ![crates.io](https://img.shields.io/crates/v/max6955.svg) 1. [MAX116xx-10bit] - SPI - Driver for the MAX11619-MAX11621, MAX11624 and MAX11625 10-bit ADCs - [Intro blog post][59] - ![crates.io](https://img.shields.io/crates/v/max116xx-10bit.svg) 1. [MCP25LCXX] - SPI - Driver for Microchip's 25LC series of EEPROMs - ![crates.io](https://img.shields.io/crates/v/microchip-eeprom-25lcxx.svg) @@ -906,6 +907,7 @@ Otherwise please add it to the [WIP section](#WIP) below. [70]: https://github.com/cfrenette/bma400-rs [71]: https://github.com/FloppyDisck/i2c-multiplexer [72]: https://github.com/FloppyDisck/SHT31-rs +[73]: https://barretts.club/posts/max6675-hal/ [AD983x]: https://crates.io/crates/ad983x [adafruit-alphanum4]: https://crates.io/crates/adafruit-alphanum4 @@ -938,6 +940,7 @@ Otherwise please add it to the [WIP section](#WIP) below. [KXCJ9]: https://crates.io/crates/kxcj9 [L3GD20]: https://crates.io/crates/l3gd20 [LSM303DLHC]: https://crates.io/crates/lsm303dlhc +[MAX6675]: https://crates.io/crates/max6675-hal [MAX6955]: https://crates.io/crates/max6955 [MAX116xx-10bit]: https://crates.io/crates/max116xx-10bit [MCP25LCXX]: https://crates.io/crates/microchip-eeprom-25lcxx From c689c6657d1dc5ae534ca3d5b9782f480a886879 Mon Sep 17 00:00:00 2001 From: Barrett Date: Tue, 19 Dec 2023 23:59:47 -0600 Subject: [PATCH 11/12] fix: Various grammar/spelling errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I have a Grammarly extension in my IDE, making most things here errors. However, it caught some hard-to-find issues that look a lot better fixed! Please feel free to refuse this commit if you're uninterested in the changes. ☺️ --- README.md | 84 +++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 230af0c..cd57c78 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) -This is a curated list of resources related to embedded and low-level programming in the programming language Rust, including a list of useful crates. +This is a curated list of resources related to embedded and low-level programming in the Rust programming language, including a selection of useful crates. [](http://www.rust-embedded.org) @@ -16,7 +16,7 @@ This project is developed and maintained by the [Resources team][team]. - [Table of contents](#table-of-contents) - [Community](#community) - [Community Chat Rooms](#community-chat-rooms) - - [Books, blogs and training materials](#books-blogs-and-training-materials) + - [Books, blogs, and training materials](#books-blogs-and-training-materials) - [Tools](#tools) - [Real-time](#real-time) - [Real-time Operating System (RTOS)](#real-time-operating-system-rtos) @@ -91,7 +91,7 @@ This project is developed and maintained by the [Resources team][team]. ## Community -In 2018 the Rust community created an embedded working group to help drive adoption in the Rust ecosystem. +In 2018, the Rust community created an embedded working group to help drive adoption in the Rust ecosystem. - [Embedded WG](https://github.com/rust-embedded/wg/), including newsletters with progress updates. @@ -128,13 +128,13 @@ In 2018 the Rust community created an embedded working group to help drive adopt [#atsamd-rs:gitter.im]: https://matrix.to/#/#atsamd-rs_community:gitter.im [#ethercrab:matrix.org]: https://matrix.to/#/#ethercrab:matrix.org -## Books, blogs and training materials +## Books, blogs, and training materials - [The Embedded Rust Book](https://rust-embedded.github.io/book/) - An introductory book about using the Rust Programming Language on "Bare Metal" embedded systems, such as Microcontrollers. -- [The Rust on ESP Book](https://esp-rs.github.io/book/) - The goal of this book is to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules. +- [The Rust on ESP Book](https://esp-rs.github.io/book/) - This book aims to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules. - [Discovery](https://rust-embedded.github.io/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](https://docs.rs/cortex-m-quickstart/0.3.1/cortex_m_quickstart/) by @japaric – a template and introduction to embedded Rust, suitable for developers familiar to embedded development but new to embedded Rust. -- [Writing an OS in rust](https://os.phil-opp.com/) A blog series creating a small operating system in Rust +- [Cortex-M Quickstart](https://docs.rs/cortex-m-quickstart/0.3.1/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](https://os.phil-opp.com/) A blog series creating a small operating system in Rust - [MicroRust](https://droogmic.github.io/microrust/) Introductory book for embedded development in Rust on the micro:bit. - [Physical Computing With Rust](https://rahul-thakoor.github.io/physical-computing-rust/) A (WIP) guide to physical computing with Rust on the Raspberry Pi. - [Writing an embedded OS in Rust on the Raspberry Pi](https://github.com/rust-embedded/rust-raspi3-OS-tutorials) 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. @@ -143,7 +143,7 @@ In 2018 the Rust community created an embedded working group to help drive adopt - [Ferrous Systems' Knurling Sessions](https://knurling.ferrous-systems.com/sessions/) are hands-on embedded projects that explore specific concepts using generally available hardware, building full systems and components using microcontrollers, sensors, and actuators. - [Ferrous Systems' Embedded Rust on Espressif](https://esp-rs.github.io/std-training) - Training Material for learning to use Embedded Rust with the Espressif ESP32-C3. - [DSP on STM32F407G-DISC1](https://github.com/jacobrosenthal/dsp-discoveryf4-rust/) Unofficial oxidization of the [Digital Signal Processing using Arm Cortex-M based Microcontrollers: Theory and Practice](https://www.amazon.com/Digital-Signal-Processing-Cortex-M-Microcontrollers/dp/1911531166) 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)](https://gill.net.in/posts/stm32-pcb-sailing-and-rust/) A step by step story/guide to build STM32 based PCB and program it with rust for fun and games. +- [Building a sailing starter board with Rust (RTIC)](https://gill.net.in/posts/stm32-pcb-sailing-and-rust/) 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](https://apollolabsblog.hashnode.dev/series/stm32f4-embedded-rust-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](https://www.youtube.com/playlist?list=PLP_X41VhYn5X6Wwjnm0bRwI3n2pdaszxU) Various livestreams with Embedded Rust live coding - [ESP32-C3 Rust Tutorials](https://youtube.com/playlist?list=PLkch9g9DEE0Lkm1LqcD7pZNDmXEczOo-a) Short videos and [Github project](https://github.com/shanemmattner/ESP32-C3_Rust_Tutorials) implementing various peripherals of the ESP32-C3 with the end goal of creating a complete data logger application. @@ -153,8 +153,8 @@ In 2018 the Rust community created an embedded working group to help drive adopt ## Tools -- [xargo](https://github.com/japaric/xargo) Rust package manager with support for non-default std libraries — build rust runtime for your own embedded system. - - xargo is great but it's in maintenance mode, [cargo-xbuild](https://github.com/rust-osdev/cargo-xbuild) is catching up as intended replacement. +- [xargo](https://github.com/japaric/xargo) Rust package manager with support for non-default std libraries — build Rust runtime for your embedded system. + - xargo is great, but since it's in maintenance mode, [cargo-xbuild](https://github.com/rust-osdev/cargo-xbuild) is catching up as its intended replacement. - [svd2rust](https://github.com/japaric/svd2rust) Generate Rust structs with register mappings from SVD files. - [edc2svd](https://github.com/kiffie/edc2svd) Generate SVD files for PIC32 devices from EDC files. - ![crates.io](https://img.shields.io/crates/v/edc2svd.svg) - [embedded-hal-mock] Mock implementation of `embedded-hal` traits for testing without accessing real hardware. - ![crates.io](https://img.shields.io/crates/v/embedded-hal-mock.svg) @@ -163,7 +163,7 @@ In 2018 the Rust community created an embedded working group to help drive adopt - [bobbin-cli](https://github.com/bobbin-rs/bobbin-cli) A Rust command line tool to simplify embedded development and deployment. - [ferros](https://github.com/auxoncorp/ferros) A Rust-based userland which also adds compile-time assurances to seL4 development. - [cargo-flash](https://probe.rs/docs/tools/cargo-flash/) A small cargo subcommand to download your binary to your target chip. - ![crates.io](https://img.shields.io/crates/v/cargo-flash.svg) -- [cargo-embed](https://probe.rs/docs/tools/cargo-embed/) A superset of cargo-flash with additional useful features like configuration file support, a RTT terminal or a GDB server. - ![crates.io](https://img.shields.io/crates/v/cargo-embed.svg) +- [cargo-embed](https://probe.rs/docs/tools/cargo-embed/) A superset of cargo-flash with additional useful features like configuration file support, an RTT terminal, or a GDB server. - ![crates.io](https://img.shields.io/crates/v/cargo-embed.svg) - [cargo-hf2](https://github.com/jacobrosenthal/hf2-rs) A small cargo subcommand to download cargo builds to Microsoft UF2 bootloaders via HID USB . - ![crates.io](https://img.shields.io/crates/v/cargo-hf2.svg) - [cargo-bloat](https://github.com/RazrFalcon/cargo-bloat) Find out what takes most of the space in your executable. - [cargo-call-stack](https://crates.io/crates/cargo-call-stack) Static, whole program stack usage analyzer. @@ -192,11 +192,11 @@ In 2018 the Rust community created an embedded working group to help drive adopt - [FreeRTOS-rust](https://github.com/lobaro/FreeRTOS-rust) Rust interface for FreeRTOS with Rust entry point and build support crate. - [RIOT-OS](https://doc.riot-os.org/using-rust.html) directly supports applications written in Rust, both in terms of build system integration and by having safe and idiomatic wrappers. - [Tock](https://www.tockos.org) An embedded operating system designed for running multiple concurrent, mutually distrustful applications on low-memory and low-power microcontrollers -- [Hubris](https://github.com/oxidecomputer/hubris) A real-time operating systems built by Oxide Computer to run the Service Controller processor in the mainboards of their rack-mount servers. +- [Hubris](https://github.com/oxidecomputer/hubris) A real-time operating system built by Oxide Computer to run the Service Controller processor in the mainboards of their rack-mount servers. ### Real-time tools -- [RTIC v1.0](https://rtic.rs/1/book/en/) Real-Time Interrupt-driven Concurrency — A concurrency framework for building real time systems: +- [RTIC v1.0](https://rtic.rs/1/book/en/) Real-Time Interrupt-driven Concurrency — A concurrency framework for building real-time systems: - [cortex-m rtic](https://github.com/rtic-rs/cortex-m-rtic) RTIC framework for ARM Cortex-M microcontrollers - [msp430 rtfm](https://github.com/japaric/msp430-rtfm) RTFM framework for MSP430 MCUs @@ -454,7 +454,7 @@ Also check the list of [STMicroelectronics board support crates][stm-bsc]! [Nucleo-F042K6]: http://www.st.com/en/evaluation-tools/nucleo-f042k6.html - [`stm32f1xx-hal`](https://github.com/stm32-rs/stm32f1xx-hal) - ![crates.io](https://img.shields.io/crates/v/stm32f1xx-hal.svg) - - Can be run on boards like the [Blue pill], [Nucleo-F103RB] and similar boards + - Can be run on boards like the [Blue pill], [Nucleo-F103RB], and similar boards [Blue pill]: https://stm32duinoforum.com/forum/wiki_subdomain/index_title_Blue_Pill.html [Nucleo-F103RB]: http://www.st.com/en/evaluation-tools/nucleo-f103rb.html @@ -499,7 +499,7 @@ Also check the list of [STMicroelectronics board support crates][stm-bsc]! ### Silicon Labs - [`tomu-hal`](https://github.com/fudanchii/imtomu-rs) - - HAL implementation targeted for [Tomu] USB board with EFM32HG309F64 ARMv6-M core. Has support to configure [tomu bootloader] directly from application via `toboot_config` macro. + - HAL implementation targeted for [Tomu] USB board with EFM32HG309F64 ARMv6-M core. Has support to configure [tomu bootloader] directly from an application via the `toboot_config` macro. [Tomu]: https://tomu.im/ [tomu bootloader]: https://github.com/im-tomu/tomu-bootloader @@ -532,17 +532,17 @@ Crates tailored for general CPU architectures. ### ARM -- [`cortex-a`](https://github.com/andre-richter/cortex-a) Low level access to Cortex-A processors (early state) - ![crates.io](https://img.shields.io/crates/v/cortex-a.svg) -- [`cortex-m`](https://github.com/japaric/cortex-m) Low level access to Cortex-M processors - ![crates.io](https://img.shields.io/crates/v/cortex-m.svg) +- [`cortex-a`](https://github.com/andre-richter/cortex-a) Low-level access to Cortex-A processors (early state) - ![crates.io](https://img.shields.io/crates/v/cortex-a.svg) +- [`cortex-m`](https://github.com/japaric/cortex-m) Low-level access to Cortex-M processors - ![crates.io](https://img.shields.io/crates/v/cortex-m.svg) ### RISC-V -- [`riscv`](https://github.com/rust-embedded/riscv) Low level access to RISC-V processors - ![crates.io](https://img.shields.io/crates/v/riscv.svg) +- [`riscv`](https://github.com/rust-embedded/riscv) Low-level access to RISC-V processors - ![crates.io](https://img.shields.io/crates/v/riscv.svg) ### MIPS -- [`mips`](https://github.com/Harry-Chen/rust-mips) Low level access to MIPS32 processors - ![crates.io](https://img.shields.io/crates/v/mips.svg) -- [`mips-mcu`](https://github.com/kiffie/pic32-rs/tree/master/mips-mcu) Low level access to MIPS MCU cores - ![crates.io](https://img.shields.io/crates/v/mips-mcu.svg) +- [`mips`](https://github.com/Harry-Chen/rust-mips) Low-level access to MIPS32 processors - ![crates.io](https://img.shields.io/crates/v/mips.svg) +- [`mips-mcu`](https://github.com/kiffie/pic32-rs/tree/master/mips-mcu) Low-level access to MIPS MCU cores - ![crates.io](https://img.shields.io/crates/v/mips-mcu.svg) ## Board support crates @@ -649,7 +649,7 @@ Crates tailored for specific boards. ### Raspberry Pi -- [`rp-pico`](https://github.com/rp-rs/rp-hal) - Board Support Crate for the RP2040 based Raspberry Pi Pico. +- [`rp-pico`](https://github.com/rp-rs/rp-hal) - Board Support Crate for the RP2040-based Raspberry Pi Pico. ### Sparkfun @@ -697,7 +697,7 @@ Crates tailored for specific boards. [Nucleo-F401RE]: https://www.st.com/en/evaluation-tools/nucleo-f401re.html ### Teensy -- [`teensy4-rs`](https://github.com/mciantyre/teensy4-rs) Board Support create for the [Teensy 4.0] +- [`teensy4-rs`](https://github.com/mciantyre/teensy4-rs) Board Support crate for the [Teensy 4.0] ### Vorago @@ -727,14 +727,14 @@ Crates tailored for specific boards. ## Component abstraction crates The following crates provide HAL-like abstractions for subcomponents of embedded -devices which go beyond what is available in [`embedded-hal`]: +devices that go beyond what is available in [`embedded-hal`]: - [`accelerometer`](https://github.com/NeoBirth/accelerometer.rs) - Generic accelerometer support, including traits and types for taking readings from 2 or 3-axis accelerometers and tracking device orientations - ![crates.io](https://img.shields.io/crates/v/accelerometer.svg) - [`embedded-graphics`]: 2D drawing library for any size display - ![crates.io](https://img.shields.io/crates/v/embedded-graphics.svg) - [`radio`](https://github.com/ryankurte/rust-radio) - Generic radio transceiver traits, mocks, and helpers - ![crates.io](https://img.shields.io/crates/v/radio.svg) - [`smart-leds`](https://github.com/smart-leds-rs): Support for addressable LEDs including WS2812 and APA102 - [`usb-device`](https://github.com/mvirkkunen/usb-device): Abstraction layer between USB peripheral crates & USB class crates - ![crates.io](https://img.shields.io/crates/v/usb-device.svg) -- [`atat`](https://github.com/BlackbirdHQ/atat): Abstraction crate to ease writting AT based driver crates - ![crates.io](https://img.shields.io/crates/v/atat.svg) +- [`atat`](https://github.com/BlackbirdHQ/atat): Abstraction crate to ease writing AT based driver crates - ![crates.io](https://img.shields.io/crates/v/atat.svg) - [`embedded-nal`](https://github.com/rust-embedded-community/embedded-nal): An Embedded Network Abstraction Layer - ![crates.io](https://img.shields.io/crates/v/embedded-nal.svg) - [`embedded-storage`](https://github.com/rust-embedded-community/embedded-storage): An Embedded Storage Abstraction Layer - [`switch-hal`](https://github.com/rubberduck203/switch-hal): An "on"/"off" abstraction for input and output switches - ![crates.io](https://img.shields.io/crates/v/switch-hal.svg) @@ -748,11 +748,11 @@ traits][hal-impl]. [hal-impl]: #hal-implementation-crates -The list below contains drivers that have achieved the "released" status. In order to add a driver -to this list, please ensure that your driver has a short blog post, article or sufficiently -explanatory README showing an example of its use. Ideally this post would demonstrate using the +The list below contains drivers that have achieved the "released" status. To add a driver +to this list, please ensure that your driver has a short blog post, article, or sufficiently +explanatory README showing an example of its use. Ideally, this post would demonstrate using the device in a small project so that a Rust and/or embedded newcomer can also understand it. -Otherwise please add it to the [WIP section](#WIP) below. +Otherwise, please add it to the [WIP section](#WIP) below. 1. [AD983x] - SPI - AD9833/AD9837 waveform generators / DDS - [Intro blog post][25] - ![crates.io](https://img.shields.io/crates/v/ad983x.svg) 1. [adafruit-alphanum4] - I2C - Driver for [Adafruit 14-segment LED Alphanumeric Backpack][29] based on the ht16k33 chip - ![crates.io](https://img.shields.io/crates/v/adafruit-alphanum4.svg) @@ -1001,7 +1001,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [AD9850] - Embedded driver for the AD9850 DDS synthesizer chip - ![crates.io](https://img.shields.io/crates/v/ad9850.svg) 1. [AFE4400] - SPI - Pulse oximeter -1. [APDS9960] - I2C - Proximity, ambient light, RGB and gesture sensor - ![crates.io](https://img.shields.io/crates/v/apds9960.svg) +1. [APDS9960] - I2C - Proximity, ambient light, RGB, and gesture sensor - ![crates.io](https://img.shields.io/crates/v/apds9960.svg) 1. [AS5048A] - SPI - AMS AS5048A Magnetic Rotary Encoder 1. [AXP209] - I2C - Power management unit 1. [BH1750] - I2C - ambient light sensor (lux meter) @@ -1010,8 +1010,8 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [BMI160] - I2C / SPI - Inertial Measurement Unit - ![crates.io](https://img.shields.io/crates/v/bmi160.svg) 1. [BMP280] - A platform agnostic driver to interface with the BMP280 pressure sensor ![crates.io](https://img.shields.io/crates/v/bmp280-ehal.svg) 1. [CC1101] - SPI - Sub-1GHz RF Transceiver - ![crates.io](https://img.shields.io/crates/v/cc1101.svg) -1. [DS3231] - I2C - real time clock -1. [DS3234] - SPI - Real time clock +1. [DS3231] - I2C - real-time clock +1. [DS3234] - SPI - Real-time clock 1. [DS323x] - I2C/SPI - Real-time clocks (RTC): DS3231, DS3232 and DS3234 - ![crates.io](https://img.shields.io/crates/v/ds323x.svg) 1. [epd-waveshare] - SPI - driver for E-Paper Modules from Waveshare ![crates.io](https://img.shields.io/crates/v/epd-waveshare.svg) 1. [embedded-morse] - Output morse messages - ![crates.io](https://img.shields.io/crates/v/embedded-morse.svg) @@ -1069,7 +1069,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [SHT3x] - I2C - Temperature / humidity sensors 1. [SI5351] - I2C - clock generator 1. [SI7021] - I2C - Humidity and temperature sensor -1. [SPL06-007] - I2C - Pressure and temerature sensor - ![crates.io](https://img.shields.io/crates/v/spl06-007.svg) +1. [SPL06-007] - I2C - Pressure and temperature sensor - ![crates.io](https://img.shields.io/crates/v/spl06-007.svg) 1. [spi-memory] - SPI - A generic driver for various SPI Flash and EEPROM chips - ![crates.io](https://img.shields.io/crates/v/spi-memory.svg) 1. [SSD1320] - SPI - Graphical OLED display controller - ![crates.io](https://img.shields.io/crates/v/ssd1320.svg) 1. [SSD1322] - SPI - Graphical OLED display controller - ![crates.io](https://img.shields.io/crates/v/ssd1322.svg) @@ -1092,7 +1092,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [xCA9548A] - I2C - I2C switches/multiplexers: TCA9548A, PCA9548A - ![crates.io](https://img.shields.io/crates/v/xca9548a.svg) 1. [ublox-cellular-rs] - Serial - Cellular driver for the full Ublox cellular serial based family 1. [atwinc1500-rs] - SPI - A host driver for the Atwinc1500 network controller -1. [HX711] - GPIO - An interrupt-based driver for the HX711 Load Cell Amplifer IC. no-std. +1. [HX711] - GPIO - An interrupt-based driver for the HX711 Load Cell Amplifier IC. no-std. [AD9850]: https://crates.io/crates/ad9850 [AFE4400]: https://github.com/ReeceStevens/afe4400 @@ -1193,13 +1193,13 @@ Work in progress drivers. Help the authors make these crates awesome! ## no-std crates -[`#![no_std]` crates][no-std-category] designed to run on resource constrained devices. +[`#![no_std]` crates][no-std-category] designed to run on resource-constrained devices. 1. [adskalman](https://crates.io/crates/adskalman): Kalman filter and Rauch-Tung-Striebel smoothing implementation. ![crates.io](https://img.shields.io/crates/v/adskalman.svg) 1. [atomic](https://crates.io/crates/atomic): Generic Atomic wrapper type. ![crates.io](https://img.shields.io/crates/v/atomic.svg) 1. [bbqueue](https://crates.io/crates/bbqueue): A SPSC, statically allocatable queue based on BipBuffers suitable for DMA transfers - ![crates.io](https://img.shields.io/crates/v/bbqueue.svg) 1. [bitmatch]: A crate that allows you to match, bind, and pack the individual bits of integers. - ![crates.io](https://img.shields.io/crates/v/bitmatch.svg) -1. [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. ![crates.io](https://img.shields.io/crates/v/biquad.svg) +1. [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. ![crates.io](https://img.shields.io/crates/v/biquad.svg) 1. [bit_field](https://crates.io/crates/bit_field): manipulating bitfields and bitarrays - ![crates.io](https://img.shields.io/crates/v/bit_field.svg) 1. [bluetooth-hci](https://crates.io/crates/bluetooth-hci): device-independent Bluetooth Host-Controller Interface implementation. ![crates.io](https://img.shields.io/crates/v/bluetooth-hci.svg) 1. [bounded-registers](https://crates.io/crates/bounded-registers) A high-assurance memory-mapped register code generation and interaction library. `bounded-registers` provides a Tock-like API for MMIO registers with the addition of type-based bounds checking. - ![crates.io](https://img.shields.io/crates/v/bounded-registers.svg) @@ -1233,7 +1233,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [inverted-pin](https://crates.io/crates/inverted-pin): Implementations of the input/output pin traits with inverted logic. ![crates.io](https://img.shields.io/crates/v/inverted-pin.svg) 1. [irq](https://crates.io/crates/irq): utilities for writing interrupt handlers (allows moving data into interrupts, and sharing data between them) - ![crates.io](https://img.shields.io/crates/v/irq.svg) 1. [lorawan-encoding](https://github.com/ivajloip/rust-lorawan/tree/master/encoding): A LoRaWAN packet codec. -1. [lorawan-device](https://github.com/ivajloip/rust-lorawan/tree/master/device): A LoRaWAN MAC implementation supporting both event driven and async mode. +1. [lorawan-device](https://github.com/ivajloip/rust-lorawan/tree/master/device): A LoRaWAN MAC implementation supporting both event-driven and async mode. 1. [managed](https://crates.io/crates/managed): provides `ManagedSlice`, `ManagedMap` backed by either their std counterparts or fixed-size buffers for `#![no_std]`. - ![crates.io](https://img.shields.io/crates/v/managed.svg) 1. [menu]: A basic command-line interface library. Has nested menus and basic help functionality. ![crates.io](https://img.shields.io/crates/v/menu.svg) 1. [mqtt-sn](https://crates.io/crates/mqtt-sn): Implementation of the MQTT-SN protocol - ![crates.io](https://img.shields.io/crates/v/mqtt-sn.svg) @@ -1247,7 +1247,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [num-format](https://crates.io/crates/num-format): Crate for producing string representations of numbers, formatted according to international standards, e.g. "1,000,000" for US English - ![crates.io](https://img.shields.io/crates/v/num-format.svg) 1. [`panic-persist`]: A panic handler crate inspired by `panic-ramdump` 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. - ![crates.io](https://img.shields.io/crates/v/panic-persist.svg) 1. [pc-keyboard]: A PS/2 keyboard protocol driver. Transport (bit-banging or SPI) agnostic, but can convert Set 2 Scancodes into Unicode. ![crates.io](https://img.shields.io/crates/v/pc-keyboard.svg) -1. [qei](https://crates.io/crates/qei) : A qei wrapper that allows you to extend your qei timers from a 16 bit integer to a 64 bit integer. - ![crates.io](https://img.shields.io/crates/v/qei.svg) +1. [qei](https://crates.io/crates/qei) : A qei wrapper that allows you to extend your qei timers from a 16-bit integer to a 64-bit integer. - ![crates.io](https://img.shields.io/crates/v/qei.svg) 1. [qemu-exit]: Quit a running QEMU session with user-defined exit code. Useful for unit or integration tests using QEMU. - ![crates.io](https://img.shields.io/crates/v/qemu-exit.svg) 1. [RampMaker](https://crates.io/crates/ramp-maker): Stepper Motor Acceleration Ramp Generator - ![crates.io](https://img.shields.io/crates/v/ramp-maker.svg) 1. [register-rs](https://github.com/rust-embedded/register-rs): Unified interface for MMIO and CPU registers. Provides type-safe bitfield manipulation. `register-rs` 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. - ![crates.io](https://img.shields.io/crates/v/register.svg) @@ -1299,17 +1299,17 @@ Work in progress crates. Help the authors make these crates awesome! - [rmk](https://github.com/HaoboGu/rmk): Mechanical keyboard firmware for stm32/rp2040, supports vial/dynamic keymap/eeprom, written in Rust - [anne-key](https://github.com/ah-/anne-key): Alternate keyboard firmware for the Obins ANNE Pro - [μLA](https://github.com/dotcypress/ula): Micro Logic Analyzer for RP2040 -- [air-gradient-pro-rs](https://github.com/jonlamb-gh/air-gradient-pro-rs): Bootloader, firmware and CLI tools for the AirGradient PRO +- [air-gradient-pro-rs](https://github.com/jonlamb-gh/air-gradient-pro-rs): Bootloader, firmware, and CLI tools for the AirGradient PRO - [Stabilizer](https://github.com/quartiq/stabilizer): Firmware for a DSP tool used in quantum physics experimentation, includes telemetry via MQTT and run-time configuration - [Booster](https://github.com/quartiq/booster): Firmware for an RF power amplifier, including telemetry via MQTT and run-time configuration - [Thermostat EEM](https://github.com/quartiq/thermostat-eem): Firmware for a multi-channel temperature controller used in physics experiments -- [Card/IO ECG](https://github.com/card-io-ecg/card-io-fw): Firmware for a business-card sized ECG device with Wifi connectivity +- [Card/IO ECG](https://github.com/card-io-ecg/card-io-fw): Firmware for a business-card-sized ECG device with Wifi connectivity - [BillMcok](https://github.com/pmnxis/billmock-app-rs): Firmware for credit card terminal add-on hardware to install on Korean arcade machines -- [LuLuu](https://github.com/fu5ha/luluu): Firmware for a custom RP2040-based display controller which streams animated images from a microSD card to a small LCD display. +- [LuLuu](https://github.com/fu5ha/luluu): Firmware for a custom RP2040-based display controller that streams animated images from a microSD card to a small LCD display. -## Old books, blogs and training materials +## Old books, blogs, and training materials -These materials may be outdated and reflect earlier practices, but might still be useful for reference. +These materials may be outdated and reflect earlier practices, but they might still be helpful for reference. - [Exploring Rust on Teensy](https://branan.github.io/teensy/) by @branan — Beginner set of articles on getting into embedded dev in Rust. - [Pragmatic Bare Metal Rust](http://www.hashmismatch.net/pragmatic-bare-metal-rust/) A starter article about starting Rust development on STM32 microcontrollers (cubeMX + FFI). From 8d98beb5469083de0fa4cf4a7df78aca9c40d873 Mon Sep 17 00:00:00 2001 From: decryphe <12104091+decryphe@users.noreply.github.com> Date: Tue, 19 Dec 2023 14:31:01 +0100 Subject: [PATCH 12/12] Add MS5637 temperature and pressure sensor --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cd57c78..540ca4b 100644 --- a/README.md +++ b/README.md @@ -1056,6 +1056,7 @@ Work in progress drivers. Help the authors make these crates awesome! 1. [motor-driver] - Motor drivers: L298N, TB6612FNG, etc. 1. [MPU6050] - I2C - no_std driver for the MPU6050 ![crates.io](https://img.shields.io/crates/v/mpu6050.svg) 1. [MPU9250] - no_std driver for the MPU9250 (and other MPU* devices) & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU) ![crates.io](https://img.shields.io/crates/v/mpu9250.svg) +1. [MS5637] - no_std I2C driver for the MS5637 temperature and pressure sensor ![crates.io](https://img.shields.io/crates/v/ms5637.svg) 1. [NRF24L01] - SPI - 2.4 GHz wireless communication 1. [OneWire] - 1wire - OneWire protocol implementation with drivers for devices such as [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) - ![crates.io](https://img.shields.io/crates/v/onewire.svg) 1. [PCD8544] - SPI - 48x84 pixels matrix LCD controller @@ -1153,6 +1154,7 @@ Work in progress drivers. Help the authors make these crates awesome! [motor-driver]: https://github.com/japaric/motor-driver [MPU6050]: https://crates.io/crates/mpu6050 [MPU9250]: https://crates.io/crates/mpu9250 +[MS5637]: https://crates.io/crates/ms5637 [NRF24L01]: https://github.com/maikelwever/nrf24l01 [OneWire]: https://crates.io/crates/onewire [PCD8544]: https://github.com/pcein/pcd8544