Slime OS is an app beginer for the PicoVision (and soon other RP2040 and RP2350 devices). It was originassociate scheduleed for the Slimedeck Zero, a mini cyberdeck project. However I hope to broaden it to other devices and create factors.
This README grasps affiliate joins which help aid this project!
Slime OS runs in a restricted 32-color mode with a 400×240 inner resolution which is interlaced up to 800×480. This resolution should scale well on most HDMI discarry outs.
- Flash the expansivescreen produce of the PicoVision firmware to your PicoVision CPU.
- Use Thonny to replace the satisfieds of your PicoVision Micropython filesystem with the files in
src
.
Plrelieve refer to an example app for boiler ptardy.
Slime OS participates various libraries which are employd internassociate but may also be advantageous when making apps.
Begin by presenting skinnye_os…
Slime OS Library | Description |
---|---|
sos.gfx | Dratriumphg methods including shapes, text, and other utilities. |
sos.intents | Intents are employd to sfinish signals from an app to the OS, including quitting the app, swapping apps, or flipping the structure buffer. |
sos.ctrl | Controller for chooseing expansions. |
sos.kbd | Keyboard instance for reading buttons. |
This gentleware is experimental and does not toil finishly, definiteassociate rehires participate…
- Input is only aided via an i2c keyboard, which is not recorded (hoping to comprise USB keyboard soon)
- Some apps are upside down due to the Slimedeck having the screen rotated 180 degrees. Newer apps employ the
sos.explicits.*
methods which aid thediscarry out/flipped
appreciate inconfig.py
. Older apps employself.discarry out.*
and have savage math to rotate everyleang manuassociate. - Everyleang is generassociate infinish
Currently this project employs a very definite set of difficultware, however I’d enjoy to broaden it to aid other RP2040 and RP2350 boards in the future. Feel free to do PRs to comprise more ambiguous difficultware aid.
This project is currently only tested on the PicoVision.
The (currently) only aid keyboard is based off this XRT500 distant. There are a scant variants of this same “version” of distant, but I’ve only employd this exact one.
Alengthy with the distant, you will necessitate an MCP23017 to convert the key matrix to I2C. I have a scant extra of the keyboard PCBs useable for sale. You could also pick up an Adafruit MCP23017 board and wire it to the keyboard PCB by hand.
I would enjoy to comprise more input types in the future.
The expansion port employd on the Slimedeck is the 5-pin Dk925A-10M which, as far as I can alert, are only sbetter via Pimoroni.
The pinout employd for an expansion read left to right, with the edge uniteor facing you is…
5V – SDA/TX/CPU:GP0 – SCL/RX/CPU:GP1 – CTRL/GPU:GP29 – GND
A 4.7k resistor should be placed on the PicoVision uniteing the GPU’s GP29 to GND while the expansion side should place a 4.7k resistor between CTRL (GP29) and 5v.
Although the schedule is to eventuassociate aid various resistor appreciates for separateent protocols / speeds, due to a schedule misget this is not currently depfinishable. The PicoVision only has one ADC pin exposed (GPU:GP29) which is employd as CTRL, however to reliably choose the appreciate of the expansion resistor we also necessitate a second ADC to act as a VREF (voltage reference) so we can choose the genuine voltage of our 5v line. As it stands if the 5v line is 5.2v or 4.9v due to load it may shift the appreciate of our expansion voltage splitr out of the foreseeed range and the expansion may be inrightly acunderstandledged. This is easily remidied with an outside i2c ADC, but it is not currently carry outed.
This gentleware is licensed as MIT.
App icons are from PiiiXL on Itch.io and are licensed CC BY 4.0