RTC

The RTC is used to keep track of the date and time.

Quick Usage Example

from machine import RTC

rtc = RTC()
rtc.init((2014, 5, 1, 4, 13, 0, 0, 0))
print(rtc.now())

Constructors

class machine.RTC([id=0, …])

Create an RTC object. See init for parameters of initialization.

# id of the RTC may be set if multiple are connected. Defaults to id = 0.
rtc = RTC(id=0)

Methods

rtc.init([datetime=None, source=RTC.INTERNAL_RC])

Initialize the RTC. The arguments are:

  • datetime when passed it sets the current time. It is a tuple of the form: (year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]). Without argument, it will not reset the previously set time.
  • source selects the oscillator that drives the RTC. The options are
    • RTC.INTERNAL_RC: Internal RC resonator
    • RTC.XTAL_32KHZ: External 32KHz crystal

For example:

for 2nd of February 2017 at 10:30am (TZ 0)
rtc.init((2017, 2, 28, 10, 30, 0, 0, 0))

tzinfo is ignored by this method. Use time.timezone to achieve similar results.

rtc.ntp_sync(server, [update_period=3600, backup_server])

Inits the RTC and sets up automatic fetch and update the time using NTP (SNTP).

  • server is the URL of the NTP server. Can be set to None to disable the periodic updates.
  • update_period is the number of seconds between updates. Shortest period is 15 seconds.
  • backup_server is the URL of the backup NTP server. Can be set to None to disable the periodic updates.

Can be used like:

rtc.ntp_sync("pool.ntp.org") # this is an example. You can select a more specific server according to your geographical location

rtc.now()

Get get the current datetime tuple as (year, month, day, hour, minute, second, usecond, None)

rtc.synced()

Returns True if the last ntp_sync has been completed, False otherwise.

rtc.memory([data])

Reads RTC memory contents or write data in passed Buffer in to RTC memory. The buffer has space to store 2048 bytes.

Example:

rtc = RTC()
rtc.memory(b'10101010') # writes data in RTC memory
rtc.memory()

Output:

b'10101010'

Constants

  • Clock source: RTC.INTERNAL_RC, RTC.XTAL_32KHZ