Free firmware for the nRF52840 Dongle and DK

Turn your nRF52840 dongle into a desktop BLE adapter

Flash the free Dongl firmware onto a Nordic nRF52840 Dongle or DK, then scan, connect, and pair from your own code in every SimpleBLE language with desktop support, on Windows, macOS, and Linux.

Read the Dongl guide
Kober Engineering
InsuLearn
Meta
Fender
Honeywell
Bionic Labs
Sona
SWT
Moon Smart Focus
Lewitt
Medra
Desko
g.tec
IXI
Innovision
Moonlighting Industries
Kober Engineering
InsuLearn
Meta
Fender
Honeywell
Bionic Labs
Sona
SWT
Moon Smart Focus
Lewitt
Medra
Desko
g.tec
IXI
Innovision
Moonlighting Industries
Kober Engineering
InsuLearn
Meta
Fender
Honeywell
Bionic Labs
Sona
SWT
Moon Smart Focus
Lewitt
Medra
Desko
g.tec
IXI
Innovision
Moonlighting Industries
Get started

Set up in three steps

  1. Download the firmware

    Get the Dongl N-Series firmware package. It is free for prototyping, testing, and non-commercial validation.

  2. Flash your board

    Program mbr_sd_bootloader_app.hex from the package over SWD. After this first flash, firmware updates install over USB.

  3. Install SimpleBLE

    Install SimpleBLE 1.4 or later in your language. The dongle appears as a Bluetooth adapter next to the computer's own.

Then select the dongle, scan, connect, and read. This is the whole program.

import simplepyble

adapter = simplepyble.Backend.get_dongl().adapters()[0]
adapter.scan_for(5000)

device = next(p for p in adapter.scan_get_results()
              if p.address() == DEVICE_ADDRESS)
device.connect()
print(device.read(SERVICE, CHARACTERISTIC).decode())
device.disconnect()
Why Dongl

Bluetooth that behaves the same wherever it runs

Built for test rigs, hardware-in-the-loop setups, and desktop tools.

Consistency

The same Bluetooth on every computer

Your code behaves the same on every Windows PC, Mac, and Linux machine, even one without Bluetooth or in Docker.

Addresses

Real device addresses on macOS

Scans report real device addresses, so a Mac test station can match devices by the address on their label.

Scale

One dongle per fixture

Each dongle is another adapter, with a stable address across restarts and USB ports.

Security

Pairing from your code

Pair with LE Secure Connections and no system dialog. Your application answers pairing prompts, and bonds stay on the dongle.

Devkits

Test your own peripheral

Check from your desktop that an nRF52 or ESP32 peripheral advertises, connects, and pairs correctly.

Languages

Every desktop language

Drive the dongle from C++, Python, C#, Rust, and every other SimpleBLE binding with desktop support.

Frequently
asked questions

Nordic's nRF52840 Dongle (PCA10059), the nRF52840 DK (PCA10056), and other nRF52840-based boards.

For the first flash, yes. The firmware is programmed over SWD. The nRF52840 DK has a debugger on board, and the nRF52840 Dongle needs an external one, such as a J-Link. After that, firmware updates install over USB. Dongl hardware ships with the firmware installed.

Scan with scan responses and service data, connect, read, write, subscribe to notifications and indications, and pair and bond with LE Secure Connections.

Every SimpleBLE binding with desktop support: C++, C, C#, Python, Java, Go, Rust, Node.js, Kotlin Multiplatform, Swift, Dart, Flutter, and Delphi, on Windows, macOS, and Linux.

Nordic archived pc-ble-driver in 2024. The Dongl firmware replaces its connectivity firmware, and SimpleBLE replaces the driver library. The pc-ble-driver migration guide maps existing code to SimpleBLE.

Yes, for prototyping, testing, and non-commercial validation. Commercial use needs a license. Each Dongl hardware unit includes a commercial license to use SimpleBLE through the Dongl backend. SimpleBLE is source-available under the Business Source License 1.1 and free for non-commercial use.