Devlog #8
This is again a really huge update, and there are many things that I made, and they are crazy, so let’s go.
What have I actually done?
-
My own package system: So you know how Debian has .apt packages? I made something like this for this OS. It’s just a minimalistic version, but it’s working, and I like how I made it work. First I tried Zip, but MicroPython doesn’t really have a zip library, so I am not using this. I am packing my own file format that’s basically bytes with headers and other stuff, ending with
".pcs", yeah. -
New installation system: Made in two parts:
-
Installer: The internet and local installer are now one file. If the Pico has internet and the user types
"app install app"(no .pcs), it first searches the internet, and if it finds nothing, tries local files. If the user types"app install app.pcs", it just searches local files. After this, the system extracts the".pcs"file into a folder using theExtractor, then reads the manifest and writes the app info and hash into"conf/apps.conf". -
Extractor: Reads a “.pcs” file, checks the headers to see if it’s legitimate, then reads the manifest and extracts everything into
"/apps/".
-
Installer: The internet and local installer are now one file. If the Pico has internet and the user types
-
Image rendering app: I tried to run
Bad Applein PicoOS, and for this I needed something like image rendering, so I made this. It reads its own file format".pxi", which has every line and the RGB color of every pixel in the line. It works line by line because the Pico doesn’t have a lot of RAM, and if I tried to load everything at once it wouldn’t handle it. The output is basically “██” — that ASCII block — colored using TrueColor. -
External tools: A new folder with every tool you need to:
-
build an app:
python build_app.py folder_path— takes the folder, reads every file, checks for main.py and manifest.json, and makes it into"foldername.pcs"and"foldername.pcs.256" -
extract an app:
python extract_app.py app_name.pcs— makes a folder with the app name containing everything that was in the app -
pxi converter:
python pxi_converter.py image— takes the image, scales it, reads every pixel and calculates its RGB value, and outputs"image_name.pxi"
-
build an app:
- Installing apps in installer.py: You can now install apps externally using the PC installer, so you can install apps from the internet. It gives you a menu where you select the apps you want, then it downloads them onto the Pico and runs the installer there.
- Download apps from the website: I have the website https://picoos.dev, and I added an apps section where you can find all the apps and their descriptions, and if you click download you get the app.
- Small changes: You can now select whether you have an SD card, and if not it won’t try to mount it. I repaired the error-saving so it can now save errors to the SD card. I changed the app manifest so now it must have the hash and description.
What I want to do next:
- README: outdated, need to add and change the info about PicoOS.
- Website: also outdated, must rewrite it.
- 2nd ship: because I’ve been waiting for feedback from the 1st ship for 11 days, I want to try shipping it a second time.
So this is maybe all from this devlog. It’s a huge update, and I want to make it even better. Thanks for the support.
Love u guys :3
Below you can see the image app in action, apps installing using the internet, and the website’s app section preview.
