finds.dev← search

// the find

nrf-rs/nrf-hal

★ 594 · Rust · Apache-2.0 · updated May 2026

A Rust HAL for the nRF family of devices

A Rust HAL implementation for Nordic Semiconductor's nRF51, nRF52, and nRF91 microcontroller families, built on top of the embedded-hal traits. This is the go-to crate if you're writing no_std Rust firmware for nRF52840 (common in BLE projects) or nRF9160 (LTE-M/NB-IoT). Not for beginners to embedded Rust, but solid for anyone who already knows the ecosystem.

Per-chip crates (nrf52840-hal, nrf9160-hal, etc.) mean you only pull in what you need and get accurate feature flags for each silicon variant. The PPI (Programmable Peripheral Interconnect) coverage is unusually good — per-chip event/task files that let you wire peripherals together without CPU involvement, which most HALs gloss over. Hardware-on-target tests in nrf52840-hal-tests are real tests against real silicon, not simulated, which actually catches the subtle timing bugs that matter. The xtask build automation handles the awkward multi-target CI story cleanly.

No nRF54 support at all — the README explicitly punts to embassy-nrf for that, which means this crate is aging out as Nordic pushes newer silicon. The async story is absent: everything is blocking/polling, so if you want async with RTIC 2.x or Embassy you're on your own or switching ecosystems entirely. The Cargo.toml setup requires manually copying and editing Cargo.example.toml, which is a friction point that will trip up anyone new to the repo. Activity has been tapering — 594 stars for a chip family this popular suggests embassy-nrf has captured most new projects.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →