Poor performance of nRF5-ble-timesync-demo when using GATT

Project (NCS v2.7.0):

We are working on an application that requires time synchronized sampling of sensor data from 4 nRF52840 devices. The sensor data is then streamed to a single smartphone. To synchronize the device clocks, we are using the nRF5-ble-timesync-demo (more or less as is), but without registering a trigger. Instead we periodically query the global time (ts_timestamp_get_ticks_u64()), which we use to setup a sampling schedule. In parallel we have a GATT service (BT_GATT_SERVICE_DEFINE(...)) that sends the data to the smartphone via notifications.

Issue:

As long as the smartphone is not connected, the time sync works fine. But as soon as the smartphone connects, the receiver devices don't receive much (if any) time synchronization packets and the clock synchronization drifts apart.

Is there any way we can improve the time synchronization performance?

Related