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
Baseline model for Augmented Home Assistant

Dataset Preparation Step 1. Rename the Virtual-Home output directory to 'vh.[name]', for example: 'vh.door' Make sure the directory contains 100+ fram

Stanford HCI 1 Aug 24, 2022
Pi-hole with Inky pHAT ePaper display

Pi-hole with Inky pHAT ePaper display This is my Pi-hole with an ePaper display.

11 Sep 13, 2022
Setup DevTerm to be a cool non-GUI device

DevTerm hobby project I bought this amazing device: DevTerm A-0604. It has a beefy ARM processor, runs a custom version of Armbian, embraces Open Sour

Alex Shteinikov 9 Nov 17, 2022
Home Assistant custom integration for Yi cameras: yi-hack-MStar, yi-hack-Allwinner and yi-hack-Allwinner-v2

yi-hack Home Assistant integration Overview yi-hack Home Assistant is a custom integration for Yi cameras (or Sonoff camera) with one of the following

roleo 131 Jan 03, 2023
Turns a compatible Raspberry Pi device into a smart USB drive for PS4/PS5.

PSBerry A WIP project for Raspberry Pi, which turns a compatible RPI device into a smart USB drive for PS4/PS5. Allows for save management of PS4 game

Filip Tomaszewski 2 Jan 15, 2022
A python file which I wrote to allow the Dorna Robots API to draw an Image on a 3D plane

Dorna-Robotics-Internship Code In the directory "Code" is a python file which I wrote to allow the Dorna Robots API to draw an Image on a 3D plane. I

Stephen Otto 2 Dec 06, 2021
Mini Pupper - Open-Source,ROS Robot Dog Kit

Mini Pupper - Open-Source,ROS Robot Dog Kit

MangDang 747 Dec 28, 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
A dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc. written in Python

Weather Clock for Raspberry PI This project is a dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc.

Markus Geiger 1 May 01, 2022
Christmasvillage-rpi - Raspberry Pi relay controller for ChristmasVillage.io

ChristmasVillage.io Relay Controller Links ChristmasVillage.io - Live Stream & Controls Youtube Instagram About This repository controls the light rel

Grant Windes 2 Feb 15, 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
A simple Picobot project implemented in Python

Python-Picobot A simple Picobot project implemented in Python About Explanation This is my first programming project. Picobot use rules.txt file which

Shayan Shiravani 0 Apr 03, 2022
A circle of LEDs

This repository contains all the design files, production files and example code for a simple circular LED display.

Pim de Groot 15 Aug 21, 2022
智能无人机路径规划仿真系统是一个具有操作控制精细、平台整合性强、全方向模型建立与应用自动化特点的软件

Drone智能无人机路径规划仿真系统是一个具有操作控制精细、平台整合性强、全方向模型建立与应用自动化特点的软件。它以A、B两国在C区开展无人机战争为背景,该系统的核心功能是通过仿真平台规划无人机航线,并进行验证输出,数据可导入真实无人机,使其按照规定路线精准抵达战场任一位置,支持多人多设备编队联合行动。

wwy 349 Jan 03, 2023
Connect a TeslaMate instance to Home Assistant, using MQTT

TeslaBuddy Connect a TeslaMate instance to Home Assistant, using MQTT. It allows basic control of your Tesla vehicle via Home Assistant (currently, ju

4 May 23, 2022
Hardware-accelerated ROS2 packages for camera image processing.

Isaac ROS Image Pipeline Overview This metapackage offers similar functionality as the standard, CPU-based image_pipeline metapackage, but does so by

NVIDIA Isaac ROS 52 Dec 15, 2022
MPY tool - manage files on devices running MicroPython

mpytool MPY tool - manage files on devices running MicroPython It is an alternative to ampy Target of this project is to make more clean code, faster,

Pavel Revak 5 Aug 17, 2022
Inykcal is a software written in python for selected E-Paper displays.

Inykcal is a software written in python for selected E-Paper displays. It converts these displays into useful information dashboards. It's open-source, free for personal use, fully modular and user-f

Ace 727 Jan 02, 2023
Extremely simple PyBadge examples to demonstrate different aspects of CircuitPython using PyBadge hardware.

BeginnerPyBadge I purchased a PyBadge recently. I'm new to hardware. I was surprised how hard it was to find easy examples demonstrating how different

Rubini LaForest 2 Oct 21, 2021
Controlling fireworks with micropython

Controlling-fireworks-with-micropython How the code works line 1-4 from machine

Montso Mokake 1 Jan 08, 2022