diff --git a/README.md b/README.md index 6774714..0f5e9a7 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,55 @@ -# build for USB CDC +# nRF5340 Bluetooth Controller with Support for LE ISO Timesync + +This fork of the Zephyr HCI UART example adds a custom HCI Command to allow for timesync between the Bluetooth Host and the Bluetooth Controller. When the HCI LE Read ISO Clock command is received, the Controller toggles a GPIO and returns its current Bluetooth LE ISO Clock in the Command Complete Event. + +It has been tested on the nRF5340 Audio DK, but it should work with any nRF5340 dev kit. + +## HCI LE Read ISO Clock Command +- OGF: 0x3f, OCF: 0x200 +- Parameters: Flags (1 Octet) unused +- Response: HCI Command Complete Event with status and 4 bytes timestamp in microseconds + + +## nRF5340 Development Kit + +### HCI over USB CDC + ```sh west build -b nrf5340dk_nrf5340_cpuapp -- -DEXTRA_DTC_OVERLAY_FILE=usb.overlay -DOVERLAY_CONFIG=overlay-usb.conf ``` +_HCI over UART and timesync not tested._ + + +## nRF5340 Audio DK + +### HCI over UART 0 connected to Virtual UART in J-Link Probe -# build for build in serial adapter of the nrf5340_audio_dk a.k. uart0 ```sh west build -b nrf5340_audio_dk_nrf5340_cpuapp ``` -# build for uart1 a.k. arduino_serial +### HCI over UART 1 connected to Virtual UART in J-Link Probe as well as Arduino Headers + +Release build: ```sh west build -b nrf5340_audio_dk_nrf5340_cpuapp -- -DEXTRA_DTC_OVERLAY_FILE=uart1.overlay ``` -# build for debug and uart1 +Debug build: ```sh west build -b nrf5340_audio_dk_nrf5340_cpuapp -- -DEXTRA_DTC_OVERLAY_FILE=uart1.overlay -DOVERLAY_CONFIG=debug.conf ``` -# pinout for nrf5340_audio_dk for uart1 -| PIN | Arduino | nrf | -|:---:|:-------:|:-----:| -| TX | D0 | P1.09 | -| RX | D1 | P1.08 | -| RTS | D7 | P1.11 | -| CTS | D8 | P1.10 | +To use UART 1 via Arduino headers, the virtual UART of the J-Link probe needs to be disabled, e.g. with the JLink Configuration Tool. + +### UART 1 + Time Sync Pinout + +Signal direction as seen from the nRF5340. + +| PIN | Arduino | nrf | Direction | +|----------|---------|-------|-----------| +| TX | D0 | P1.09 | out | +| RX | D1 | P1.08 | in | +| RTS | D7 | P1.11 | out | +| CTS | D8 | P1.10 | in | +| Timesync | D10 | P1.01 | out |