Search by Tags

Use internal RTC on Windows CE

 

Article updated at 05 Aug 2019

By default all Colibri modules are configured to synchronize the system time from a Real-time-clock (RTC) chip which is located on the carrier board and connected to the Colibri through i2c. On iMX6, iMX7 and Vybrid based modules it is possible to use the internal on-chip RTC without relying on an external one.

To keep the system time through a power cycle, the active RTC (no matter whether it is on the carrier board or on the module) must be battery-powered as described in the Article RTC.

The internal RTC supports a time range of about 30 years. By default Windows CE uses 1/1/2006 as the base date for RTC, therefore the latest year that the internal RTC could store in this configuration would be 2036.

A fix provided in the latest release of iMX6 (1.4), iMX7(1.2b4) and Vybrid(1.6b4) BSPs and images allows to use the internal RTC overcoming this limitation. This requires a few manual configuration steps.

  1. You need to enable this feature in the config block.

    rtc.useinternal = 1
    rtc.year = 2019                ; optional, to increase the range. Default is 2016
    save rtc
    

    The changes are effective only after a reboot.
     

  2. Remove automatic execution of RTCSync (that relies on external RTC) by adding this entry to your registry and saving it:

    [HKEY_LOCAL_MACHINE\Init]
    "Launch48"="_rtcsync.exe"
    

    This will prevent the execution of the RTCSync tool. Executing RTCSync without an external RTC hardware connected will slow down the boot process, but should have no other side effect.