<p>This RF ring oscillator runs on the NRF52 BLE SOC using the Adafruit feather development board. The NRF52 has an ARM Cortex M4F running at 64 MHz with built in BLE radio. This example uses a BLE stack provided by Adafruit. In particular, it makes use of the BLEUART service, a wrapper for the Nordic UART Service. On a host PC, we run a python script using the Adafruit BluefruitLE library.</p>
<p>To estimate round trip timing between two nodes with time loops of the host program where a byte is sent to the slave, and the slave sends the byte back. We also time the loop (including the sending) without waiting for the response. In this way, we can subtract the time taken by the host and estimate the time for a single RX and TX by the slave. The round trip packet time (as is consistent with other examples on this site) is then twice this estimate.</p>
<p>To estimate round trip timing between two nodes, we time loops of the host program where a byte is sent to the slave, and the slave sends the byte back. We also time the loop (including the host transmission) without waiting for the response. In this way, we can subtract out the time taken by the host and estimate the time for a single RX and TX by the slave. The round trip packet time (as is consistent with other examples on this site) is then twice this estimate.</p>
<p>An arduino sketch for the oscillator is available <ahref='ble_uart_ring.ino'>here</a>, or visible below.</p>