• This repository has been archived on 18/Apr/2024
  • Stars
    star
    281
  • Rank 147,023 (Top 3 %)
  • Language
    C
  • License
    Other
  • Created over 9 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Desktop library for Bluetooth low energy development

pc-ble-driver

pc-ble-driver provides C/C++ libraries for Bluetooth Low Energy nRF5 SoftDevice serialization.


Overview

pc-ble-driver consists of a set of static and shared libraries that provide SoftDevice functionality to the application via serial port communication with an nRF5 connectivity chip running the SoftDevice and connectivity software, included as a single .hex file here. For more information on SoftDevice serialization see Serialization.

The C/C++ libraries can be interfaced with directly, but are also provided as higher-level bindings that ease development at the cost of reduced control (acceptable in most cases):


Architecture

Architecture

Where the 'Application chip' is just generic hardware (i.e. a Windows, Linux or macOS device), although it could also be an Arduino or Raspberry Pi for example.


Supported environments

Operating system

  • Windows 7, 8 and 10, 32 and 64-bit (tested on Windows 7)
  • Ubuntu Linux LTS 64-bit (tested on Ubuntu 18.04)
  • macOS 64-bit (tested on 10.14 Mojave)

SoftDevice and IC

To use pc-ble-driver, your Development Kit needs to have the correct firmware. The needed firmwares are found in the hex/sd_api_v<x> folder and contain the SoftDevice and connectivity firmware required to communicate with pc-ble-driver.

The generated libraries are compatible with the following SoftDevice API versions and nRF5x ICs:

  • SoftDevice s130 API version 2: connectivity_<version>_1m_with_s130_2.x.x (nRF51 and nRF52 series ICs)
  • SoftDevice s132 API version 3: connectivity_<version>_<1m|*usb>_with_s132_3.x.x (only for nRF52 series ICs)
  • SoftDevice s132 API version 5: connectivity_<version>_<1m|*usb>_with_s132_5.x.x (only for nRF52 series ICs)
  • SoftDevice s132 API version 6: connectivity_<version>_<1m|*usb>_with_s132_6.x.x (only for nRF52 series ICs)
  • SoftDevice s140 API version 6: connectivity_<version>_<1m|*usb>_with_s140_6.x.x (only for nRF52 series ICs)

*usb) only for nRF52 series ICs with USBD peripheral

Supported Development Kits
PCA Official name Article number Notes
PCA10028 nRF51 DEVELOPMENT KIT nRF6824
PCA10031 nRF51 DONGLE nRF6825
PCA10040 nRF52 DEVELOPMENT KIT nRF6827
PCA10056 nRF52840 { Development Kit } nRF6828 *)
PCA10059 nRF52840 { Dongle } nRF6829 Can only use connectivity firmware with Nordic USB CDC serial port support

*) Can use both Nordic USB CDC serial port version and SEGGER J-Link-OB (VCOM) version. Using Nordic USB CDC serial port version on PCA10056 requires that you connect pins P0.18 and P0.24. The pins to QSPI chip must also be in place (they are by default). The algorithm for detecting if it is PCA10056 or PCA10059 is to check if it is possible to communicate with the QSPI chip. PCA10059 does not have a QSPI chip. The detection is used by nRF Connect DFU trigger to determine what pin to use for resetting the device when changing between DFU and application mode.


Installing device drivers

Driver installation

This communication library works over any kind of serial port (UART), but it is most often used over a Segger J-Link USB CDC UART. To set up the required J-Link drivers simply download and install the version matching you operating system:

After you have installed the required drivers and connected a J-Link enabled board (such as the Nordic Development Kits) the port should be available.

In addition, you have to disable the Mass Storage Device in order to use pc-ble-driver to communicate with the device, see data corruption or drops issue.

Driver validation

Validating on Windows

The serial port will appear as COMxx. Simply check the "Ports (COM & LPT)" section in the Device Manager.

Validating on Ubuntu Linux

The serial port will appear as /dev/ttyACMx.

By default the port is not accessible to all users. Type the command below to add your user to the dialout group to give it access to the serial port. Note that re-login is required for this to take effect.

    $ sudo usermod -a -G dialout <username>

To prevent the modemmanager service from trying to connect to the CDC ACM serial port:

    $ systemctl stop ModemManager.service
    $ systemctl disable ModemManager.service

Validating on macOS

The serial port will appear as /dev/tty.usbmodemXXXX.

There is a known issue, check it here if you met any problems.


Installing tools

nRF5x Command-Line Tools

To program the connectivity firmware you will need nrfjprog which is bundled with the nRF5x Command-Line Tools, which can be downloaded from:

Add nrfjprog and mergehex to PATH on Linux and macOS.

nRF Connect Programmer (optional)

Alternatively, nRF Connect Programmer can help you to program the connectivty firmware with UI support.

Download nRF Connect Desktop and install nRF Connect Programmer there.


Installing dependencies

To compile pc-ble-driver you will need the following tools:

Go to compile pc-ble-driver from source

To compile connectivity HEX files you will need additional tools:

Go to compile connectivity HEX files

Follow the steps to install dependencies on a specific platform:

Installing dependencies on Windows

  1. Download Visual Studio 15 or later version and install.

  2. Install Chocolatey. Install with cmd.exe (Run as administrator)

    # Copy everything below
    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

    If Chocolatey has already been installed as described above but has not been added to PATH, run:

    $ SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
  3. Install Git.

    $ choco install -y git
  4. Install CMake.

    $ choco install -y cmake
  5. Install vcpkg.

    $ git clone https://github.com/Microsoft/vcpkg.git
    $ cd vcpkg
    $ git checkout tags/2020.04
    $ .\bootstrap-vcpkg.bat

    Then add the vcpkg location to the PATH and set it as VCPKG_ROOT environment variable.

The following steps are needed only if you want to compile your own connectivity HEX files.

  1. Install ninja.

    $ choco install -y ninja
  2. Download and install GNU Embedded Toolchain for Arm version 7-2018q2

    Download from this location.

    Follow the install instructions.

    Set its installation path as GNUARMEMB_TOOLCHAIN_PATH in environment variables. For example:

    $ set GNUARMEMB_TOOLCHAIN_PATH=c:\gccarmemb
  3. Install Python and pip, and then install nrfutil

    $ pip install nrfutil
    
    # Reboot if installation succeeds but validation fails

Installing dependencies on Ubuntu Linux

  1. Install build-essential.

    $ sudo apt-get -y install build-essential
  2. Install Git

    $ sudo apt-get -y install git

    If the installed version of Git is lower than required, then:

    $ sudo add-apt-repository ppa:git-core/ppa
    $ sudo apt update
    $ sudo apt install git
  3. Install CMake.

    $ sudo apt-get -y install cmake

    Install CMake from source if the version is lower than required.

  4. Install vcpkg.

    $ git clone https://github.com/Microsoft/vcpkg.git
    $ cd vcpkg
    $ git checkout tags/2020.04
    $ ./bootstrap-vcpkg.sh

    Then add the vcpkg location to the PATH and VCPKG_ROOT environment variable.

  5. Install Ninja.

    $ sudo apt-get install ninja-build

The following steps are needed only if you want to compile your own connectivity HEX files.

  1. Install GNU Embedded Toolchain for Arm version 7-2018q2.

    • Download from here
    • Extract
    • Set its location as GNUARMEMB_TOOLCHAIN_PATH in environment variables.
  2. Install Python and pip, and then install nrfutil.

    $ pip install nrfutil
    
    # Reboot if installation succeeds but validation fails
    # If errors persist, try updating pip itself.

Installing dependencies on macOS

  1. Install Xcode (>=10.1).

  2. Install gcc6 using HomeBrew.

    $ brew install gcc6
  3. Install CMake using HomeBrew.

    $ brew install cmake
    $ brew upgrade cmake

    Install CMake from source if the version is lower than required.

  4. Install vcpkg.

    $ git clone https://github.com/Microsoft/vcpkg/
    $ cd vcpkg
    $ git checkout tags/2020.04
    $ ./bootstrap-vcpkg.sh

    Then add the vcpkg location to the PATH and VCPKG_ROOT environment variable.

The following steps are needed only if you want to compile your own connectivity HEX files.

  1. Install GNU Embedded Toolchain for Arm version 7-2018q2.

    • Download from here
    • Extract
    • Set its location as GNUARMEMB_TOOLCHAIN_PATH in environment variables.
  2. Install Python and pip, and then install nrfutil

    $ pip install nrfutil
    
    # Reboot if installation succeeds but validation fails

Compiling pc-ble-driver from source

Go to install dependencies if you have not done that yet.

Compiling pc-ble-driver on Windows

  1. Install vcpkg dependencies.

    # cd <pc-ble-driver-root-folder>
    
    # Make sure %VCPKG_ROOT% is set and added to %PATH%
    $ mkdir build && cd build
    $ vcpkg install asio catch2 spdlog
  2. CMake Select the Visual Studio compiler to use according to this article: Build C/C++ code on the command line

    $ cmake -G Ninja ..
  3. Compile

    $ cmake --build .

    Optionally select the build configuration with the --config option. Typically Debug, Release, MinSizeRel and RelWithDebInfo are available. For example:

    $ cmake --build . --config Debug

Compiling pc-ble-driver on Ubuntu Linux or macOS

  1. Install vcpkg dependencies.

    # cd <pc-ble-driver-root-folder>
    
    # Make sure $VCPKG_ROOT is set and added to $PATH
    $ mkdir build && cd build
    $ vcpkg install asio catch2 spdlog
  2. CMake

    $ cmake \
        -G Ninja \
        ..

    Optionally Select the build configuration with the -DCMAKE_BUILD_TYPE option. Typically Debug, Release, MinSizeRel and RelWithDebInfo are available.

    Optionally select the target architecture (32 or 64-bit) using the -DARCH option. The values can be x86_32, x86_64, x86_32,x86_64. For example:

    $ cmake \
        -G Ninja \
        -DCMAKE_BUILD_TYPE=Debug \
        -DARCH=x86_32,x86_64 \
        ..
  3. Compile

    $ cmake --build .

Compiling connectivity HEX files

Go to install dependencies if you have not done that yet.
Go to compile pc-ble-driver from source if you have not done that yet.

Make sure the following environment variables are set:

  • VCPKG_ROOT
  • GNUARMEMB_TOOLCHAIN_PATH

Make sure the following paths have been added to PATH:

  • VCPKG_ROOT
  • mergehex

Follow the steps to install dependencies on a specific platform:

Compiling connectivity HEX files on Windows

  1. Set environment

    # cd <pc-ble-driver-root-folder>
    $ SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    
    # Make sure environment variables have been set
    # as described at beginning of this section
  2. CMake

    $ mkdir build && cd build
    
    # Modify -DCONNECTIVITY_VERSION=a.b.c
    $ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..

    COMPILE_CONNECTIVITY is set to 1 to enable compiling connectivity firmware.

    CONNECTIVITY_VERSION defines a version for the compiled connectivity firmware.

    Check more options at compiling pc-ble-driver on Windows

  3. Compile

    $ cmake --build . --target compile_connectivity

    The HEX files are available in the hex/sd_api_v<x> folder after compilation. They include the SoftDevice and the connectivity application.

Compiling connectivity HEX files on Ubuntu Linux or macOS

  1. Set environment

    # cd <pc-ble-driver-root-folder>
    $ export TMP=/tmp
    
    # Make sure environment variables have been set
    # as described at beginning of this section
  2. CMake

    $ mkdir build && cd build
    
    # Modify -DCONNECTIVITY_VERSION=a.b.c
    $ cmake \
        -G Ninja \
        -DCOMPILE_CONNECTIVITY=1 \
        -DCONNECTIVITY_VERSION=1.0.0 \
        ..

    COMPILE_CONNECTIVITY is set to 1 to enable compiling connectivity firmware.

    CONNECTIVITY_VERSION defines a version for the compiled connectivity firmware.

    Check more options at compiling pc-ble-driver on Ubuntu Linux or macOS

  3. Compile

    $ cmake --build . --target compile_connectivity

    The HEX files are available in the hex/sd_api_v<x> folder after compilation. They include the SoftDevice and the connectivity application.


Programming connectivity HEX files

SEGGER J-Link-OB based kits

Go to install tools if the nRF5x Command-Line Tools have not been installed yet.

To use this library you will need to program the connectivity firmware on a nRF5x IC

Use nRF5x Command-Line Tools to erase and program the IC:

$ nrfjprog -f NRF5<x> -e
$ nrfjprog -f NRF5<x> --program hex/sd_api_v<x>/connectivity_<ver>_<baudrate>_with_s<x>_<a>.<b>.<c>.hex

Alternatively, use nRF Connect Programmer to erase and program the IC.

Nordic USB based kits

Installing drivers and tools

Some kits, like the pca10059 nRF52 dongle, do not have onboard debugger and will have to be programmed via serial DFU. On Windows, device drivers are required for the kits to be detected correctly by the operating system. To install the required drivers, please make sure you have the latest nRF Connect for Desktop installed.

Programming the connectivity firmware via serial DFU

Programming the connectivity firmware via serial DFU can be done from command line or from nRF Connect for Desktop.

Programming from command line with nrfutil

Device Firmware Upgrade with nrfutil is normally done in two steps: 1: generating the DFU zip package, and 2: performing the DFU procedure. A DFU zip package has been pre-made and is included in this repository. To run the DFU procedure with nrfutil with the pre-made DFU package:

nrfutil dfu usb-serial -pkg connectivity_x.x.x_usb_with_s<x>_<a>.<b>.<c>_dfu_pkg.zip -p <serial port>

Examples

The examples serve as a great starting point for development with pc-ble-driver. Examples include a heart rate monitor (BLE peripheral) and heart rate collector (BLE master) and show the basic structure of an application built on pc-ble-driver.

To quickly get the examples up and running, see examples/README.md.

Known issues

If you meet problems during installation of pc-ble-driver, please see Issues.md.

Contributions

Feel free to propose changes by creating a pull request.

If you plan to make any non-trivial changes, please start out small and ask seek an agreement before putting too much work in it. A pull request can be declined if it does not fit well within the current product roadmap.

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.

Feedback

If you find any bugs, or have questions or other feedback in general, please submit a post on the Nordic DevZone portal. Note that bug reports should describe in sufficient detail how to reproduce the bug.

License

See the license file for details.

More Repositories

1

Android-BLE-Library

A library that makes working with Bluetooth LE on Android a pleasure. Seriously.
Java
1,982
star
2

Android-nRF-Connect

Documentation and issue tracker for nRF Connect for Android.
1,299
star
3

Android-nRF-Toolbox

The nRF Toolbox is a container app that stores your Nordic Semiconductor apps for Bluetooth Low Energy in one location.
Kotlin
1,077
star
4

Android-DFU-Library

Device Firmware Update library and Android app
Java
760
star
5

Android-Scanner-Compat-Library

A compat library for Bluetooth Low Energy scanning on Android.
Java
755
star
6

IOS-nRF-Toolbox

The nRF Toolbox is a container app that stores your Nordic Semiconductor apps for Bluetooth Low Energy in one location.
Swift
600
star
7

IOS-DFU-Library

OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
Swift
517
star
8

nRF-Logger-API

The public library with nRF Logger API. Allows to log custom logs into the nRF Logger database.
Java
413
star
9

Android-nRF-Mesh-Library

The Bluetooth Mesh Provisioner and Configurator library.
Java
404
star
10

pc-nrfutil

nrfutil python library and command line client
Python
383
star
11

bluetooth-numbers-database

An up-to-date listing of all the various Bluetooth Specification-related elements that are defined by our industry (Company IDs, Service UUIDs, Characteristic UUIDs and Descriptor UUIDs), that you can use instead of rolling your own.
JavaScript
323
star
12

IOS-nRF-Mesh-Library

Provision, configure and control Bluetooth mesh devices with nRF Mesh library.
Swift
310
star
13

Kotlin-BLE-Library

Kotlin
300
star
14

Android-nRF-Blinky

nRF Blinky is an application developed targeting an audience of developers who are new to Bluetooth Low Energy
Kotlin
266
star
15

nrfx

Standalone drivers for peripherals present in Nordic SoCs
C
254
star
16

ble-sdk-arduino

C++
249
star
17

nRF-Sniffer-for-802.15.4

nRF-based 802.15.4 sniffer (firmware and software)
Python
227
star
18

IOS-CoreBluetooth-Mock

Mocking library for CoreBluetooth framework.
Swift
224
star
19

Nordic-Thingy52-FW

Nordic Thingy:52 software development kit. This kit is designed to assist users in developing their own custom firmware for Thingy. Please see http://www.nordicsemi.com/thingy for the latest news and software releases.
C
210
star
20

pc-nrfconnect-launcher

nRF Connect for Desktop application and framework
TypeScript
172
star
21

pc-nrfconnect-ble

Bluetooth low energy app for nRF Connect for Desktop
TypeScript
150
star
22

nRF5-SDK-for-Mesh

This repo is a "Release" clone of the zip files available @
C
145
star
23

IOS-nRF-Connect

Info page
136
star
24

pc-ble-driver-py

Python bindings for the ble-driver library
Python
126
star
25

zcbor

Low footprint C/C++ CBOR library and Python tool providing code generation from CDDL descriptions.
C
114
star
26

Android-Nordic-Thingy

Android SDK and sample application for Nordic Thingy:52
Java
107
star
27

Android-nRF-Beacon

The nRF Beacon application lets you explore the full range of possibilities for beacons using Bluetooth Smart technology. The application has been designed to demonstrate all features of the nRF8122 Bluetooth® Smart Beacon Kit.
Java
106
star
28

pc-nrfconnect-ppk

Power Profiler app for nRF Connect for Desktop
TypeScript
103
star
29

IOS-nRF-Connect-Device-Manager

A mobile management library for devices supporting nRF Connect Device Manager.
Swift
88
star
30

Android-nRF-Connect-Device-Manager

A mobile management library for devices running Apache Mynewt and Zephyr (DFU, logs, stats, config, etc.)
Java
81
star
31

pc-ble-driver-js

Node.js interface to the C/C++ pc-ble-driver library. API docs: https://nordicsemiconductor.github.io/pc-ble-driver-js/
JavaScript
79
star
32

pynrfjprog

Python wrapper around the nrfjprog dynamic link library (DLL)
C
75
star
33

pc-nrfconnect-programmer

Programmer app for nRF Connect for Desktop
TypeScript
66
star
34

IOS-Nordic-Thingy

iOS Library and example application for Thingy:52â„¢
Swift
65
star
35

IOS-BLE-Library

The Bluetooth LE library for iOS and Mac. 100% Swift.
Swift
62
star
36

Android-BLE-Common-Library

A companion library for the Android BLE Library. Contains parsers for common Bluetooth SIG characteristics.
Java
55
star
37

Android-nRF-Beacon-for-Eddystone

An application with Eddystone GATT Configuration Service & Google Nearby API and Proximity API.
Java
48
star
38

iOS-nRF-Blinky

A starter app for new developers in the BLE world!
Swift
44
star
39

nrf-udev

Linux udev rules for Nordic Semiconductor devices.
Shell
37
star
40

pc-nrfconnect-rssi

RSSI Viewer app for nRF Connect for Desktop
C
37
star
41

Flutter-nRF-Connect-Device-Manager

A Flutter plugin for McuMgr libraries for Android and iOS.
Dart
36
star
42

Android-nRF-Bluetooth-LE-Joiner

nRF BLE Joiner is an application that lets you add new IoT nodes to a network based on Bluetooth Smart.
Java
35
star
43

Linux-ble-6lowpan-joiner

C
35
star
44

pc-nrfjprog-js

Node.js library that exposes the functionality of the nRF Command Line Tools
C++
28
star
45

nrf-intel-hex

Yet another parser for "Intel HEX" files.
JavaScript
27
star
46

pc-nrfconnect-toolchain-manager

Install and manage tools to develop with the nRF Connect SDK (NCS)
TypeScript
24
star
47

pc-nrfconnect-shared

Dependency management for nRF Connect for Desktop packages
TypeScript
21
star
48

asset-tracker-cloud-firmware-aws

nRF Asset Tracker for AWS firmware.
C
18
star
49

pc-nrf-dfu-js

Javascript implementation of Nordic's DFU protocol over serial (or NoBLE).
JavaScript
17
star
50

nrf-device-setup-js

JavaScript
15
star
51

nRF-IEEE-802.15.4-radio-driver

A generic, stack independent and system independent IEEE 802.15.4 radio driver, intended for nRF SoCs with IEEE 802.15.4 radio. It contains a built-in support for multiprotocol, allowing for concurrent operation of IEEE 802.15.4-based stacks (e.g. Thread, ZigBee) with Bluetooth LE
13
star
52

pc-nrfconnect-linkmonitor

LTE Link Monitor app for nRF Connect for Desktop
JavaScript
13
star
53

pc-nrfconnect-gettingstarted

nRF Connect Getting Started Assistant is a tool to guide through the process of setting up the nRF Connect SDK toolchain
SCSS
12
star
54

asset-tracker-cloud-aws-js

A reference implementation of a serverless backend for an IoT product developed using AWS CDK in TypeScript.
TypeScript
12
star
55

asset-tracker-cloud-docs

The nRF Asset Tracker aims to provide a concrete end-to-end example for an IoT product in the asset tracker space.
CSS
10
star
56

pc-nrfconnect-dtm

C
10
star
57

IOS-Memfault-Library

nRF Memfault Library + Example App
Swift
8
star
58

pc-nrfconnect-boilerplate

Starting point for creating apps for nRF Connect for Desktop
TypeScript
8
star
59

Android-nRF-Wi-Fi-Provisioner

An Android library and app for provisioning Nordic Wi-Fi devices to a network.
Kotlin
8
star
60

KMM-BLE-Library

Kotlin
8
star
61

nRF52-Bluetooth-Course

7
star
62

IOS-nRF-Edge-Impulse

Connect to a Thing:53, collect sensor data over Bluetooth Low Energy and create your machine learning applications.
Swift
6
star
63

Android-Memfault-Library

An Android library for sending heap dumps to the Memfault cloud.
Kotlin
6
star
64

pc-nrfconnect-cellularmonitor

TypeScript
5
star
65

modemtalk

[end-of-life] library to interface with the nRF9160 modem
JavaScript
5
star
66

Android-Gradle-Plugins

Kotlin
5
star
67

pc-nrfconnect-docs

Developer documentation for nRF Connect for Desktop. Read them at https://NordicSemiconductor.github.io/pc-nrfconnect-docs/
HTML
5
star
68

IOS-nRF-Wi-Fi-Provisioner

A Swift library and app for provisioning Nordic Wi-Fi devices to a network.
Swift
5
star
69

pc-nrfconnect-serial-terminal

Terminal emulator for serial port connections
TypeScript
5
star
70

asset-tracker-cloud-app-js

The nRF Asset Tracker Web Application is a reference single-page application (SPA) developed using create-react-app in TypeScript.
TypeScript
5
star
71

piccata

Python CoAp Toolkit
Python
4
star
72

npmx-zephyr

npmx integration with Zephyr
C
4
star
73

pc-nrfconnect-tracecollector

Trace collector tool for nRF Connect for Desktop
JavaScript
4
star
74

microbit-v2-pager

C
4
star
75

cell-geolocation-helpers-js

Helper functions for the cell geolocation feature
TypeScript
4
star
76

nrf-device-lister-js

List usb, serialport and jlink devices
JavaScript
4
star
77

svada

SVD Parsing for Python
Python
3
star
78

asset-tracker-cloud-device-ui-js

Provides a user interface via a web application to interact with a simulated device for the nRF Asset Tracker.
TypeScript
3
star
79

cloud-azure-firmware-ci-runner-js

Runs firmware on a real device connected to Azure IoT hub.
TypeScript
3
star
80

at_host-hex

Compiles the AT host sample for 9161DK, 9160DK, and Thingy:91 and publishes it regularly.
3
star
81

cloud-aws-package-layered-lambdas-js

Packages lambda functions and layers for AWS lambda
TypeScript
3
star
82

NAT-TestServer

Receives NAT test messages from the NAT-TestFirmware and logs them and timeout occurances to S3
TypeScript
3
star
83

asset-tracker-cloud-firmware-azure

nRF Asset Tracker for Azure firmware.
C
3
star
84

Android-nRF-Edge-Impulse

Connect to a Thing:53, collect sensor data over Bluetooth Low Energy and create your machine learning applications.
Kotlin
3
star
85

nrfprogrammer-firmware-images

Provides a list of pre-compiled firmware images for nRF Programmer in the GitHub pages website for this repository.
TypeScript
3
star
86

npmx

Standalone drivers for Nordic PMICs
C
3
star
87

NFC-Connect

Kotlin
2
star
88

pmic-npm6001-lib

C
2
star
89

cloud-e2e-bdd-test-runner-js

Implementation of a test-runner for end-to-end tests of cloud-native applications using Gherkin features.
TypeScript
2
star
90

IOS-CoreBluetooth-Mock-Example

Sample app demonstrating migration to CoreBluetoothMock framework.
Swift
2
star
91

pc-nrfconnect-npm

TypeScript
2
star
92

cloud-device-helpers-js

Helper functions for interacting with the nRF9160 used during end-to-end tests
TypeScript
2
star
93

asset-tracker-cloud-code-style-js

Code style definitions for all nRF Asset Tracker projects.
JavaScript
1
star
94

asset-tracker-cloud-app-aws-js

The nRF Asset Tracker Web Application for AWS is a reference single-page application (SPA) developed using TypeScript.
TypeScript
1
star
95

nrfcloud-location-services-tests-js

Verifies the nRF Cloud Location Services REST API.
TypeScript
1
star
96

cloud-azure-firmware-ci-feature-runner-action

Uses @nordicsemiconductor/e2e-bdd-test-runner to run features files of a firmware.
JavaScript
1
star
97

cloud-e2e-bdd-test-runner-example-js

Example use of @nordicsemiconductor/e2e-bdd-test-runner
TypeScript
1
star
98

cloud-aws-firmware-ci-feature-runner-action

Uses @nordicsemiconductor/e2e-bdd-test-runner to run features files of a firmware.
JavaScript
1
star
99

lwm2m-types-js

TypeScript type definitions and JSON schema for the objects defined in the LwM2M Object Registry.
TypeScript
1
star
100

asset-tracker-cloud-memfault-azure-js

Memfault integration for Azure IoT Hub developed in TypeScript.
TypeScript
1
star