Specification for the RTC on the IMX8X colibri module

Good Afternoon,

Does anybody know this please? I have spent a hour googling and got nowhere.

Is there a BOM for the module? What I am trying to find out regards the RTC.

The Colibri iMX8 module has a RTC. Does this have an external crystal and what ppm is it?

Hopefully there is something decent like an AT cut, to go with the extended temperature range.

If the oscillator on the chip is used instead what ppm is that?

I am planning a big fat lithium laptop battery and supercap backup (maxim MAX38886 and 10F) so not bothering with external RTC.



I have the iMX8QXP colibri up and running with its RTC using on a 10F Supercap .

A bit of good luck, jumper 23 pin #1 is 3v3_INTRTC which feeds straight to the module VCC_BAT.

The supercap charges up from pin 1 at 3v3, and with main battery disconnected holds 3v0 at the pin which keeps the module RTC running. The maxim limits the charge up current to around 200mA from discharged, and under a mA to keep it topped up

If the module RTC is not quite what I am looking for, there must be a better RTC than the creaky ds1307?

By the way, for us IMX8X Colibri supporters you need to make /etc/udev/rules.d/99-rtc1.rules
like this:

KERNEL==“rtc1”, SUBSYSTEM==“rtc”, DRIVER=="", ATTR{name}==“imx-sc-rtc”, SYMLINK=“rtc”, MODE=“0666”

Colibri iMX8X module has a 32.7680kHz/20ppm oscillator which is used as a clock source in low power mode including internal RTC.

For an external RTC I’d recommend MAX31328 . It has 3/5ppm stability and low timekeeping battery current of 660nA.


Thank you for your help.

In something normal plugged into the network, 20 ppm is 1.7 seconds a day stability is OK. For this one where the network access is limited, the module clock is not good quite enough really, over a year that is 10 minutes.

Your suggestion of the MAX31328 looks a very good choice, 0.3 seconds a day, over a year is 2 minutes. I will get a maxim kit and add it to my Colibri evaluation board prototype; it has so many tack on extra boards and straps you can hardly see it.

The human requirements for this instrument used to be an annual engineer visit to the blood lab to change out the battery, clean any dirt away, and reset the clock, update the software. With COVID it make sense to redesign, so the battery doesn’t need changing, dirt cant settle, the clock needs doing every 3 years or more and the software can be updated over the air.

I will post on how the MAX31328 checks out.



Thank you for the comments. Will wait for your updates about MAX31328.

Hi Alex,
I evaluated the MAX31328 and it was just perfect, apart from the footprint being slightly too large for what I wanted and that I need an external source of backup power to keep it running. So I looked again and found the RV-3028-C7 which is 1ppm, consumes 45nA and has an integral trickle charger for a supercap or hybrid. I chose a micro-supercap [upload|VazGLZMysDbolkNxzeGRa+i4zU8=] which is a Seiko CPH3225A. It was a snap to lay this out [upload|gms3dATGqxp52r0RSIROJ4r075o=]

There was a driver available from the makers of the RV-3028-C7, and there is an evaluation board. So I got both. Plugged the evaluation unit into the I2C (it has its own pull up resistors and I expected to have to whip these off, but I tried before doing that and it seems to be fine)

To install it in Torizon was a 5 minute job, I didn’t need to install the driver:

The thing seems “compatible” with the ds3231 but on address x52. Changes were made to the device tree (imx8qxp-colibri-eval-v3.dts) as follows

&i2c1 {

        status = "okay";

        rtc_i2c: rtc@52 {
                compatible = "maxim,ds3231";
                reg = <0x52>;
                status = "okay";

The RTC boot up rules are stored in file /etc/udev/rules.d/99-rtc1.rules
A new file was created with a single line to guide boot up phase.
KERNEL==“rtc0”, SUBSYSTEM==“rtc”, DRIVER==“rtc-ds1307”, ATTR{name}==“rtc-rv3028”, SYMLINK=“rtc”, MODE=“0666”

he system was re-booted and some initial tests were performed:
◦ colibri-imx8x-06800883:~$ sudo hwclock -v -f /dev/rtc0

hwclock from util-linux 2.35.1
System Time: 1621467202.801072
Using the rtc interface to the clock.
Last drift adjustment done at 1620669420 seconds after 1969
Last calibration done at 1620669420 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick

Time read from Hardware Clock: 2021/05/19 23:33:24
Hw clock time : 2021/05/19 23:33:24 = 1621467204 seconds since 1969
Time since last adjustment is 797784 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2021-05-19 23:33:23.252370+00:00

colibri-imx8x-06800883:~$ dmesg | grep rtc0

[ 2.012300] rtc-ds1307 17-0052: registered as rtc0

Removing the data strip to the module and RTC0 could no longer be found, confirming the RTC has been installed

Alex, do you think I should try to install the rv3028 driver or just leave this alone?



I’m not familiar with RV-3028 but according to its datasheet it’s a quite different from the ds3231. However if you need only a basic date/time get/set and nothing else (like alarm, interrupts, etc) you can use a ds3231 driver.