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.





Quite cool. I hope my ESP32 is compatible, so that I can try it.
Ooh does it do that thing I most remember Univ for, ‘permission denied’
Hi how are you guys I’m Saadat from Pakistan and I’m Embbaded software developer
Not exactly a replacement for Arduino 😉 but sounds nice
why do people like micropython so much? It is so shit for performance and you learn nothing using that, you don’t try to learn register level handling you are never gonna be good at embedded system.
Username checks out.