rtc
– Real Time Clock
The rtc
module provides support for a Real Time Clock. You can access and manage the
RTC using rtc.RTC
. It also backs the time.time()
and time.localtime()
functions using the onboard RTC if present.
Available on these boards
- rtc.set_time_source(rtc: RTC) None
Sets the RTC time source used by
time.localtime()
. The default isrtc.RTC
, but it’s useful to use this to override the time source for testing purposes. For example:import rtc import time class RTC(object): @property def datetime(self): return time.struct_time((2018, 3, 17, 21, 1, 47, 0, 0, 0)) r = RTC() rtc.set_time_source(r)
- class rtc.RTC
Real Time Clock
This class represents the onboard Real Time Clock. It is a singleton and will always return the same instance.
- datetime: time.struct_time
The current date and time of the RTC as a
time.struct_time
.This must be set to the current date and time whenever the board loses power:
import rtc import time r = rtc.RTC() r.datetime = time.struct_time((2019, 5, 29, 15, 14, 15, 0, -1, -1))
Once set, the RTC will automatically update this value as time passes. You can read this property to get a snapshot of the current time:
current_time = r.datetime print(current_time) # struct_time(tm_year=2019, tm_month=5, ...)
- calibration: int
The RTC calibration value as an
int
.A positive value speeds up the clock and a negative value slows it down.
Limitations: Calibration not supported on SAMD, Nordic, RP240, Spresense, and STM.
Range and value is hardware specific, but one step is often approximately 1 ppm:
import rtc import time r = rtc.RTC() r.calibration = 1