An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython.
“PycOS” is an combination of the words Python, Pico and OS.
- Clean and intuitive UI
- Support for custom themes
- Dedicated configuration file
- Overclocking/underclocking support
- Quick access to bootloader
- Custom boot file support
- Support for user-written scripts
- More customisation options
- Further UI improvements
- Enhanced and more visually appealing UI
- Cleaner and more efficient implementation of the UI
- Improved scripting support
- Desktop client for easy interfacing with the device
|Pimoroni Pico Display Pack||Yes (tested)||Everything functions correctly|
|Pimoroni Pico Display Pack 2.0||No (working on compatibility)||Requires a different display library to work and UI elements are not fully optimised|
|Raspberry Pi Pico||Yes (tested)||Everything functions correctly|
|Pimoroni Pico LiPo||Yes (not tested)||The form factor of the board is similar to the standard Raspberry Pi Pico and the microcontroller is the same, so it should be compatible|
|Version 0.3.0 (MicroPython v1.17)||Partially (tested)||rshell sometimes cannot copy files onto the board|
|Version 0.2.7 (MicroPython v1.16)||Yes (tested)||Everything functions correctly|
|Version 0.2.6 (MicroPython v1.16)||Yes (tested)||Everything functions correctly|
|Version 0.2.5 (MicroPython v1.16)||Yes (tested)||Everything functions correctly|
|Version 0.2.4 (MicroPython v1.16)||Yes (tested)||Everything functions correctly|
|Version 0.2.3 (MicroPython v1.16)||Yes (tested)||Everything functions correctly|
|Version 0.2.2 (MicroPython v1.15)||Yes (tested)||Everything functions correctly|
|Version 0.2.1 (MicroPython v1.15)||Yes (tested)||Everything functions correctly|
|Version 0.2.0 (MicroPython v1.15)||Yes (tested)||Everything functions correctly|
- USB data cable
- Raspberry Pi Pico (or any other compatible board)
- Pimoroni Pico Display Pack (or any other compatible display)
Make sure you are in the
pycos/ directory before starting.
Connect the board to your computer in USB mass storage device mode (also referred to as bootloader mode) which can be done by holding down the
BOOTSELbutton on the board while plugging it in. The
BOOTSELbutton varies from board to board and may be be called something different on yours.
Flash MicroPython with Pimoroni libraries onto your chosen board. This is done by copying the UF2 binary onto the boards storage.
Check that rshell recognises the board.
config.pyonto the board.
rshell cp main.py config.py /pyboard
Reset the board (can be done by disconnecting and reconnecting it if yours does not have a reset button).
If everything was done correctly and without errors, PycOS should now be installed on the board.
Currently the support for user-written programs is very restricted because of the limitation of MicroPython. Custom scripts can be prefixed with
Pp_ (stands for Pico program) and placed into the root directory for PycOS to recognise it as an executable program. The code must all be placed inside a
main() function as that is what gets executed.
Currently, there does not seem to be a way to update the display while PycOS is running a script.
.uf2 file can be loaded onto the board for executing C/C++ binaries. This can be done by putting the board in bootloader mode and copying the file onto the boards storage.
This will overwrite the MicroPython firmware so you will have to flash it again after.
config.py is the configuration file PycOS uses. It is located in the root directory (of the board) and contains variables in the standard Python syntax. It allows for quick editing of basic system functionality as well as the UI theme, without having to directly modify
main.py. Each variable is explained within the file as well as its default and recommended values.
The default order of file execution in MicroPython is:
boot.py(executed when the board boots up)
PycOS is stored in
boot.py empty for modifications.
If you choose to, you can write your own boot script to be executed prior to
main.py and copy it onto the board.
rshell cp boot.py /pyboard
You can check if there is a boot file on the board by going into the advanced about menu (Menu > About > More info > Advanced).
To delete the
boot.py file, run rshell, change directory into
/pyboard, and remove the file.
rshell cd /pyboard rm boot.py