A MicroPython-based mini asynchronous automation OS for DIY projects, featuring task scheduling, device communication, and a web interface.
micrOS is a MicroPython-based mini operating system for DIY automation projects on microcontrollers like ESP32. It provides an asynchronous task manager, scheduling, device communication, and web interfaces, allowing users to create complex automation systems without external servers. It solves the problem of building standalone, networked automation nodes with minimal setup and maximum flexibility.
DIY enthusiasts, hobbyists, and developers working on home automation, robotics, or sensor networks who want a lightweight, self-hosted OS for microcontroller projects. It's ideal for those familiar with Python and embedded systems seeking an extensible platform.
Developers choose micrOS for its all-in-one automation framework that combines scheduling, communication, and extensibility without requiring cloud services. Its modular Load Modules system and local-first design offer a unique balance of power and simplicity for resource-constrained hardware.
micrOS - mini asynchronous automation OS for DIY projects.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The async task manager enables background execution with start/kill/list controls and periodic/delayed triggers, allowing complex automation without blocking core operations, as demonstrated by the 'task list' and '&' command examples in the README.
Extensible application framework with over 30 prebuilt modules for sensors, actuators, and peripheries, facilitating rapid development—evidenced by the detailed sfuncman HTML documentation and LM_*.py files listed in the project structure.
ESPNow and InterCon protocols support direct node-to-node messaging without a central server, ideal for offline automation networks, with configuration options like 'espnow' and examples in the README for inter-device commands.
Cron jobs, sunrise/sunset triggers, and GPIO interrupts allow precise time-based and event-driven automation, detailed in configuration parameters like 'crontasks' and 'irqX_cbf' with examples for geolocation-based timing.
Full feature usage requires boards with PSRAM (2-8MB), and basic ESP32 boards may experience instability or restarts due to memory constraints, as the README admits that WebUI and multiple async tasks can exhaust ~80% of available RAM.
Numerous configuration parameters (e.g., cron, irq settings) and a multi-step setup with Python 3.12+ and DevToolKit installation create a steep learning curve, with the README listing over 20 advanced options requiring reboots for changes.
Native integration with popular IoT platforms or cloud services is lacking; extensions like MQTT rely on custom Load Modules (e.g., LM_mqtt_client), which may not be as robust or well-supported as dedicated frameworks.