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.
- OGF: 0x3f, OCF: 0x200
- Parameters: Flags (1 Octet) unused
- Response: HCI Command Complete Event with status and 4 bytes timestamp in microseconds
west build -b nrf5340dk_nrf5340_cpuapp -- -DEXTRA_DTC_OVERLAY_FILE=usb.overlay -DOVERLAY_CONFIG=overlay-usb.conf
HCI over UART and timesync not tested.
west build -b nrf5340_audio_dk_nrf5340_cpuapp
Release build:
west build -b nrf5340_audio_dk_nrf5340_cpuapp -- -DEXTRA_DTC_OVERLAY_FILE=uart1.overlay
Debug build:
west build -b nrf5340_audio_dk_nrf5340_cpuapp -- -DEXTRA_DTC_OVERLAY_FILE=uart1.overlay -DOVERLAY_CONFIG=debug.conf
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.
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 |