AzureRTOS NetXduo SNTP Client Time synchronization issue with Windows 10 NTP server

yoji sato 281 Reputation points
2023-01-30T11:04:36.4666667+00:00

We are currently developing an edge device that connects to AzureRTOS-based IoTHUB.

The device uses NetXduo's SNTP client for time synchronization,

Time synchronization with an NTP server on the Internet is successful.

However, in the time synchronization with the Windows 10 NTP server that we installed locally,
After starting the server (after starting the NTP service), time synchronization succeeds,
After running the NTP server for a while, time synchronization fails.

Capture NTP packets when time synchronization succeeds and when it fails
When I compared them, I found that there were some discrepancies in the information (Root Dispersion).
Could you please confirm if this difference can cause the time synchronization to fail?

Also, if possible, take measures to solve this problem. can you give me some advice?

Azure RTOS
Azure RTOS
An Azure embedded development suite including a small but powerful operating system for resource-constrained devices.
324 questions
{count} votes

Accepted answer
  1. Bo Chen 596 Reputation points Microsoft Employee
    2023-02-06T02:26:33.3+00:00

    Hi @yoji sato Appreciate your patience. Root Dispersion indicates the nominal error relative to the primary reference source, this may cause the time synchronization to fail. Root Dispersion field can be set to a value corresponding to the maximum expected error of the clock, could you redefine NX_SNTP_CLIENT_MAX_ROOT_DISPERSION as 0 to disable this check and test again?

    2 people found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. Bo Chen 596 Reputation points Microsoft Employee
    2023-02-06T02:15:10.16+00:00

    Hi @yoji sato Appreciate your patience. Root Dispersion indicates the nominal error relative to the primary reference source, this may cause the time synchronization to fail. Root Dispersion field can be set to a value corresponding to the maximum expected error of the clock itself. Could you redefine NX_SNTP_CLIENT_MAX_ROOT_DISPERSION as 0 to disable root dispersion check and test again? thanks.