Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome nRF Awesome

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.

Contents

Official SDKs & Documentation

  • 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.

Development & Debugging Tools

  • 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.

BLE Stacks & Protocol Libraries

  • 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.

RTOS & Frameworks

  • 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.

Language Ecosystems

  • 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.

Hardware & Boards

  • 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.

Applications

Real-world projects and products built on nRF chips, grouped by what they do. Wearables lead the list.

Devices

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.

Smartwatches & Fitness Bands

  • 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.

Smart Glasses & AR

  • 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.

AI Recorders & Voice Pendants

  • 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.

Keyboards & Input Devices

  • 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.

Mesh & Long-Range Communication

  • 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.

Item Trackers & Find My

  • 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.

Sensors, Beacons & Gateways

  • 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.

Security & Reverse Engineering

  • 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.

Learning Resources

  • 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.

Community

  • 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.

Contributing

Contributions are welcome! Read the contribution guidelines first.

About

A curated list of awesome projects, tools, SDKs, and resources for Nordic Semiconductor nRF wireless SoCs — BLE firmware, Zephyr / nRF Connect SDK, boards, and learning material.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors