machine — functions related to the board

The machine module contains specific functions related to the board.

Miscellaneous functions

machine.main(filename)

Set the filename of the main script to run after boot.py is finished. If this function is not called then the default file main.py will be executed.

It only makes sense to call this function from within boot.py.

machine.rng()

Return a 24-bit software generated random number.

machine.unique_id()

Returns a byte string with a unique identifier of a board/SoC. It will vary from a board/SoC instance to another, if underlying hardware allows. Length varies by hardware (so use substring of a full value if you expect a short ID). In some MicroPython ports, ID corresponds to the network MAC address.

machine.time_pulse_us(pin, pulse_level, timeout_us=1000000)

Time a pulse on the given pin, and return the duration of the pulse in microseconds. The pulse_level argument should be 0 to time a low pulse or 1 to time a high pulse.

The function first waits while the pin input is different to the pulse_level parameter, then times the duration that the pin is equal to pulse_level. If the pin is already equal to pulse_level then timing starts straight away.

The function will raise an OSError with ETIMEDOUT if either of the waits is longer than the given timeout value (which is in microseconds).

Constants

machine.IDLE
machine.SLEEP
machine.DEEPSLEEP

irq wake values

machine.POWER_ON
machine.HARD_RESET
machine.WDT_RESET
machine.DEEPSLEEP_RESET
machine.SOFT_RESET

reset causes

machine.WLAN_WAKE
machine.PIN_WAKE
machine.RTC_WAKE

wake reasons