1.. _bl654_usb: 2 3Laird Connectivity BL654 USB (451-00004) 4######################################## 5 6Overview 7******** 8 9The BL654 USB adapter hardware (Laird Connectivity part 451-00004) provides 10support for the Laird Connectivity BL654 module powered by a Nordic 11Semiconductor nRF52840 ARM Cortex-M4F CPU. 12 13This USB adapter has the following features: 14 15* CLOCK 16* FLASH 17* :abbr:`GPIO (General Purpose Input Output)` 18* :abbr:`MPU (Memory Protection Unit)` 19* :abbr:`NVIC (Nested Vectored Interrupt Controller)` 20* :abbr:`PWM (Pulse Width Modulation)` 21* RADIO (Bluetooth Low Energy and 802.15.4) 22* :abbr:`USB (Universal Serial Bus)` 23* :abbr:`WDT (Watchdog Timer)` 24* :abbr:`RTC (nRF RTC System Clock)` 25 26.. figure:: img/bl654_usb.jpg 27 :align: center 28 :alt: BL654 USB adapter 29 30 BL654 USB Adapter 31 32.. figure:: img/bl654_usb_pcb.jpg 33 :align: center 34 :alt: 451-00004 Box Contents 35 36 BL654 USB Adapter PCB 37 38More information about the BL654 USB adapter can be found on the `BL654 USB 39Dongle Quick Start Guide`_. There is more information on the BL654 range on 40the `BL654 website`_. 41 42Hardware 43******** 44 45Supported Features 46================== 47 48The BL654 USB board configuration supports the following 49hardware features: 50 51+-----------+------------+----------------------+ 52| Interface | Controller | Driver/Component | 53+===========+============+======================+ 54| CLOCK | on-chip | clock_control | 55+-----------+------------+----------------------+ 56| FLASH | on-chip | flash | 57+-----------+------------+----------------------+ 58| GPIO | on-chip | gpio | 59+-----------+------------+----------------------+ 60| MPU | on-chip | arch/arm | 61+-----------+------------+----------------------+ 62| NVIC | on-chip | arch/arm | 63+-----------+------------+----------------------+ 64| PWM | on-chip | pwm | 65+-----------+------------+----------------------+ 66| RADIO | on-chip | Bluetooth, | 67| | | ieee802154 | 68+-----------+------------+----------------------+ 69| RTC | on-chip | system clock | 70+-----------+------------+----------------------+ 71| USB | on-chip | usb | 72+-----------+------------+----------------------+ 73| WDT | on-chip | watchdog | 74+-----------+------------+----------------------+ 75 76Other hardware features have not been enabled yet for this board. 77See `BL654 website`_ 78for a complete list of BL654 USB adapter hardware features. 79 80Connections and IOs 81=================== 82 83LED 84--- 85 86* LED1 (blue) = P0.13 87 88Push buttons 89------------ 90 91* RESET = SW1 = nReset 92 93Serial Port 94=========== 95 96Zephyr console output is available as follows: 97 98- using the USB connector, which may be used to make the console available on PC as 99 USB CDC class. 100 101Programming and Debugging 102************************* 103 104Applications for the ``bl654_usb`` board configuration can be 105built in the usual way (see :ref:`build_an_application` for more details). The 106``bl654_usb`` board cannot be used for debugging. The compatible BL654_DVK 107board can be used for development. Documentation can be found at the `BL654_DVK 108Zephyr site`_ and :zephyr_file:`boards/arm/bl654_dvk/doc/bl654_dvk.rst` 109 110Flashing 111======== 112 113The board supports programming using the built-in bootloader. 114 115The board is factory-programmed with a Laird Connectivity variation of Nordic's 116open bootloader from Nordic's nRF5x SDK. With this option, you'll use 117Nordic's `nrfutil`_ program to create firmware packages supported by this 118bootloader and flash them to the device. Make sure ``nrfutil`` is installed 119before proceeding. These instructions were tested with version 6.1.0. 120 121#. With the adapter plugged in, reset the board into the bootloader by pressing 122 the RESET button. 123 124 The push button is in a pin-hole on the logo side of the USB adapter. 125 126 .. image:: img/bl654_usb_reset.jpg 127 :align: center 128 :alt: Location of RESET button 129 130 The blue LED should start a fade pattern, signalling the bootloader is 131 running. 132 133#. Compile a Zephyr application; we'll use :zephyr:code-sample:`blinky`. 134 135 .. zephyr-app-commands:: 136 :app: zephyr/samples/basic/blinky 137 :board: bl654_usb 138 :goals: build 139 140#. Package the application for the bootloader using ``nrfutil``: 141 142 .. code-block:: console 143 144 nrfutil pkg generate --hw-version 52 --sd-req=0x00 \ 145 --application build/zephyr/zephyr.hex \ 146 --application-version 1 blinky.zip 147 148#. Flash it onto the board. Note :file:`/dev/ttyACM0` is for Linux; it will be 149 something like ``COMx`` on Windows, and something else on macOS. 150 151 .. code-block:: console 152 153 nrfutil dfu usb-serial -pkg blinky.zip -p /dev/ttyACM0 154 155 When this command exits, observe the blue LED on the board blinking. 156 157 158Testing Bluetooth on the BL654 USB 159*********************************** 160Many of the Bluetooth examples will work on the BL654 USB. 161Try them out: 162 163* :ref:`ble_peripheral` 164* :ref:`bluetooth-eddystone-sample` 165* :ref:`bluetooth-ibeacon-sample` 166 167 168Testing the LED on the BL654 USB 169************************************************ 170 171There is a sample that allows you to test that the LED on 172the board is working properly with Zephyr: 173 174* :zephyr:code-sample:`blinky` 175 176You can build and flash the example to make sure Zephyr is running correctly on 177your board. The LED definitions can be found in 178:zephyr_file:`boards/arm/bl654_usb/bl654_usb.dts`. 179 180 181References 182********** 183 184.. target-notes:: 185 186.. _BL654 USB Dongle Quick Start Guide: https://www.lairdconnect.com/documentation/user-guide-bl654-usb-nordic-sdk-zephyr 187.. _BL654 website: https://connectivity.lairdtech.com/wireless-modules/bluetooth-modules/bluetooth-5-modules/bl654-series 188.. _J-Link Software and documentation pack: https://www.segger.com/jlink-software.html 189.. _Creating a secure bootloader image: https://www.lairdconnect.com/documentation/application-note-creating-secure-bootloader-image-bl654-usb 190.. _nrfutil: https://github.com/NordicSemiconductor/pc-nrfutil 191.. _BL654_DVK Zephyr site: https://docs.zephyrproject.org/latest/boards/arm/bl654_dvk/doc/bl654_dvk.html 192