Developing with nRF52 Series
The nRF Connect SDK provides support for developing on all nRF52 Series devices and contains board definitions for all development kits and reference design hardware.
See one of the following guides for detailed information about the corresponding nRF52 Series development kit (DK) hardware:
To get started with your nRF52 Series DK, follow the steps in the Getting started with nRF52 Series section. If you are not familiar with the nRF Connect SDK and the development environment, see the introductory documentation.
FOTA updates
You can update the firmware of the device over the air, thus without a wired connection. Such an update is called a FOTA (firmware over-the-air) update. You can also use FOTA updates to replace the application.
Note
For the possibility of introducing an upgradable bootloader, refer to Adding a bootloader chain.
FOTA over Bluetooth Low Energy
To enable support for FOTA updates, do the following:
Use MCUboot as the upgradable bootloader (
CONFIG_BOOTLOADER_MCUBOOT
must be enabled). For more information, go to the Introduction to MCUboot page.Enable the mcumgr module that handles the transport protocol over Bluetooth® Low Energy as follows:
Enable the Kconfig options
CONFIG_MCUMGR_CMD_OS_MGMT
,CONFIG_MCUMGR_CMD_IMG_MGMT
, andCONFIG_MCUMGR_SMP_BT
.Call the functions
os_mgmt_register_group()
andimg_mgmt_register_group()
in your application.Call the
smp_bt_register()
function in your application to initialize the mcumgr Bluetooth Low Energy transport.
After completing these steps, your application advertises the SMP Service with
UUID 8D53DC1D-1DB7-4CD3-868B-8A527460AA84
.
To perform a FOTA update, complete the following steps:
Create a binary file that contains the new image.
To create a binary file for an application update, build the application with the
CONFIG_BOOTLOADER_MCUBOOT
option enabled.Download the
app_update.bin
image file to your device.Note
nRF Connect for Desktop does not currently support the FOTA process.
Use nRF Connect Device Manager, nRF Connect for Mobile, or nRF Toolbox to update your device with the new firmware.
Ensure that you can access the
app_update.bin
image file from your phone or tablet.Connect to the device with the mobile app.
Initiate the DFU process to transfer the image to the device.
FOTA update sample
The SMP Server Sample demonstrates how to set up your project to support FOTA updates.
The sample documentation is from the Zephyr project and is incompatible with the Multi-image builds. When working in the nRF Connect SDK environment, ignore the part of the sample documentation that describes the building and programming steps. In nRF Connect SDK, you can build and program the SMP Server Sample as any other sample using the following commands:
west build -b build_target -- -DOVERLAY_CONFIG=overlay-bt.conf west flash
Make sure to indicate the overlay-bt.conf
overlay configuration for the Bluetooth transport like in the command example.
This configuration was carefully selected to achieve the maximum possible throughput of the FOTA update transport over Bluetooth with the help of the following features:
Bluetooth MTU - To increase the packet size of a single Bluetooth packet transmitted over the air (
CONFIG_BT_BUF_ACL_RX_SIZE
and others).Bluetooth connection parameters - To adaptively change the connection interval and latency on the detection of the SMP service activity (
CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL
).MCUmgr packet reassembly - To allow exchange of large SMP packets (
CONFIG_MCUMGR_SMP_REASSEMBLY_BT
,CONFIG_MCUMGR_BUF_SIZE
and others).
Consider using these features in your project to speed up the FOTA update process.
FOTA in Bluetooth mesh
To perform FOTA update when working with the Bluetooth mesh protocol, use point-to-point Device Firmware Update (DFU) over Bluetooth Low Energy as described in FOTA over Bluetooth Low Energy above. See also Performing FOTA updates in Bluetooth mesh for more details about FOTA in Bluetooth mesh.
FOTA in Matter
To perform a FOTA upgrade when working with the Matter protocol, use one of the following methods:
DFU over Bluetooth LE using either smartphone or PC command-line tool. Both options are similar to FOTA over Bluetooth Low Energy.
Note
This protocol is not part of the Matter specification.
DFU over Matter using Matter-compliant BDX protocol and Matter OTA Provider device. This option requires an OpenThread Border Router (OTBR) set up either in Docker or on a Raspberry Pi.
For more information about both methods, read the Performing Device Firmware Upgrade in the nRF Connect examples page in the Matter documentation.
FOTA over Thread
Thread does not offer a proprietary FOTA method.
FOTA over Zigbee
You can enable support for FOTA over the Zigbee network using the Zigbee FOTA library. For detailed information about how to configure the Zigbee FOTA library for your application, see Configuring Zigbee FOTA.
Testing the application with a computer
If you have an nRF52 Series DK with the Bluetooth: Peripheral UART sample and either a dongle or second Nordic Semiconductor development kit that supports Bluetooth Low Energy, you can test the sample on your computer. Use the Bluetooth Low Energy app in nRF Connect for Desktop for testing.
To perform the test, connect to the nRF52 Series DK and complete the following steps:
Connect the dongle or second development kit to a USB port of your computer.
Open the Bluetooth Low Energy app.
Select the serial port that corresponds to the dongle or second development kit. Do not select the kit you want to test.
Note
If the dongle or second development kit has not been used with the Bluetooth Low Energy app before, you may be asked to update the J-Link firmware and connectivity firmware on the nRF SoC to continue. When the nRF SoC has been updated with the correct firmware, the nRF Connect Bluetooth Low Energy app finishes connecting to your device over USB. When the connection is established, the device appears in the main view.
Click Start scan.
Find the DK you want to test and click the corresponding Connect button.
The default name for the Peripheral UART sample is Nordic_UART_Service.
Select the Universal Asynchronous Receiver/Transmitter (UART) RX characteristic value.
Write
30 31 32 33 34 35 36 37 38 39
(the hexadecimal value for the string “0123456789”) and click Write.The data is transmitted over Bluetooth LE from the app to the DK that runs the Peripheral UART sample. The terminal emulator connected to the DK then displays
"0123456789"
.In the terminal emulator, enter any text, for example
Hello
.The data is transmitted to the DK that runs the Peripheral UART sample. The UART TX characteristic displayed in the Bluetooth Low Energy app changes to the corresponding ASCII value. For example, the value for
Hello
is48 65 6C 6C 6F
.
Building and programming
You can program applications and samples on the nRF9160 DK after obtaining the corresponding firmware images.
To program applications using the Programmer app from nRF Connect for Desktop, follow the instructions in Installing the application.
In Step 5, choose the .hex
file for the application you are programming.
Building and programming using Visual Studio Code
The nRF Connect for VS Code extension is a complete IDE for developing applications for nRF91, nRF53 and nRF52 Series devices. This includes an interface to the compiler and linker, an RTOS-aware debugger, a seamless interface to the nRF Connect SDK, and a serial terminal. For installation instructions, see Installing using Visual Studio Code. For other instructions related to nRF Connect for VS Code extension, see the nRF Connect for Visual Studio Code documentation site.
Complete the following steps after installing the nRF Connect for VS Code extension:
Open Visual Studio Code.
If you installed the nRF Connect SDK using the Installing automatically, you can click the Open VS Code button next to the version you installed.
Complete the steps listed on the How to build an application page in the nRF Connect for VS Code extension documentation.
Connect the nRF52 Series DK to the computer with a micro-USB cable, and then turn on the DK.
LED1 starts blinking.
In Visual Studio Code, click the Flash option in the Actions View.
If you have multiple boards connected, you are prompted to pick a device at the top of the screen.
A small notification banner appears in the bottom right corner of Visual Studio Code to display the progress and confirm when the flash is complete.
Building and programming on the command line
Complete the command-line build setup before you start building nRF Connect SDK projects on the command line.
To build and program the source code from the command line, complete the following steps:
Open a terminal window.
Go to the specific sample or application directory.
For example, the folder path is
ncs/nrf/applications/nrf_desktop
when building the source code for the nRF Desktop application.Make sure that you have the required version of the nRF Connect SDK repository by pulling the nRF Connect SDK repository sdk-nrf on GitHub.
Follow the procedures described in Obtaining a copy of the nRF Connect SDK and Updating a copy of the nRF Connect SDK.
To get the rest of the dependencies, run the
west update
command as follows:west update
To build the sample or application code, run the
west build
command as follows:west build -b build_target -d destination_directory_name
For the build_target parameter, see the list of supported boards for the build target corresponding to the nRF52 Series DK you are using.
Note
You can use the optional destination_directory_name parameter to specify the destination directory in the west command. By default, the build files are generated in
build/zephyr/
if you have not specified a destination_directory_name.Connect the nRF52 Series DK to the computer with a micro-USB cable, and turn on the DK.
LED1 starts blinking.
Program the sample or application to the device using the following command:
west flash
The device resets and runs the programmed sample or application.
nRF Desktop
The nRF Desktop application is a complete project that integrates Bluetooth LE, see the nRF Desktop application. You can build it for the nRF Desktop reference hardware or an nRF52840 DK.
The nRF Desktop is a reference design of a HID device that is connected to a host through Bluetooth LE or USB, or both. This application supports configurations for simple mouse, gaming mouse, keyboard, and USB dongle.