Connectivity bridge

The Connectivity bridge application demonstrates the bridge functionality for the Thingy:91 hardware and is an enhancement to the USB-UART bridge sample.

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 serial ports 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

Nordic UART Service (NUS)

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

Thingy:91

PCA20035

thingy91_nrf52840

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 a sample application for information about how to build and program the application.

Testing

After programming the sample to your board, test it by performing the following steps:

  1. Connect the board to the host via a USB cable.

  2. Observe that the CDC ACM devices enumerate on the USB host (COM ports on Windows, /dev/tty* on Linux).

  3. Use a serial client on the USB host to communicate over the board’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

  • Kernel Services:

    • include/kernel.h

  • Peripherals:

    • include/uart.h

    • include/usb.h

  • USB device stack

  • Bluetooth:

    • include/bluetooth/bluetooth.h

    • include/bluetooth/gatt.h

    • include/bluetooth/hci.h

    • include/bluetooth/uuid.h