PicoOS
- 7 Devlogs
- 30 Total hours
Operating system coded in micropython made for Raspberry Pi Pico family
Operating system coded in micropython made for Raspberry Pi Pico family
While I am waiting for my ship to be reviewed, I have made huge progress. This is mainly because I finally managed to get a Raspberry Pi Pico W, and with that, I was finally able to connect PicoOS to the internet.
WiFi driver I built this driver on top of the built-in network library.
These are the functions it currently supports:
- Auto connect
- Network configuration
- Network scanning
- Status checking
- Disconnecting
Ping Yes, you guessed it right — PicoOS can now ping websites and IP addresses.
Download system Because I have my own domain, “https://picoos.dev”, and now an internet connection, I created a system where system files and apps are stored online at:
“https://picoos.dev/download/”
System updates I created a system updater because it is much easier to download only the updated files using the internet.
You can access it by typing the command: “update”
After that, it downloads manifest.json, which contains every system file with its SHA-256 hash.
PicoOS compares the local files with the online version and downloads only the files that are different.
The manifest is stored here: “https://picoos.dev/download/system/manifest.json”
App installation and updatesThis works almost the same way as the system updater, but it uses: “https://picoos.dev/download/apps/”
When you install an app, PicoOS downloads it and installs it directly into the system.
Update installer PicoOS already has its own installer that can install and update the system.
However, now that I added support for both the classic Raspberry Pi Pico and Pico W, I need to improve the installer so it can detect the device and install only compatible packages.
I want to improve the code structure and make the interface look better because the current version was mainly just a test to see if everything works — and it does! :)
I also want to add image-to-ASCII rendering, so maybe I can try running some interesting things on it. But that will be a surprise.
I want to create something like an SSH / remote access system. This will probably be another project and will work as a downloadable app.
However, before that, I need to create a system that can properly handle input and collect terminal output, so it doesn’t rely only on serial communication.
I think that is everything for this devlog.
Below you can see a preview of the system with some of the new commands.
I also want to ask: does anyone know how long I usually have to wait for a project review?
I reshiped this project about 5 days ago and still haven’t received any feedback.
If anyone knows, please comment on this devlog.
Thank you!
After my first unsuccessful ship, I changed my project’s banner and completely rewrote the README.
And yes, I used AI.
I even used it this time to fix my grammar because I’m not the best at English. Everything else, however, was written by me.
But hey, I hope it’s finally ready to be shipped.
:3
After many hours of development, bug fixes, and improvements, I finally reached a milestone I’m really happy with.
Over the past few weeks, I fixed numerous issues, created a dedicated installer, improved the GitHub repository, and built an official website for the project. Because of these improvements, I decided it was finally time to make the first public release of PicoOS.
Below you can see a preview of the website and the GitHub repository.
Love u :3
After many hours of coding, I finally decided to post my first devlog.
There are so many new things that I don’t even know where to start…
I wanted to make the code much cleaner, so I split the project into smaller modules. This makes PicoOS easier to maintain, easier to read, and much more organized.
I added a new utility that displays useful information about your device, including:
I’m getting PicoOS ready for everyone to try, so I created Installator.py.
The installer can:
This makes installing PicoOS much easier.
Here are a few things I want to work on next:
Below you can see a preview of the new code structure and the installer.
So today I finally added support for the SD card, and it’s one of the best features I’ve added to the OS. When you boot the OS, it automatically tries to mount the SD card, and then you can open it, add files, read files, and even unmount it whenever you want.
I also added what I call the Light Debugger. It basically initializes the built-in LED or a NeoPixel, allowing you to debug things like boot status, errors, and other events even when you don’t have the serial monitor open.
I also improved the app installation and app running system. You can now install apps directly from the SD card or run them without installing them first.
I also tried writing a simple Snake game for testing, and it’s working pretty well.
I also tried a little funny experiment: I sent the kernel code to Claude AI and asked it to rewrite it in Rust. And it actually did it! It wasn’t perfect—many things didn’t work—but hey, maybe one day I’ll rewrite the whole OS from MicroPython to Rust. Who knows?
So that’s everything for today, and I hope you like the new updates! :)
What do I want to do tomorrow? I want to make the OS look prettier, clean up the code to make it much easier to read and maintain, update the GitHub page, and maybe even create a simple website with a tutorial explaining how to run it on your own Raspberry Pi Pico.
Love u :3
I’ve made significant progress on my project recently. One of the major features I implemented is support for installing and running external applications. You can install apps and execute them, and I’ve tested it with my “nano” app — everything is working quite well.
I also took inspiration from Linux commands and added support for familiar ones such as touch, cd, ls, mv, cat, and mkdir, along with a few others. This makes the system feel more like a real command-line environment.
In addition, I introduced .conf configuration files to manage system and app settings. I also created a module called trun.run, which allows programs to execute automatically on boot. Because of this, I implemented a system for enabling and disabling features, with all settings stored in /conf/configuration.conf.
Next, I plan to add support for SD cards and some other improvements, but that’s a task for tomorrow. :)
Love u 
I’ve been making good progress on PicoOS today. I added a basic terminal with its own command system, started working on an application installation system, and built a simple terminal-based text editor that can create, edit, and save files.I also implemented a basic boot sequence, automatic startup support, and made a few improvements to the overall terminal experience. There’s still a lot to do, but it’s starting to feel like a real operating system instead of just a collection of scripts.The attached image is the actual output from PicoOS running on the hardware. At the moment I’m interacting with the system over the serial terminal while I continue developing new features.