Hi,
I'm trying to reach a +/- 100ms synchronization between two CC2642 using a multi_role based example without connections/pairing - just by broadcast and scanning. For discussion sake, lets say I'm trying to set it so that every 5 minutes one CC2642 broadcasts and the other one broadcasts 100ms after the first.
So far I've used a third CC2642 that sends pings every second. Right before I call the GapAdv_enable() command I call Seconds_getTime() and load the result into the ping data. Each of the other 2 CC2642 scans for this packet once per minute and uses Seconds_setTime() with the value from the ping packet.
The result was in the range of +/- 750ms between them. Sometimes they were broadcasting on top of each other and at most at about 750ms apart and it varied between each broadcast interval. I can only assume that using Seconds_getTime()/Seconds_setTime() is not sufficient.
I've read this article about achieving synchronization with proprietary PHY and it includes options to append a timestamp to the packets with a command to the RF core. I believe this would greatly reduce the lag I get over using the RTC functions. Can I use this setup while using the BLE5 stack, or will messing with RF configurations disrupt something in the program? If it's possible, would you mind adding a short guide as to what to change.
I'm using SDK version 6.10.0.29.
Thanks,
Eyal