The Embedded Working Group Newsletter - 25
2020-08-24This is the 25th newsletter of the Embedded WG where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!
As a note, some of these stories have happened over the past months. We're still working on catching up, but wanted to share them with you!
Discuss on #rust-embedded:matrix.org, users.rust-lang.org, on twitter, or on reddit!
If you want to mention something in the next newsletter, send us a pull request!
Highlights
- @hannobraun wrote an article about his DW1000 driver.
- @andre-richter added a new tutorial to the Operating System development tutorials in Rust on the Raspberry Pi series:
- Tutorial 14: Exceptions Part 2: Peripheral IRQs - Including drivers for the BCM and GICv2 interrupt controllers.
- In recent nightlies,
rust-std
support for the twobare-metal
aarch64
targets has landed.- Add them using
rustup target add aarch64-unknown-none-softfloat
orrustup target add aarch64-unknown-none
. - See it in action here for building a kernel without the need for third-party tools like
xbuild
orxargo
.
- Add them using
- @therealprof wrote an introduction article about the "USB-C pill".
- @bobmcwhirter wrote an article about using an ESP8266 as a WiFi offload with an STM32F401RE
- Ferrous Systems released defmt, a highly efficient Rust logging framework for embedded devices
Embedded Projects
- @rubberduck203 released the experimental switch-hal crate, which provides a zero-cost abstraction over Active High/Active Low GPIO, allowing application developers to more clearly express their intent and for drivers to avoid making runtime decisions about driving a line high or low based on the pin's active level.
- @rubberduck203 has also released the stm32f3-discovery board support crate as an alternative to the unmaintained
f3
crate. - The stm32f3-discovery-quickstart template has been updated to utilize both the stm32f3-discovery board support crate and the switch-hal crate. It also now includes VS Code tasks for cleaning, building examples, and building in release mode.
- @proman21 has released a beta version of samd-timer, an abstraction for the Timer peripherals present on Atmel SAM microcontrollers. This library provides lower-level control over these timers than atsamd-hal, while remaining compatible with the HAL clock system.
- @dbrgn and @rnestler released a first version of the shtcx embedded-hal driver for Sensirion SHTCx series humidity/temperature sensors. The driver is feature-complete, but currently supports only a blocking API. The crate will be updated with an alternative non-blocking API soon.
- @ra-kete released the microfft crate, a library for computing fast fourier transforms on embedded devices.
- @dajamante added an obstacle avoiding robot with more details in this article.
- @therealprof released the display-interface crate, an abstraction over the different possibilities to drive a display.
- @bugadani released the embedded-text crate, a text rendering library built on top of embedded-graphics.
- @bobmcwhirter released the drogue-esp8266, a WiFi-offload embedded-nal implementation crate.
If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to the next newsletter, we would love to show it off!
embedded-hal
Ecosystem Crates
As part of the Weekly Driver Initiative, crates that are part of the embedded-hal
ecosystem are now tracked in the Awesome Embedded Rust repository. Here is a current snapshot of what is available there:
Type | Status | Count | Diff |
---|---|---|---|
Peripheral Access Crates | released | 47 | +1 |
HAL Impl Crates | released | 33 | 0 |
Board Support Crates | released | 38 | 0 |
Driver Crates Released | released | 52 | +7 |
Driver Crates WIP | WIP | 85 | +1 |
no-std crates | released | 41 | 0 |
no-std crates WIP | WIP | 3 | 0 |