1. Board information

2. Python on a Microcontroller

Because Python is an interpreted language, our MCU needs to run a Python Virtual Machine (PVM) that can run bytecode by executing machine code specific to the MCU.

There are two related options for using the Python programming language to code programs that run on a MCU:

  1. MicroPython

  2. CircuitPython (a modification and extension)

CircuitPython is specifically made for beginners and is a modification of MicroPython. This is nice but, it hides or prevents you from using all of the capabilities of the MCU in this name of ease.

Be aware of what flavor of Python is being used (or implied) when finding tutorials and example code. Many random tutorial authors are not very aware themselves of the differences and/or are writing to a specific audience profile.

3. MicroPython

If you are reading about normal Python (“CPython”), know that μPython has some differences: MicroPython differences from CPython.

4. CircuitPython

Recommended Reading to get familiar with the philosophy behind CircuitPython and get you started, in order:

The full documentation is found at:

4.1. What happens

  • boot.py runs only once after startup.

  • code.py (or main.py) runs after every reload until it finishes or is interrupted (error or Ctrl+C).