These BLE-Thread dynamic multiprotocol examples require you to run on the second board any complementary example that contains Thread CoAP Server functionality, for example:
The examples come with two variants presenting different BLE pairing options:
For more information about multiprotocol support, see Multiprotocol support with BLE/Bluetooth.
This example application is based on the UART/Serial Port Emulation over BLE example available in nRF5 SDK v15.3.0. It has been extended to support dynamic switching between two connection modes, BLE and Thread, at the same time (concurrently). Thread operates on the 802.15.4 radio during Bluetooth low energy radio's inactive time (using Timeslot API). Depending on the Bluetooth low energy connection interval, nRF52840 SoC can spend up to 99% of the radio time on Thread protocol.
This example also supports the Thread MTD CoAP Client role, as described in the MTD CoAP Client example.
The application works similarly to ble_app_uart
, using Nordic's BLE UART Service. When a UART command is sent from a mobile phone over BLE, nRF52840 acts as MTD CoAP Client and sends unicast or multicast CoAP messages to toggle the LED on the simple_coap_server
example board.
LED assignments:
MTD client button assignments:
/light
resource on a paired device. If no device is paired with a specific client node, pressing the button has no effect./light
resource. Sending a LIGHT_ON/LIGHT_OFF message instead of LIGHT_TOGGLE allows to synchronize the state of the LEDs on several server nodes./provisioning
resource.UART command assignments:
One variant of the application shows the usage of the NFC BLE pairing library. The application initializes and starts the NFCT peripheral, which is used for pairing. The application does not start advertising immediately, but only when the NFC tag is read by an NFC polling device, for example a smartphone or a tablet with NFC support. The message that the tag sends to the NFC device contains data required to initiate pairing. To start the NFC data transfer, the NFC device must touch the NFC antenna that is connected to the nRF52 Development Kit.
After reading the tag, the device can pair with the nRF52 device that is advertising. After connecting, the example application behaves in the same way as the example with the NFC BLE pairing disabled, but with one difference. The security level for the Nordic UART Service has been raised to the highest possible level - level 4, so that it is possible for the central device to turn on the UART only after a proper pairing procedure. When the connection is lost due to time-out, the library automatically triggers direct advertising.
The application allows to perform pairing in one of the following modes:
You can find the source code and the makefile in the following folders (with or without BLE NFC Pairing):
<InstallFolder>\examples\multiprotocol\ble_thread\ble_thread_dyn_mtd_coap_cli
<InstallFolder>\examples\multiprotocol\ble_thread\ble_thread_dyn_mtd_coap_cli_nfc
simple_coap_server
example to one of the boards and switch it on. LED 1 starts blinking (attaching to a Thread network) and, after a few seconds, it turns solid (attached to a Thread network or Thread network created): You can now control the BSP_LED_3 on this server node by pressing the left button in nRF Toolbox ("u" - command). You can also control CoAP Servers directly from the nRF52840 Development Kit by pressing BSP_BUTTON_0, BSP_BUTTON_1, or BSP_BUTTON_3.