upyOS - Modular MicroPython-Based OS Brings Unix-Like Power to ESP32, RP2040 & More

 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.

upyOS - Modular MicroPython-Based OS Brings Unix-Like Power to ESP32, RP2040 & More

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.

upyOS

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, and reboot.

Startup & Shutdown Scripts

  • Automate system tasks using /etc/init.sh and /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.

upyOS running on the Arduino Nano RP2040 Connect

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:

git clone https://github.com/rbenrax/upyOS.git cd upyOS mpremote fs -v cp main.py :main.py mpremote fs -r -v cp bin etc lib libx opt tmp www : mpremote Ctrl+D

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.

Post a Comment

0 Comments

Write For Us

Recommended Posts