Skip to content

cybergeist0/picoDOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PicoDOS

picoDOS overhead view

PicoDOS is a lightweight, interactive shell operating system environment built in MicroPython for the Raspberry Pi Pico. It provides a CLI, filesystem commands, and support for running simple .psh scripts and MicroPython apps. Note: Pico# (pico sharp, psh) is an interpreted language that I've written in MicroPython. It is tailored to the Pico and supports variables, conditions, primitive types, functions, iteration, standard input/output, and light recursion. I plan on making a seperate repository to document this language.


Features

  • Interactive terminal with command history, scrolling, and editing
  • Basic file system commands: DIR, CDR, DEL, RNM, MDR
  • Runs custom .psh script files with an embedded interpreter
  • Nano-style text editor for .txt and .psh files
  • Simple games playable with joystick and buttons
  • Runs on Raspberry Pi Pico with MicroPython firmware, however it can be compiled to .mpy and uf2 format to run without dependencies.
  • Designed for ease of use and expandability. This repo contains its MicroPython source code. On the Pi, it's cross-compiled into .mpy binaries using mpy-cross.

Supported Commands

picoDOS shell

Command Description
DIR List files and directories
CDR Change directory
DEL Delete a file (only .txt/.psh)
RNM Rename a file or directory
MDR Make a new directory
RUN Run a .psh script
OPN -R/W Open file in the built-in editor

Controls

  • The joystick is mainly used for navigation and gaming.
  • Buttons:
    • A — the ENTER key and typically start/stop in games
    • B — goes up a directory in file explorer, also used to restart a game
    • X — exit current app or shell
    • Y — return to picoDOS home menu
  • Keyboard:
    • A 4x4 matrix keypad
    • The first row is normal, all rows succeeding it have their last key reserved as a toggle button. This is similar to how SHIFT and NUMBER LOCK work on standard keyboards.

Installation

  1. Flash Raspberry Pi Pico with official MicroPython firmware.
  2. Clone the repo and compile the files into .mpy binaries using the mpy-cross cross compiler.
  3. If you want to take it a step further, you could inject the binaries into the MicroPython firmware and freeze it, condensing PicoDOS into a single uf2 file. Note that this would remove the ability to modify the PicoOS source files.

Future Work

  • Port picoDOS to C++ for better performance and bare-metal control
  • Add multitasking and more advanced filesystem support
  • Integrate more apps and network-based tools and services

Acknowledgments

Thanks to the Raspberry Pi Foundation and MicroPython community for making embedded development accessible.


MIT License © Satej Gandre

Releases

No releases published

Packages

No packages published

Languages