2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 08:10:03 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 08:10:03 -07:00
2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00
2025-10-05 18:24:44 -06:00
2025-11-17 16:44:30 -07:00
2025-11-17 16:44:30 -07:00

PicoCalc OS (Rust)

A simple operating system for the Clockwork PicoCalc, written in Rust.
This project provides a minimal kernel, ABI, and user-space applications to experiment with OS development on constrained hardware.

Status

Basic synchronous applications are working great.
Current focus is on exanding applications and porting software, finding bufs in ffi, and making sure the kernel is as stable as possible.

Project Structure

  • kernel/ The core OS kernel (task scheduling, drivers, memory, etc.)
  • userlib_sys/ FFI bindings for kernel syscalls - kernel ↔ userspace (Repr "C")
  • userlib/ Rust wrapper on top of userlib_sys
  • picolib/ Built with just newlib, and provides libc symbols when linking with C libraries
  • user-apps/ Collection of userspace programs (gif player, wav player, calculator, snake, etc.)

Features

  • Minimal Rust-based kernel targeting the PicoCalc
  • Custom ABI for Mostly safe communication between kernel and applications
  • Support for multiple user-space applications
  • Hardware drivers tailored for the PicoCalc( Audio, Display, Keyboard, ans Storage )

Getting Started

git clone https://github.com/LegitCamper/picocalc-os-rs.git
cd picocalc-os-rs
just userapps
# copy the build applications from target/thumbv8m.main-none-eabihf/release-binary/application to the sdcard and rename them to app.bin

# has builds for the official rp2350 board and the pimoroni2w board
just kernel-release rp235x # keep in mind that https://github.com/StripedMonkey/elf2uf2-rs version is required until https://github.com/JoNil/elf2uf2-rs/pull/41 is merged
Description
A simple OS for the clockwork picocalc
Readme MIT 701 KiB
Languages
Rust 99%
Just 1%