Sample & Buy
Tools & Software
Quality & Reliability
Get Started
Partner products
Sales Briefcase
  • MicroPython (GRPL-uPython) is a rewrite of the Python 3.4 programming language tailored for STM32 devices. It offers on-chip compiler, virtual machine and runtime to enable the rapid prototyping of applications. Extension modules provide direct access to the peripherals of the STM32 device. Custom components written in C or C++ can easily be integrated.

    The pyboard reference development board is a small form-factor electronic circuit board based on a STM32F405 running MicroPython on the bare metal. The STM32 peripherals are exposed via a set of Python functions and classes.
    Several STM32 Nucleo boards and STM32 Discovery kits are supported by MicroPython.
    The high-level scripting language allows quick prototyping on MicroPython-based STM32 boards. RAM usage (especially the heap) is minimized. Migration from dynamic scripts is first enabled to pre-compiled bytecode and further to frozen bytecode where execution happens from flash. Computationally expensive application components can be migrated to C or C++ called from the Python code for performance optimization.
    MicroPython is as compatible as possible with standard Python so that code and knowledge transfer from a desktop-based to an MCU-based embedded system is made easy.
    MicroPython is supplied by a third party not affiliated to ST. For complete and latest information, refer to the third party website http://micropython.org/stm32/.

    Key Features

    • Python compiler and virtual machine run on the STM32 device
    • Interactive access to all language features over serial interface
    • Fully open-source code under the MIT License available on GitHub
    • Subset of Python 3.4 data types, functions, classes and modules:
      • Numbers: Arbitrary precision integers, floating point and complex numbers
      • Classes and instances: bytes, bytearray, tuple, list, dict, set, frozenset, array.array, collection, named tuple
      • str datatype with basic unicode support (utf-8 encoding)
      • closures, generators and full exception handling
      • Built-in modules such as sys, time, struct, os
      • Extra modules such as random, re, json, zlib, binascii, hashlib
    • Support for cooperative multitasking via coroutines and Python 3.5 async keyword
    • Multithreading for selected ports via the _thread module
    • File system support (FAT) with custom block devices and transparent access from scripts
    • Hardware-specific modules for access from scripts to STM32 peripherals such as GPIO, I2C, SPI, UART, ADC, DAC and timers
    • Easy-to-build add-on modules in C or C++ with Python calling C/C++ and vice versa
    • MicroPython for STM32 devices:
      • based on STM32 Cube HAL
      • small memory footprint: 256 kbyte Flash and 32 kbyte SRAM
      • SD card support with file system access from within MicroPython
      • USB support: CDC/VCP, MSC, HID

Get Software

Recommended for you

Latest from ST

Evaluation Tools

    • Part Number

      Discovery kit with STM32F411VE MCU

      Discovery kit with STM32F429ZI MCU * New order code STM32F429I-DISC1 (replaces STM32F429I-DISCO)

      Discovery kit with STM32F746NG MCU

      Discovery kit with STM32L476VG MCU

      STM32 Nucleo-64 development board with STM32F401RE MCU, supports Arduino and ST morpho connectivity

      STM32 Nucleo-64 development board with STM32F411RE MCU, supports Arduino and ST morpho connectivity

      Discovery kit with STM32F407VG MCU * New order code STM32F407G-DISC1 (replaces STM32F4DISCOVERY)

00 Files selected for download

Presentations & Training Material

    • Description Version Size Action
      STM32 and STM8 embedded software solutions 8.0
      3 MB
      STM32Cube ecosystem overview - Making STM32 development easier 1.2
      5.55 MB

      STM32 and STM8 embedded software solutions

      STM32Cube ecosystem overview - Making STM32 development easier