utime - Time

The utime module loosely follows CPython’s time module, but is heavily stripped down. Instead, it has a few time related functions which are not in CPython but wouldn’t fit anywhere else in our implementation. Most prominently, this is the utime.alarm() function for setting an RTC alarm.

utime.sleep(secs)

Sleep for secs seconds. Can take a floating-point value.

utime.sleep_ms(msecs)

Sleep for msecs milliseconds. Only takes integer values.

utime.sleep_us(usecs)

Sleep for usecs microseconds. Only takes integer values.

utime.time()

Return the current timestamp in seconds since 2000-01-01

utime.localtime([secs])

Return the current time as a timestruct tuple. If secs is given, return its timestruct tuple instead. Timestruct tuple looks like:

(year, month, mday, hour, min, sec, wday, yday)
#   0      1     2     3    4    5     6     7
utime.mktime(t)

Convert timestruct tuple into a seconds time stamp. See utime.localtime() for details about timestruct tuples.

Returns

Seconds since 2000-01-01

utime.alarm(secs[, callback])

Register the next RTC alarm for the timestamp secs. secs is seconds since 2000-01-01.

If an optional callback is given, it will be registered for the RTC alarm interrupt. This will overwrite any previous interrupt handler. If callback is given, utime.alarm() will also enable the RTC alarm interrupt.

Example:

import utime

def minute_timer(x):
   current = utime.time()
   print("Current: " + str(current))
   alarm = (current // 60 + 1) * 60
   utime.alarm(alarm, minute_timer)

minute_timer(None)

Alternatively, you can register a callback using the interrupt module and then call utime.alarm() without a callback parameter:

import interrupt, utime

def 5_second_timer(x):
   current = utime.time()
   print("Current: " + str(current))
   alarm = (current // 10) * 10 + 5
   utime.alarm(alarm)

# This time, we need to register and enable the callback manually
interrupt.set_callback(interrupt.RTC_ALARM, 5_second_timer)
interrupt.enable_callback(interrupt.RTC_ALARM)

5_second_timer(None)