upyOS is a lightweight, modular, MicroPython-based operating system designed to bring a Unix-like experience to resource-constrained microcontrollers such as ESP32, ESP32-C3, ESP32-S3, Raspberry Pi RP2040, and similar boards.
Inspired by smolOS, upyOS aims to make embedded development more powerful and flexible with features like remote file management, OTA updates, multi-threading, and an integrated web server — all in a compact and modular architecture.
Unlike traditional monolithic firmware, upyOS separates functionality into small, independent modules, making it highly adaptable and memory-efficient.
It turns your MCU into a tiny Unix-like environment — complete with a command-line shell, process management, and networking tools — without losing MicroPython’s simplicity.
Key Features
Here are some of the standout features that make upyOS unique:
Modular Architecture
- Core system functions are split into small, reusable modules.
- Reduces overall memory footprint and allows custom builds.
Built-in Shell Environment
- Run commands and scripts directly via a CLI interface, similar to Unix.
- Includes tools like
ls,grep,ps,wifi,ifconfig, andreboot.
Startup & Shutdown Scripts
-
Automate system tasks using
/etc/init.shand/etc/end.sh. - Simplifies service management during boot or shutdown.
Recovery Mode
- Fail-safe mode that allows recovery when a boot failure occurs.
Background Execution
- Full support for threads and asyncio.
- Use process control commands like
hold,resume,kill,killall, or add&to run tasks in the background.
Remote Development Support
- Built-in Telnet and FTP servers for file transfer and remote terminal access.
- Integrated web server for hosting APIs or simple dashboards.
- Compatible with VS Code and other IDEs for direct file editing without rebooting.
Over-The-Air (OTA) Updates
- Update devices remotely via GitHub integration, no physical access required.
Tested Hardware
- Works seamlessly with ESP32, ESP32-C3, ESP32-S3, and Raspberry Pi RP2040 boards.
Screenshots & Developer Experience
upyOS provides an elegant developer workflow.
Below is an example of upyOS running on the Arduino Nano RP2040 Connect, displaying its modular shell environment and background execution capabilities.
upyOS on Arduino Nano RP2040 Connect
Developers can view logs, run network services, and execute scripts — all over Telnet, web interface, or serial console.
The upyOS kernel can be viewed and modified from Visual Studio Code, offering a full development environment directly from your desktop.
upyOS kernel loaded in Visual Studio Code
Installation Guide
Installing upyOS on a supported microcontroller is simple.
Follow these steps using mpremote:
That’s it — your board will reboot into upyOS with a ready-to-use Unix-like environment.
Resources & Source Code
upyOS is open source under the MIT License, making it free to modify and distribute.
You can find:
- Source code
- Example projects
- Screenshots
- Documentation
👉 On the official upyOS GitHub Repository.
0 Comments