upyOS is a modular, lightweight MicroPython-based operating system (OS) that provides a Unix-like experience on low-resource microcontrollers such as Espressif Systems ESP32/ESP32-C3/ESP32-S3, Raspberry Pi RP2040, and others.
Inspired by smolOS, upyOS offers remote development tools, OTA updates, and a built-in web server. Its modular architecture separates system functions into reusable components, instead of large, monolithic programs.

Key Features:
- Modular architecture: Commands and system functionality are broken down into small, independent modules to reduce memory usage.
- Built-in shell environment: Execute commands and scripts directly, providing a Unix-like CLI experience.
- Startup and shutdown scripting: Configure boot and shutdown behaviors using /etc/init.sh and /etc/end.sh.
- Recovery mode: A built-in failsafe mechanism lets users recover the system when booting fails.
- Background execution: Supports threads and asyncio for background tasks, along with & sufix, hold, resume, kill and killall commands for process control.
- Remote development support:
- Telnet and FTP servers allow file transfer and terminal access over the network.
- Integrated web server enables serving web interfaces or APIs directly from the microcontroller.
- Seamless development from IDEs like Visual Studio Code or any other, without needing to reboot or reset the MCU.
- Built-in system commands: Includes familiar tools such as ls, grep, ps, wifi, ifconfig, and reboot.
- OTA (Over-The-Air) updates: Keep your device updated remotely via GitHub without physical access.
- Tested hardware: Supports ESP32-C3, RP2040, and similar boards.

upyOS is suitable for embedded developers seeking a Unix-like OS experience on microcontrollers, educators and students, as well as makers and IoT developers. It is released under an MIT license and can be installed as follows:
|
1 2 3 4 5 6 |
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 |
Source code, usage examples, additional screenshots, and additional documentation can be found on GitHub.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.




