These components include things like peripheral drivers, file systems, crypto and security libraries, device management with firmware update support, Internet protocol stacks, and wireless communication stacks like Bluetooth Low Energy, Bluetooth mesh, and so on.
Having all crucial components delivered through one platform reduces development time, hence reducing time to market. These components are compiled in if explicitly enabled, and completely ignored otherwise, giving you full control of the generated binary size.
Highly configurable, highly modular
The nRF52840 Dongle is your compact Swiss army knife for Bluetooth Low Energy development. You could use it to inspect Bluetooth Low Energy packets over the air, monitor the Bluetooth LE frequency channels, and test Bluetooth LE connection and connection-less communications through a GATT/GAP roles emulator. Or you could simply flash it with your own custom application. In the following paragraphs, we will show you how to do all of that.
It contains the following interfaces:
You can develop code for the nRF52840 Dongle either using Zephyr or using nRF Connect SDK which includes all the samples from Zephyr in addition to other Nordic-specific features, libraries, and full-fledge applications like nRF Desktop.
Since the dongle does not have a debugger onboard, it is factory-programmed with a bootloader from Nordic’s nRF5 SDK.
You’ll need to install Nordic’s nrfutil program to create firmware packages supported by this bootloader and flash them to the device. Make sure nrfutil is installed before proceeding.
Install nrfutil , which is a Python package, by typing:
pip install nrfutil
Full documentation for nrfutil is available here.
This is almost like flashing any other Zephyr-supported board, except that you first need to put the dongle manually in DFU (Device Firmware Update) mode, and use nrfutil to create a firmware package compatible with the factory-programmed bootloader.
1. First, put the dongle in DFU mode by simply pressing the RESET button.
The push-button is on the far side of the board from the USB connector. Note that the button does not face up. You will have to push it from the outside in, towards the USB connector.
The red LED should start a fade pattern, signaling that the dongle is in DFU mode.
2. Build a zephyr sample, we will use the Bluetooth: Peripheral sample
west build -b nrf52840dongle_nrf52840 zephyr/samples/bluetooth/peripheral
The Peripheral sample demonstrates the Bluetooth LE-Peripheral role. It includes several Bluetooth SIG-defined services such as the Heart Rate Service, Battery Service, and also vendor-specific GATT services.
This will generate the hex file in the subdirectory build/zephyr/
3. Generate the firmware package that is compatible with Nordic’s bootloader
nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application build/zephyr/zephyr.hex --application-version 1 peripheral.zip
4. Flash the firmware package onto the board
nrfutil dfu usb-serial -pkg peripheral.zip -p /dev/ttyACM0
Note: /dev/ttyACM0 is for Linux; It will be something similar on a macOS and it will be COMx on Windows.
On a successful flash, you should see something like this:
5. To test the Bluetooth LE functionally, download our open-source nRF Toolbox App on you Android or iOS device, and press on Heart Rate as shown in the screenshot below of the app.
Then, connect to Zephyr Peripheral Sample Long. The received simulated date over Bluetooth Low Energy for both the battery level and heart rate reading are displayed.
These values are generated inside main.c as shown below:
Note: You could skip steps 1, 3, and 4 and flash the hex file (zephyr.hex) directly on the Dongle using our Programmer application available in the nRF Connect for Desktop.
When developing a Bluetooth Low Energy product, knowing what happens over the air can really help you identify and fix issues quickly. The nRF Sniffer for Bluetooth LE software is installed as an external capture plugin in Wireshark.
To use the sniffer, you need to:
1. Flash the Dongle with the sniffer firmware
2. Add the capture plugin for Wireshark that records and analyzes the captured over-the-air packets.
We will show you how to do these steps:
Download the firmware of the sniffer from here and extract it somewhere on your local drive.
Note that the zip file contains the hex files for other boards. The file you are looking for has the name of the dongle: sniffer_nrf52840dongle_nrf52840_4.1.0.hex
Generate the firmware package. This is the package that nrfutil expects to flash the device
Browse to the hex directory:
Generate the firmware package:
nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application sniffer_nrf52840dongle_nrf52840_4.1.0.hex --application-version 1 sniffer_fw_pkg.zip
Put the Dongle in DFU mode by pressing the RESET button. Note that the button does not face up. You will have to push it from the outside in, towards the USB connector:
The red LED should start a fade pattern, signaling that the Dongle is in DFU is running.
Flash the firmware package onto the board:
nrfutil dfu usb-serial -pkg sniffer_fw_pkg.zip -p /dev/ttyACM0
Note /dev/ttyACM0 is for Linux; It will be something similar on a macOS and it will be COMx on Windows.
On a successful flash, you should see something like this :
You could also use the Programmer app available in our nRF Connect for Desktop to flash the dongle with the hex file directly.
To add the capture plugin to Wireshark, follow the steps explained here.
For more information on how to use the sniffer, see complete documentation here.
This can help you monitor the Bluetooth LE frequency channels. The RSSI Viewer will show all the 2.4GHz devices in the nearby proximity regardless of the protocol being used, however it highlights the 37 Bluetooth Low Energy data channels in blue and the advertising channels in green.
Nordic Semiconductor is a fabless semiconductor company specializing in ultra-low power wireless solutions for the IoT. We ship more than one million Bluetooth Low Energy SoCs every day. Our multiprotocol SoCs support the Bluetooth mesh, Matter, Thread and Zigbee protocols, and these can run concurrently with Bluetooth Low Energy. We also offer the most compact and low-power cellular IoT solution available in the market, supporting the low-power cellular protocols LTE-M and NB-IoT, in addition to GPS.
nRF Connect SDK, Nordic Semiconductor’s main Software Development Kit, is built on top of Zephyr RTOS. It integrates the RTOS and a wide range of full-fledged applications (Ex: Asset Tracker v2, nRF Desktop), samples, application and networking protocols, libraries, hardware drivers, and more.
Nordic Semiconductor chose to base its SDK on the Zephyr RTOS due to its rich ecosystem and its high configurability, and modularity. These offer developers the flexibility to build size-optimized software for memory-constrained devices as well as powerful and complex software for more advanced devices and applications.
In addition to Zephyr’s rich ecosystem, nRF Connect SDK adds more libraries, networking protocols, and functionalities that are not part of Zephyr. To name a few: multiprotocol support (MPSL), 2.4 GHz proprietary, CryptoCell libraries, nRF9160 modem libraries, and many more. It also supports all our prototyping platforms (Ex: Thingy:91) and reference designs (Ex: nRF Desktop).
As part of the nRF Connect umbrella, we also offer many tools that aim to improve developers’ productivity and reduce time to market, such as: a 1-click installer experience through the Toolchain Manager which is part of the nRF Connect for Desktop, and developer environments such as nRF Connect for VS Code. We also aim to equip developers with the technical information and the know-how to build tomorrow’s cutting-edge wireless products through our comprehensive Nordic Developer Academy online courses and documentation.