Connectivity bridge
The Connectivity bridge application demonstrates the bridge functionality for the Thingy:91 hardware.
Additionally, the application also provides an option of adding the Bluetooth® functionality by making use of the Nordic UART Service (NUS).
Overview
The Connectivity bridge acts as a USB composite device, exposing two UART interfaces to a USB host as two CDC ACM devices. The mapping of the UART interfaces are done in the following way:
UART Interface |
CDC ACM port |
---|---|
UART_0 |
CDC_0 |
UART_1 |
CDC_1 |
See Connecting to Thingy:91 for information on the baud rate configuration for Thingy:91 serial ports.
The application adds the functionality of a USB Mass Storage device, which contains several utility files such as a README.txt
file.
The application also provides a Bluetooth® LE UART Service, which can be enabled by the option CONFIG_BRIDGE_BLE_ENABLE
.
This service can be used for a wireless connection to one of the UART interfaces in the following way:
USB Interface |
Service mapped |
---|---|
UART_0 |
By default, the Bluetooth LE interface is off, as the connection is not encrypted or authenticated.
It can be turned on at runtime by setting the appropriate option in the Config.txt
file, which is located on the USB Mass storage Device.
Requirements
The sample supports the following nRF52840-based device:
Hardware platforms |
PCA |
Board name |
Build target |
---|---|---|---|
PCA20035 |
thingy91_nrf52840 |
|
The sample also requires a USB host which can communicate with CDC ACM devices, such as a Windows or Linux PC.
Building and running
This sample can be found under applications/connectivity_bridge
in the nRF Connect SDK folder structure.
See Building and programming an application for information about how to build and program the application.
Testing
After programming the sample to your kit, test it by performing the following steps:
Connect the kit to the host using a USB cable.
Observe that the CDC ACM devices enumerate on the USB host (COM ports on Windows, /dev/tty* on Linux).
Use a serial client on the USB host to communicate over the kit’s UART pins.
Dependencies
This sample uses the following nRF Connect SDK libraries:
In addition, it uses the following Zephyr libraries:
include/zephyr/types.h
boards/arm/nrf*/board.h
-
include/kernel.h
-
include/uart.h
include/usb.h
-
include/bluetooth/bluetooth.h
include/bluetooth/gatt.h
include/bluetooth/hci.h
include/bluetooth/uuid.h