For a firmware framework for programming microcontrollers in Rust, the strongest matches are embassy-rs/embassy (Embassy is exactly the async embedded framework you're looking), hathach/tinyusb (TinyUSB is a USB device and host stack for) and raspberrypi/pico-sdk (This is a C/C++ SDK for Raspberry Pi microcontrollers). flipper-xfw/xtreme-firmware and espressif/esp-idf round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
These open-source frameworks provide hardware abstraction layers and runtime support for developing embedded applications using Rust.
Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It enables the execution of multiple concurrent tasks to maximize energy efficiency and CPU usage, utilizing an async executor that puts the processor to sleep when idle. The framework includes a comprehensive set of embedded components, featuring a hardware abstraction layer for peripherals like GPIO, SPI, I2C, and UART, alongside a TCP/IP network stack and a USB device stack. It also provides a Bluetooth Low Energy host stack for wireless communication and a bootloader framework t
Embassy is exactly the async embedded framework you're looking for: it provides a hardware abstraction layer (HAL), a USB device stack, no_std/bare-metal support, and a built-in async/await runtime for microcontrollers, covering all the core features described.
TinyUSB
TinyUSB is a USB device and host stack for embedded systems written in C, so it's a useful component for firmware but not a Rust-based firmware framework with HAL, PAC, or async runtime.
The pico-sdk is a software development kit for creating C and C++ applications on RP2040 and RP2350 hardware platforms. It functions as an embedded development kit that provides hardware abstraction layers and drivers to interface with microcontroller peripherals and registers. The project utilizes a CMake build system to manage the compilation of source code into multiple binary formats, including UF2, ELF, and HEX images. This environment coordinates the build and link processes to ensure the resulting firmware is correctly tailored for the target hardware. The toolkit covers embedded hard
This is a C/C++ SDK for Raspberry Pi microcontrollers with hardware abstraction layers and build tooling, but you explicitly want a Rust-based embedded framework, so it is from a different language ecosystem and not a match for Rust-centric development.
Xtreme-Firmware is a custom operating system for the Flipper Zero designed to expand hardware capabilities and remove software restrictions. It functions as a multi-protocol signal emulator for capturing and replaying RFID, NFC, Sub-GHz, and Infrared signals to test hardware security. The project features a specialized USB HID attack framework for sending keystroke payloads and spoofing device identifiers over USB and Bluetooth. It also includes a WiFi penetration testing suite for scanning, sniffing, and sending deauthentication frames using a wireless development board. Broad capabilities
This is a custom C-based firmware for the Flipper Zero device, not a Rust development framework for writing firmware on microcontrollers, so it lacks the multi-MCU HAL, PAC, and no_std Rust tooling you are looking for.
The Espressif SoC Development Framework is a comprehensive toolset for developing, compiling, and flashing applications targeting Espressif system-on-chips. It serves as an embedded toolchain orchestrator and a hardware abstraction layer that simplifies the control of low-level peripherals, memory mapping, and chip-specific registers. The framework provides a dedicated IoT connectivity stack for implementing Wi-Fi, Bluetooth, Zigbee, and Ethernet communication on microcontrollers. It also includes an embedded real-time operating system integration layer to manage multitasking and scheduling o
ESP-IDF is a C-based firmware framework for Espressif microcontrollers with HAL and peripheral access, but this search specifically targets a Rust-based framework, so it is a neighbouring category rather than a direct fit.
MicroPython is a lean implementation of Python 3 optimized to run on microcontrollers and other resource-constrained systems. It serves as a cross-platform embedded runtime and hardware abstraction layer, providing a firmware framework that maps high-level software commands to specific microcontroller registers across diverse processor architectures. The project functions as an embedded language interpreter that enables rapid prototyping on hardware through an interactive read-eval-print loop. It supports a wide range of target environments, including ARM, ESP32, STM32, RISC-V, and WebAssembl
MicroPython is a Python-based firmware runtime for microcontrollers, but this search specifically targets a Rust-based development framework, so it lacks the Rust tooling, HAL/PAC crates, and async runtime you need.
This project is an implementation of the Arduino framework for ESP32 microcontrollers, providing a core that enables firmware development using a familiar API. It functions as a microcontroller hardware abstraction layer and a firmware toolchain integration, bridging external development environments to the hardware for compilation and flashing. The system includes an embedded real-time operating system wrapper to manage multi-core execution and task scheduling, alongside a wireless communication suite for TCP/IP networking and Bluetooth Low Energy. It distinguishes itself by providing an obj
This is a C++ Arduino framework for ESP32 microcontrollers, not a Rust-based development framework, so it does not meet the core language requirement for embedded firmware development with HAL, PAC, and async runtimes.