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
Custom component for interacting with Octopus Energy

Home Assistant Octopus Energy ** WARNING: This component is currently a work in progress ** Custom component built from the ground up to bring your Oc

David Kendall 116 Jan 02, 2023
Activate Numpad inside the touchpad with top right corner switch or F8 key

This is a python service which enables switching between numpad and touchpad for the Asus UX433. It may work for other models.

Mohamed Badaoui 230 Jan 08, 2023
Python Keylogger for Linux

A keylogger is a program that records your keystrokes, this program saves them in a .txt file on your local computer and, after 30 seconds (or as long as you want), it will close the .txt file and se

Darío Mazzitelli 4 Jul 31, 2021
Claussoft Personal Digital Assistant

Claussoft Personal Digital Assistant Install on Linux $ sudo apt update $ sudo apt install espeak ffmpeg libespeak1 portaudio19-dev $ pip install -r r

Christian Clauss 3 Dec 14, 2022
A install script for installing qtile and my configs on Raspberry Pi OS

QPI OS - Qtile + Raspberry PI OS Qtile + Raspberry Pi OS :) Installation Run this command in the terminal

RPICoder 3 Dec 19, 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
The project is an open-source and low-cost kit to get started with underactuated robotics.

Torque Limited Simple Pendulum Introduction The project is an open-source and low-cost kit to get started with underactuated robotics. The kit targets

34 Dec 14, 2022
HACS gives you a powerful UI to handle downloads of all your custom needs.

HACS (Home Assistant Community Store) Manage (Install, track, upgrade) and discover custom elements for Home Assistant directly from the UI. What? HAC

HACS 3.2k Jan 04, 2023
Robo Arm :: Rigging is a rigging addon for Blender that helps animating industrial robotic arms.

Robo Arm :: Rigging Robo Arm :: Rigging is a rigging addon for Blender that helps animating industrial robotic arms. It construct serial links(a kind

2 Nov 18, 2021
Aqara Camera G3 integration for Home Assistant

Aqara Camera G3 integration for Home Assistant ATTENTION: The component only works after enabled telnet. Only supportd stream. Not support still image

14 Dec 18, 2022
Pihole-eink-display - A simple Python script to display PiHole statistics on an eInk Display

Pihole-eink-display - A simple Python script to display PiHole statistics on an eInk Display

Mark McIntyre 64 Oct 11, 2022
FHEM Connector for FHT Heating devices

home-assistant-fht from: https://github.com/Rsclub22 FHEM Connector for FHT Heating devices (connected via FHEM) Requires FHEM to work You can find FH

5 Dec 01, 2022
A simple non-official manager interface I'm using for my Raspberry Pis.

My Raspberry Pi Manager Overview I have two Raspberry Pi 4 Model B devices that I hooked up to my two TVs (one in my bedroom and the other in my new g

Christian Deacon 21 Jan 04, 2023
Software framework to enable agile robotic assembly applications.

ConnTact Software framework to enable agile robotic assembly applications. (Connect + Tactile) Overview Installation Development of framework was done

Southwest Research Institute Robotics 29 Dec 01, 2022
The ABR Control library is a python package for the control and path planning of robotic arms in real or simulated environments.

The ABR Control library is a python package for the control and path planning of robotic arms in real or simulated environments. ABR Control provides API's for the Mujoco, CoppeliaSim (formerly known

Applied Brain Research 277 Jan 05, 2023
Ha-rpi gpio - Home Assistant Raspberry Pi GPIO Integration

Home Assistant Raspberry Pi GPIO custom integration This is a spin-off from the

Shay Levy 98 Dec 24, 2022
2021 Real Robot Challenge Phase2 attemp

Real_Robot_Challenge_Phase2_AE_attemp We(team name:thriftysnipe) are the first place winner of Phase1 in 2021 Real Robot Challenge. Please see this pa

Qiang Wang 2 Nov 15, 2021
Like htop (CPU and memory usage), but for your case LEDs. 😄

Like htop (CPU and memory usage), but for your case LEDs. 😄

Derek Anderson 3 Dec 08, 2021
Various programs in Atari BASIC for #FujiNet for Atari 8-bit

FujiNet Various programs in Atari BASIC for #FujiNet for Atari 8-bit FujiNet-3D Tic Tac Toe In 1978, Scott Adams wrote a 3-D Tic Tac Toe game, for pla

Kay Savetz 2 Jan 01, 2022
PBA: Pleco Breeding Assistant

A small monitor that reports the external, fishroom and water change parameters to have suitable water parameters and induce breeding. These two features already represent 50% of the "reproductive su

Mirko Mancin 1 Jan 19, 2022