A curated list of awesome projects, tools, and resources for Nordic Semiconductor's nRF wireless SoCs — with a focus on Bluetooth Low Energy (BLE) applications.
Nordic Semiconductor's nRF families (nRF51, nRF52, nRF53, nRF54, and the nRF91 cellular series) power a huge share of the world's Bluetooth Low Energy devices — from smartwatches and smart glasses to AI voice pendants, wireless keyboards, sensor beacons, and mesh networks. This list gathers the best open-source firmware, SDKs, tooling, hardware, and learning material for building with them.
The list is Bluetooth-first, but also covers the surrounding nRF ecosystem (SDKs, debug tools, boards, RTOSes). Multiprotocol items (Thread, Zigbee, Matter, 2.4 GHz) appear where they are part of a Bluetooth-capable project.
- Official SDKs & Documentation
- Development & Debugging Tools
- BLE Stacks & Protocol Libraries
- RTOS & Frameworks
- Language Ecosystems
- Hardware & Boards
- Applications
- Security & Reverse Engineering
- Learning Resources
- Community
- nRF Connect SDK - Nordic's flagship SDK for nRF52/53/54/70/91, built on Zephyr RTOS with Nordic's protocol stacks and samples.
- nRF5 SDK - The classic bare-metal SDK for nRF51 and nRF52, with drivers, libraries, and the SoftDevice BLE stacks.
- Zephyr RTOS - The open-source RTOS that the nRF Connect SDK is built on, with a full-featured Bluetooth LE host and controller.
- nRF Connect SDK Documentation - The official documentation portal covering the SDK, protocols, tools, and hardware.
- Asset Tracker Template - Nordic's modular, event-driven nRF Connect SDK reference application for nRF91-based cellular IoT, with cloud connectivity, GNSS, and sensor modules.
- nRF Connect for Desktop - A cross-platform suite of apps for programming, testing, and analyzing BLE and other protocols.
- nRF Connect for VS Code - The official VS Code extension pack providing a full IDE for the nRF Connect SDK.
- nRF Connect for Mobile - A powerful generic BLE scanner and central for Android and iOS, indispensable for debugging peripherals.
- Android-nRF-Toolbox - Open-source Android app demonstrating standard BLE profiles (HRM, HTM, RSC, and more).
- nRF Util - A modular command-line tool for programming, DFU packaging, and device management.
- pynrfjprog - Python bindings for the SEGGER J-Link and nrfjprog, for scripting flashing and debugging.
- probe-rs - A modern, vendor-neutral embedded debugging toolkit with excellent nRF flashing and RTT support.
- defmt - A highly efficient deferred-formatting logging framework for embedded Rust, commonly paired with probe-rs and RTT on nRF52/nRF53 targets.
- Bleak - A cross-platform asyncio BLE GATT client for Python, widely used to drive nRF peripherals and the Nordic UART Service from a host.
- blatann - A Python BLE library that drives an nRF52 running Nordic's connectivity firmware as a host-controlled central or peripheral.
- Adafruit nRF52 Bootloader - A USB bootloader for the nRF52840/nRF52833/nRF52832 with UF2 drag-and-drop, CDC serial, and DFU, used by many third-party nRF boards.
- Android-DFU-Library - Nordic's official Android library and app for updating nRF51/nRF52 firmware over BLE, embeddable via Maven Central.
- mcumgr-client - A fast Rust reimplementation of the mcumgr CLI for uploading firmware to Zephyr and nRF Connect SDK devices over SMP.
- nrfdfu-rs - A Rust command-line tool implementing Nordic's bootloader DFU protocol for flashing firmware to devices such as the nRF52840 Dongle.
- nRF Sniffer for 802.15.4 - Nordic's official firmware and Wireshark tooling that turns an nRF52840 DK or Dongle into an IEEE 802.15.4 (Thread/Zigbee) sniffer.
- Apache NimBLE - A fully open-source Bluetooth 5 host and controller that can replace the proprietary SoftDevice on nRF chips.
- SoftDevice - Nordic's precompiled, qualified BLE protocol stacks for the nRF51 and nRF52 series.
- BTstack - A portable, dual-mode Bluetooth stack with nRF52 support and a permissive license for many use cases.
- nrf-softdevice - Async Rust bindings for Nordic's SoftDevice, integrating BLE into the Embassy ecosystem.
- Rubble - An experimental pure-Rust BLE stack developed on the nRF52 series.
- TrouBLE - A pure-Rust async Bluetooth LE host stack that runs on nRF52 and nRF54 via the SoftDevice Controller, built for the Embassy ecosystem.
- nrf-sdc - Safe async Rust bindings for Nordic's SoftDevice Controller and Multiprotocol Service Layer, exposing the pre-qualified nRF52/nRF53 BLE controller.
- Zephyr - A scalable, well-supported RTOS with first-class Bluetooth LE and broad nRF board support.
- Apache Mynewt - A modular embedded OS for constrained devices, home of the NimBLE stack.
- RIOT - A friendly IoT operating system with nRF5x support and a NimBLE-based Bluetooth package.
- Arm Mbed OS - An embedded OS with BLE APIs and support for several nRF development boards.
- Adafruit nRF52 Arduino - An Arduino core for nRF52840/nRF52832 boards with a Bluefruit BLE API.
- arduino-nRF5 - A community Arduino core adding support for nRF51 and nRF52 chips.
- Embassy - A modern async embedded framework for Rust with mature nRF52/53/54/91 (
embassy-nrf) support. - nrf-hal - Rust hardware abstraction layer crates for the nRF families.
- CircuitPython - Beginner-friendly Python for microcontrollers, running on many nRF52840 boards with BLE support.
- MicroPython - A lean Python implementation with an nRF port covering nRF51 and nRF52.
- TinyGo - A Go compiler for microcontrollers that supports nRF52840 boards and BLE.
- Espruino - A JavaScript interpreter for microcontrollers, running on nRF52 boards such as the Puck.js and Bangle.js.
- zephyr-lang-rust - Official Zephyr Rust language support, enabling Rust applications on Zephyr with the nRF52840 DK among the reference targets.
- Nordic Development Kits - Official DKs (nRF52840 DK, nRF5340 DK, nRF54L15 DK) and the low-cost nRF52840 Dongle.
- Nordic Thingy:52 / Thingy:53 - Prototyping platforms packed with sensors for rapid BLE and IoT development.
- Adafruit Bluefruit / Feather nRF52840 - Maker-friendly nRF52840 boards (Feather, ItsyBitsy, CLUE) with strong software support.
- Seeed XIAO nRF52840 - A thumbnail-sized nRF52840 board (with a "Sense" IMU/mic variant) popular in wearables.
- makerdiary nRF52840-MDK - An open-source micro development kit and USB dongle for the nRF52840 multiprotocol SoC.
- nice!nano - A Pro Micro-compatible nRF52840 controller that became the standard for wireless keyboards.
- nrfmicro - An open-hardware nRF52840 controller designed for wireless split keyboards.
- BBC micro:bit - An educational board built on nRF51 (v1) and nRF52833 (v2), widely used to learn BLE.
- RuuviTag - An open-source nRF52832 sensor beacon for environmental monitoring.
Real-world projects and products built on nRF chips, grouped by what they do. Wearables lead the list.
Notable shipping hardware built on nRF SoCs, as a quick at-a-glance index. The firmware, apps, and tooling in the following subsections target many of these.
| Device | nRF SoC | What it is |
|---|---|---|
| PineTime | nRF52832 | Open developer smartwatch that runs InfiniTime and Wasp-os. |
| Bangle.js 2 | nRF52840 | Hackable JavaScript (Espruino) smartwatch. |
| Puck.js | nRF52832 | Espruino BLE beacon and programmable button. |
| Brilliant Labs Frame | nRF52840 | Open-source AI display glasses. |
| Brilliant Labs Monocle | nRF52832 | Pocket-sized AR display module. |
| Omi | nRF52840 | Open AI voice-recording pendant (formerly Friend). |
| OpenEarable 2 | nRF5340 | Open ear-worn sensing and true-wireless-audio platform. |
| RuuviTag | nRF52832 | Environmental sensor beacon for temperature, humidity, and motion. |
| BBC micro:bit v2 | nRF52833 | Education board used widely to learn BLE. |
| RAK4631 WisBlock | nRF52840 | LoRa + BLE core module popular in Meshtastic nodes. |
| LILYGO T-Echo | nRF52840 | Handheld LoRa messenger that runs Meshtastic. |
| Ruuvi Air | nRF52840 | All-in-one indoor air-quality monitor (PM, CO2, VOC). |
| Aranet4 | nRF52832 | Battery BLE CO2, temperature, and humidity monitor. |
- InfiniTime - FreeRTOS firmware for the PineTime smartwatch (nRF52832) with notifications, heart rate, step counting, and watch faces.
- Wasp-os - A MicroPython "watch app playground" for the PineTime and other nRF52-based smartwatches.
- Bangle.js Apps - The app loader and app store for the hackable JavaScript (Espruino) smartwatch built on the nRF52840.
- nRF5x Device Reverse Engineering - Turns cheap generic nRF52 fitness trackers and watches into an open wearable development platform.
- Hacking an nRF52 ECG Tracker into EEG - Repurposes a $35 nRF52832 fitness band into an ECG/EMG/EEG bio-sensing device.
- Gadgetbridge - A privacy-friendly Android companion app that syncs many nRF-based watches and bands without vendor clouds.
- Amazfish - A companion app for Linux and Sailfish OS supporting PineTime and other BLE watches.
- ZSWatch - An open-source hardware and Zephyr firmware smartwatch built around an nRF5340 module, with a round touchscreen, sensors, and an app framework.
- InfiniLink - An open-source iOS companion app for InfiniTime on the nRF52832-based PineTime, handling notifications, firmware updates, and HealthKit sync.
- Brilliant Labs Frame - Open-source hardware and firmware for the Frame AI glasses, built around an nRF52840 with a BLE data link.
- Monocle - MicroPython firmware for the nRF52832-based Monocle AR display, scriptable over Bluetooth.
- frame-sdk-python - A Python SDK for driving Frame glasses over BLE from a host computer.
- OpenGlass - Turns low-cost hardware into open smart glasses, with nRF52840 and ESP32 variants streaming to an AI backend.
- Omi - Open-source AI wearable pendant (nRF52840 + Zephyr) that streams audio over BLE for live transcription and memory.
- Friend - The original open hardware and firmware for the always-on AI necklace that Omi grew out of.
- Bee / open recorders - CircuitPython BLE building blocks widely used to prototype nRF52840 voice recorders and audio pendants.
- nRF5340 Audio - Nordic's reference application for LE Audio, LC3 codec, and Auracast broadcast on the nRF5340.
- OpenEarable 2 - Open-source nRF5340 firmware for an ear-worn AI sensing platform with true wireless audio and onboard sensors.
- ZMK Firmware - A Zephyr-based wireless keyboard firmware built for nRF52840 split keyboards, with excellent battery life.
- BlueMicro_BLE - Arduino-based BLE keyboard firmware for nRF52832 and nRF52840 controllers.
- nRF52 QMK - QMK's Bluetooth support for nRF-based controllers, bringing the classic keyboard firmware wireless.
- Ergo split keyboard builds - An open-source split ergonomic keyboard designed around the nrfmicro / nice!nano.
- Joypad OS - Open-source game-controller and input firmware that runs on the nRF52840 for BLE adapters and custom controllers.
- nRF Mesh SDK - Nordic's Bluetooth Mesh provisioning and configuration library, with iOS and Android implementations.
- Zephyr Bluetooth Mesh - The open Bluetooth Mesh stack shipped with Zephyr and the nRF Connect SDK.
- Meshtastic - An off-grid mesh messaging project whose nRF52840 targets pair LoRa radios with a BLE phone link.
- OpenThread - Google's open Thread implementation, running multiprotocol alongside BLE on nRF52840 and nRF5340.
- MeshCore - Lightweight C++ multi-hop LoRa mesh firmware with BLE companion links, supporting nRF52840 boards such as the RAK4631 and Heltec T114.
- RNode Firmware - Open firmware that turns LoRa boards like the nRF52840-based RAK4631 into RNode digital radios for the Reticulum networking stack.
- OpenHaystack - Track personal Bluetooth devices via Apple's Find My network, with nRF51/nRF52 firmware targets.
- Find My Flipper - An AirTag/Find My-compatible beacon implementation that documents the BLE advertising format in detail.
- DIY AirTag firmware - A self-hosted Find My backend with nRF5x firmware for building your own trackers.
- Everytag - Apple Find My and Google Find My Device beacon firmware, reconfigurable over BLE, running on nRF52 and nRF54L chips via Zephyr.
- RuuviTag firmware - Production nRF52 firmware for the RuuviTag environmental sensor beacon.
- Theengs Decoder - A C++ library that decodes BLE advertisements from hundreds of sensors, many of them nRF-based.
- OpenMQTTGateway - Bridges BLE sensor advertisements to MQTT and Home Assistant.
- ESPHome BLE trackers - A common host-side companion for ingesting nRF beacon data into home automation.
- Eddystone - Google's open beacon format, with reference implementations that run on nRF51 and nRF52.
- b-parasite - An open-source nRF52840/nRF52833 soil-moisture and environmental sensor beacon that broadcasts over BLE for Home Assistant.
- Ruuvi Air firmware - Open-source nRF52840 firmware for Ruuvi's all-in-one indoor air-quality monitor, reading particulates, CO2, and VOC/NOx (Sensirion SEN66) plus temperature, humidity, pressure, and light over BLE.
- Golioth Air Quality Monitor - A cellular nRF9160 reference design that reads CO2 (SCD41), particulates (SPS30), and temperature/humidity/pressure (BME280) and streams them to the Golioth IoT cloud.
- bme68x-zephyr - A Zephyr driver and sample pairing the Bosch BME68X gas sensor with the BSEC library to output an indoor air-quality index on the nRF52840, with BLE Environmental Sensing Service support.
- nRF Connect SDK BME68X IAQ sample - Nordic's official sample that drives the Bosch BME688 gas sensor with the BSEC library on nRF52 and nRF53 boards to report a 0–500 indoor air-quality index plus temperature, humidity, and pressure.
- Nordic Thingy:91 X firmware - Out-of-the-box firmware for the nRF9151-based Thingy:91 X that streams onboard temperature, humidity, air-quality, and pressure readings to nRF Cloud over LTE-M and NB-IoT.
- Theengs Gateway - A multi-platform Python BLE-to-MQTT gateway that decodes advertisements from RuuviTag and hundreds of other nRF-based sensors into Home Assistant.
- Aranet4-Python - A Python BLE library for reading the nRF52832-based Aranet4 CO2, temperature, humidity, and pressure monitor and related Aranet sensors from a host.
- BThack / Sniffle - A capable BLE 4/5 sniffer whose firmware and captures are essential for debugging nRF links.
- nRF Sniffer for Bluetooth LE - Nordic's official Wireshark-integrated BLE sniffer running on the nRF52840 Dongle.
- Mirage - A modular framework for auditing and attacking wireless protocols, with strong nRF52 support.
- InternalBlue / BLE attack tooling - Bluetooth firmware analysis tooling used widely in BLE security research.
- BlueBorne and BLE CTF - A hands-on BLE capture-the-flag firmware for learning GATT security by exploitation.
- Ubertooth - An open-source 2.4 GHz wireless development platform from Great Scott Gadgets with a capable BLE sniffer for over-the-air capture.
- bettercap - A network attack framework whose BLE module handles device discovery, GATT enumeration, and characteristic writes against unauthenticated peripherals.
- awesome-bluetooth-security - A curated reference list of Bluetooth BR/EDR and LE security tools, papers, and attack research.
- Nordic DevAcademy - Free structured courses on the nRF Connect SDK, Bluetooth LE fundamentals, and cellular IoT.
- Zephyr Documentation - The canonical reference for the RTOS, devicetree, Kconfig, and the Bluetooth APIs.
- Getting Started with Bluetooth Low Energy - A widely recommended introduction to BLE concepts, roles, and GATT.
- Bluetooth Core Specification - The authoritative specification behind every BLE implementation on this list.
- Interrupt by Memfault - A deep embedded engineering blog with many nRF and Zephyr debugging articles.
- NCS-Tutorial - Step-by-step hands-on tutorials for Zephyr and the nRF Connect SDK covering Bluetooth LE, mesh, bootloaders, and build tools.
- Novel Bits - Bluetooth LE-focused tutorials, video courses, and books, with frequent nRF-specific material.
- Bluetooth LE Developer Study Guide - The Bluetooth SIG's official learning path pairing BLE theory with hands-on peripheral labs built on Zephyr.
- Golioth Developer Blog - Practical Zephyr and nRF Connect SDK articles on GPIO, shells, provisioning, and firmware updates, plus recurring free training.
- Jared Wolff's nRF Connect SDK guides - Blog and book coverage of practical nRF52/nRF91 and Zephyr development from an experienced Nordic developer.
- Nordic DevZone - The primary forum for nRF questions, answered by Nordic engineers.
- Zephyr Discord - Active chat for Zephyr and nRF Connect SDK development.
- r/embedded - General embedded discussion where nRF and BLE topics come up regularly.
- ZMK Discord - The hub for nRF52840 wireless keyboard firmware development.
- Zephyr Project Mailing Lists - The official Zephyr users and developer mailing lists, including the Bluetooth working group.
- Circuit Dojo Community - A forum for nRF Connect SDK, Zephyr, and Nordic-based hardware help.
Contributions are welcome! Read the contribution guidelines first.