An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython

Related tags

HardwarePycOS
Overview

PycOS

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.

Overview

Features

  • 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

Future plans

  • 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

Compatibility

Displays Compatible Notes
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
Boards Compatible Notes
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
Firmware Compatible Notes
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

Requirements

Hardware requirements

Software requirements

Installation

Make sure you are in the pycos/ directory before starting.

  1. 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 BOOTSEL button on the board while plugging it in. The BOOTSEL button varies from board to board and may be be called something different on yours.

  2. Flash MicroPython with Pimoroni libraries onto your chosen board. This is done by copying the UF2 binary onto the boards storage.

  3. Check that rshell recognises the board.

     rshell boards
    
  4. Copy over main.py and config.py onto the board.

     rshell cp main.py config.py /pyboard
    
  5. 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.

Usage

MicroPython scripts

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 files

A .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

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.

boot.py

The default order of file execution in MicroPython is:

  1. boot.py (executed when the board boots up)
  2. main.py (executed after boot.py)

PycOS is stored in main.py, leaving 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

Images

You might also like...
New armachat based on Raspberry Pi PICO an Circuitpython code

Armachat-circuitpython New Armachat based on Raspberry Pi PICO an Circuitpython code Software working features: send message with header and store to

Turn your Raspberry Pi Pico into a USB Rubber Ducky
Turn your Raspberry Pi Pico into a USB Rubber Ducky

pico-ducky Turn your Raspberry Pi Pico into a USB Rubber Ducky Install Requirements CircuitPython for the Raspberry Pi Pico adafruit-circuitpython-bun

Play music on Raspberry Pi Pico Without CPU involvement

MicroPython_PIO_Music_DMA Play music on Raspberry Pi Pico Without CPU involvement This is based on PIOBeep (https://github.com/benevpi/pico_pio_buzz)

Raspberry Pi Pico as a Rubber Ducky
Raspberry Pi Pico as a Rubber Ducky

Raspberry-Pi-Pico-as-a-Rubber-Ducky Kurulum Raspberry Pi Pico cihazınız için CircuitPython'u indirin. Boot düğmesine basılı tutarken cihazı bir USB ba

A rubiks cube timer using a distance sensor and a raspberry pi 4, and possibly the pi pico to reduce size and cost.
A rubiks cube timer using a distance sensor and a raspberry pi 4, and possibly the pi pico to reduce size and cost.

distance sensor cube timer A rubiks cube timer using a distance sensor and a raspberry pi 4, and possibly the pi pico to reduce size and cost. How to

Designed a system that can efficiently sort recyclables and transfer them to corresponding bins using Python, a Raspberry Pi, and Quanser Labs.
Designed a system that can efficiently sort recyclables and transfer them to corresponding bins using Python, a Raspberry Pi, and Quanser Labs.

System for Sorting and Recycling Containers - Project 3 Table of contents Overview The challenge Screenshot My process Built with Code snippets What I

ArucoFollow - A script for Robot Operating System and it is a part of a project Robot
ArucoFollow - A script for Robot Operating System and it is a part of a project Robot

ArucoFollow ArucoFollow is a script for Robot Operating System and it is a part

Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

Alternative firmware for ESP8266/ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability

Mycodo is open source software for the Raspberry Pi that couples inputs and outputs in interesting ways to sense and manipulate the environment.
Mycodo is open source software for the Raspberry Pi that couples inputs and outputs in interesting ways to sense and manipulate the environment.

Mycodo Environmental Regulation System Latest version: 8.12.9 Mycodo is open source software for the Raspberry Pi that couples inputs and outputs in i

Comments
  • New features and improvements

    New features and improvements

    • New directory structure
    • GUI is now more modular
    • New dedicated configuration files
    • Startup file check (boot.py)
    • Improvements in modularity and efficiency
    • Other minor additions
    opened by Coosta6915 0
Releases(0.0.1)
Owner
haha computer go brrrrrrrrrr
Scripts for measuring and displaying thermal behavior on Voron 3D printers

Thermal Profiling Measuring gantry deflection and frame expansion This script runs a series of defined homing and probing routines designed to charact

Jon Sanders 30 Nov 27, 2022
A 3rd party Moonraker component to create timelapse of 3D prints.

A 3rd party Moonraker component to create timelapse of 3D prints.

Mainsail-Crew 166 Dec 26, 2022
Doughskript interpreter for converting simple command sequences into executable Arduino C++ code.

Doughskript interpreter for converting simple command sequences into executable Arduino C++ code.

Svjatoslav 2 Jan 11, 2022
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico

rgbkeypad A Python class for controlling the Pimoroni RGB Keypad for the Raspberry Pi Pico. Compatible with MicroPython and CircuitPython. keypad = RG

Martin O'Hanlon 43 Nov 11, 2022
A python script for Homeassistant that counts down the days to birthdays, anniversaries etc

Date Countdown A python script for Homeassistant that counts down the days to birthdays, anniversaries etc Important note I no longer use homeassistan

Marc Forth 21 Mar 12, 2022
Uses the Duke Energy Gateway to import near real time energy usage into Home Assistant

Duke Energy Gateway This is a custom integration for Home Assistant. It pulls near-real-time energy usage from Duke Energy via the Duke Energy Gateway

Michael Meli 28 Dec 23, 2022
Rasberry Pie GPIO memory game. Press the corresponding key to the lit LED.

RPie-keyboard-game Rasberry Pie GPIO memory game. Press the corresponding key to the lit LED. Randem LED (general output) is lit up on rasberrypi rand

Shawn Dowling 1 Oct 24, 2021
Python para microcontroladores com MicroPyhton

MicroPython - PyBR2021 Python para microcontroladores com MicroPyhton Repositório de exemplos para tutorial "Python para microcontroladores com MicroP

gabriel aragão 1 Oct 18, 2021
Custom component for MPC-HC for home-assistant

mpc_hc The current mpchc integration in homeassistant violates ADR0004, so it will be deleted from core. This is just the existing integration copied

3 Dec 15, 2022
a library for using WS2812b leds (aka neopixels) with Raspberry Pi Pico

pico_ws2812b a library for using WS2812b leds (aka neopixels) with Raspberry Pi Pico You'll first need to save the ws2812b.py file to your device (for

76 Nov 25, 2022
Home Assistant custom integration to fetch data from Powerpal

Powerpal custom component for Home Assistant Component to integrate with powerpal. This repository and integration is not affiliated with Powerpal. Th

Lawrence 32 Jan 07, 2023
Simple python3 implementation of microKanren with lots of type annotations for clarity

MicroKanren-py This is (yet another) python implementation of microKanren. It's a reasonably 1:1 translation of the code provided in the paper, but ev

Erik Derohanian 3 Dec 10, 2022
Open-Source board for converting RaspberryPI to Brain-computer interface

The easiest way to the neuroscience world with the shield for RaspberryPi - PIEEG (website). Open-source. Crowdsupply This project is the result of se

Ildaron 436 Jan 01, 2023
Simple Python script to decode and verify an European Health Certificate QR-code

A simple Python script to decode and verify an European Health Certificate QR-code.

Mathias Panzenböck 61 Oct 05, 2022
OctoPrint is the snappy web interface for your 3D printer!

OctoPrint OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero Genera

OctoPrint 7.1k Jan 03, 2023
Cow Feeder is a bot automatically execute trade on cowswap

Cow Feeder is a bot automatically execute trade on cowswap, includes functions: Monitoring Ethereum network gas price and execute trade whe

6 Apr 20, 2022
Code for the onshape macropad.

Onshape_Macropad Code for the onshape macropad. This is a macropad built using the Pimoroni Keybow and the KPrepublic Enclosure. pimoroni_keybow kprep

Justin Cole 1 Nov 23, 2021
An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython

PycOS An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython. "PycOS" is an combination of the

8 Oct 06, 2022
Modi2-firmware-updater - MODI+ Firmware Updater With Python

MODI+ Firmware Updater 실행 준비 python3(파이썬3.9 혹은 그 이상의 버전)를 컴퓨터에 설치 python3 -m pip

LUXROBO 1 Feb 04, 2022
Home-Assistant MQTT bridge for Panasonic Comfort Cloud

Panasonic Comfort Cloud MQTT Bridge Home-Assistant MQTT bridge for Panasonic Comfort Cloud. Note: Currently this brige is a one evening prototype proj

Santtu Järvi 2 Jan 04, 2023