MicroPython is a lean implementation of Python 3 optimized to run on microcontrollers and other resource-constrained systems. It serves as a cross-platform embedded runtime and hardware abstraction layer, providing a firmware framework that maps high-level software commands to specific microcontroller registers across diverse processor architectures.
The main features of micropython/micropython are: Cross-Platform Execution, Microcontroller Runtimes, Native Hardware Modules, Read-Eval-Print Loops, Resource-Constrained Runtimes, Virtual File Systems, Analog-to-Digital Converters, Board Configuration Profiles.
Open-source alternatives to micropython/micropython include: tinygo-org/tinygo — TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to… raspberrypi/pico-sdk — The pico-sdk is a software development kit for creating C and C++ applications on RP2040 and RP2350 hardware… esphome/esphome — ESPHome is a framework for creating and managing custom firmware for microcontrollers, specifically targeting ESP32… arendst/tasmota — Tasmota is a universal firmware platform for ESP8266 and ESP32 microcontrollers, designed to provide local control and… rwaldron/johnny-five — Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots… c3lang/c3c — c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static…
TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re
The pico-sdk is a software development kit for creating C and C++ applications on RP2040 and RP2350 hardware platforms. It functions as an embedded development kit that provides hardware abstraction layers and drivers to interface with microcontroller peripherals and registers. The project utilizes a CMake build system to manage the compilation of source code into multiple binary formats, including UF2, ELF, and HEX images. This environment coordinates the build and link processes to ensure the resulting firmware is correctly tailored for the target hardware. The toolkit covers embedded hard
ESPHome is a framework for creating and managing custom firmware for microcontrollers, specifically targeting ESP32 and ESP8266 architectures. It replaces the need for writing complex embedded C++ code by allowing users to define hardware behavior, pin configurations, and automation logic through simple, declarative text files. The system automatically compiles these configurations into optimized binary images, providing a streamlined path from design to deployment. The project distinguishes itself through a modular, component-based architecture that emphasizes local-first control, ensuring t
Tasmota is a universal firmware platform for ESP8266 and ESP32 microcontrollers, designed to provide local control and management of smart home hardware. It functions as an event-driven automation controller that replaces proprietary factory firmware, allowing users to manage relays, sensors, and lighting systems without relying on external cloud services. The system is built on a modular driver architecture that enables dynamic hardware configuration and peripheral support through a web-based management interface. The platform distinguishes itself through a template-driven hardware mapping s