Can anyone tell me where the “Datetime” module, included in a lot of flavours of Python and Micropython, gets its time and date information from? Common sense tells me that access to a source, such as NTP, should be necessary but all the articles I have read so far focus on the format and extraction of the time/date information, not where it comes from.
I think that depends on your setup, hardware and software wise.
On one Pico setup I have a RV3028 RTC breakout and do the following.
from breakout_rtc import BreakoutRTC
from machine import RTC
RV3028 = BreakoutRTC(i2c)
rtc = BreakoutRTC(i2c)
hours = rtc.get_hours()
minutes = rtc.get_minutes()
month = rtc.get_month()
date = rtc.get_date()
That gets me reliable time without having to use NTP or having to sync the Pico’s RTC with a host.
If your just using the Pico’s onboard RTC, rtc = machine.RTC() , you need to sync it to the correct time via NTP etc, as it doesn’t have any backup battery.
Thank you Gents. I must admit my question was partly academic. I have recently been playing with Plasm2040’s that I have incorporated it into a light/clock which uses a PCF8523 RTC. I have powered this on occasion from a battery and the thought crossed my mind that if the flavour of micropython that the Plsma2040 uses incorporated the Datetime facility (and I don’t know that it does!) then the RTC chip could be superfluous. This led on to “where does the “Datetime” module get its information from”? As I say mainly academic!
@Mad_Monk
My Tufty will sync the time from the host PC “if” I run my code from Thonny. Even then it drifts, gaining time a lot quicker than I had expected.