nRF Connect is a cross-platform framework for creating desktop apps for use with development kits or dongles from Nordic Semiconductor. It provides a common foundation for creating apps that communicate with the devices over serial port. The framework comes with a skeleton that has standard UI components for selecting devices, navigation menus, logging, etc. Apps can decorate the standard components, create new components, and use built-in libraries in order to create end-user tools.
nRF Connect supports the following devices:
- PCA10028 nRF51 Development Kit
- PCA10031 nRF51 Dongle
- PCA10040 nRF52 Development Kit
- PCA10056 nRF52840 Development Kit
- PCA10059 nRF52840 Dongle
Note that while the nRF Connect framework has support for all these devices, the device support in nRF Connect apps may vary.
To install nRF Connect you can download binaries from the nRF Connect product page on Nordic Semiconductor web pages.
nRF Connect currently supports the following operating systems:
- Ubuntu Linux 64-bit
A Getting started guide is available from the nRF Connect product pages.
The following apps have been created for nRF Connect;
Automatic installation of apps
The normal way to install apps is to start nRF Connect and go to the Add/remove apps screen. When installing apps from this screen, you will be notified of any new releases, and have the option to upgrade when new releases are available.
Manual installation of apps
If you are unable to install apps from the Add/remove apps screen, it is also possible to install apps manually:
- Go to the app's page on the npm website by following the links above, and locate the name and the latest version of the app.
- Download the app by using the URL
https://registry.npmjs.org/<name>/-/<name>-<version>.tgz, and save the file to
- Restart nRF Connect. The app should now appear in the Launch app screen.
To create your own app, follow the documentation on the project wiki. Have a look at the RSSI viewer app to see how a real-world app can be implemented. There is also a boilerplate app that can be used as a starting point.
To configure nRF Connect for use behind a proxy, see proxy settings.
Linux udev rules
In order to access Nordic USB devices with correct permissions udev rules need to be set up once. For this purpose nrf-udev repository has been created, follow instructions there.
Feel free to file code related issues on GitHub Issues and/or submit a pull request. In order to accept your pull request, we need you to sign our Contributor License Agreement (CLA). You will see instructions for doing this after having submitted your first pull request. You only need to sign the CLA once, so if you have already done it for another project in the NordicSemiconductor organization, you are good to go.
Building from source
To build this project you will need to install the following tools:
- Node.js (>=6.9)
- npm (>=5.6.0) / yarn (>=1.4.0)
Compilation of native modules
The project depends on pc-ble-driver-js and pc-nrfjprog-js which are native modules. Pre-compiled binaries for these modules are provided for recent Node.js versions on Windows, macOS, and Linux. However, if binaries do not exist for your platform/Node.js version, then refer to the pc-ble-driver-js README which describes requirements for compilation.
Install packages required for building the project on Ubuntu Linux:
apt-get install build-essential python2.7 libudev-dev libgconf-2-4
Install all the required tools and configurations using Microsoft's windows-build-tools from an elevated PowerShell or CMD.exe (run as Administrator):
npm install --global --production windows-build-tools
When all required tools have been installed, you are ready to build the project. Run the following command from the command line, standing in the root folder of the repository:
Start by running:
npm run dev
This will transpile, lint, and bundle all code into the
dist directory. The process will watch for changes to source code, and re-bundle to
dist on each change.
Now, open a separate terminal window and run:
npm run app
This will open Electron, which loads its content from
Firmware detection and programming
Firmware detection and programming requires that nRF Connect can load nrfjprog libraries. If you see the message CouldNotFindJprogDLL in the log, then follow the steps below.
Download and install the latest nRF5x-Command-Line-Tools, and restart nRF Connect. The nrfjprog libraries will then be loaded from registry.
Linux and macOS
J-Link driver needs to be separately installed on Linux and macOS, download and install appropriate package for your operating system from SEGGER under the section J-Link Software and Documentation Pack.
Run unit tests:
Run unit tests and watch for changes:
npm run test-watch
Run all end-to-end tests:
npm run test-e2e
Run only end-to-end tests that do not require network access:
npm run test-e2e-offline
Run only end-to-end tests that require network access:
npm run test-e2e-online
Creating release artifacts
To pack nRF Connect into a release artifact for the current platform:
npm run pack
Depending on the platform, this will create:
- Windows: NSIS installer
- macOS: DMG disk image
- Linux: AppImage
The artifact is written to the
Publishing release artifacts
First, make sure your user can authenticate with GitHub:
Then, to create and publish the release artifact:
npm run release
This creates a release artifact for the current platform, and uploads it to GitHub as part of a draft release on the GitHub releases page. The draft release is only visible to users who have write access to the repository, and can be made public by editing it and pressing the Publish release button.
nRF Connect builds on top of other sub components that live in their own GitHub repositories:
See the license file for details.