A tiny hackable dev handheld with RP2040 at its heart ❤
PicoSystem is a pocket sized handheld games console, built around Raspberry Pi's RP2040 chip (that's the little fella that's the core of a Raspberry Pi Pico).
We've taken these lucky bits of silicon to the component spa and treated them to the full works: a big chunk of flash memory, a vibrant 240x240 screen and a nice D-pad and buttons picked out by our most particular arcade enthusiasts. There's also a piezo speaker for discreet retro bleeps and chirps and a rechargeable LiPo battery so you can take your homebrew games on the bus.
The finished product looks and feels great - so we couldn't resist going all out on the build quality by adding a custom matt black anodised aluminium case with a handy wrist strap.
We think RP2040 has tons of potential as an experimental gaming platform, and we're really looking forward to seeing what folks create.
- Powered by RP2040 (Dual Arm Cortex M0+ running at up to 133Mhz with 264kB of SRAM)
- 16MB of QSPI flash supporting XiP
- 1.54" colour SPI IPS LCD (240 x 240 pixels)
- D-pad and buttons
- 525mAh LiPo battery (should be good for at least 6 hours of on-time)
- Piezo buzzer/speaker
- On/off power button
- RGB LED
- CNC milled aluminium case *swoon*
- Wrist strap
- Programmable and rechargeable via USB-C (cable not included)
- Comes fully assembled.
- C++/MicroPython API
As PicoSystem is RP2040-powered, you've got an array of options for making your own games. Here's a quick rundown!
- C++/MicroPython - Our official PicoSystem API is designed to be lightweight, easy to use and to not get in the way while you're developing games. You can find a C++ tutorial here and a function cheatsheet here. A MicroPython build is coming soon.
- CircuitPython - You can use the Stage library to make simple games in CircuitPython (thanks deshipu!). Download a PicoSystem flavoured CircuitPython build here.
- 32blit SDK - It's also possible to make PicoSystem games using C++ and the 32blit SDK, thanks to the heroic efforts of the 32blit community. Click here for 32blit x PicoSystem getting started instructions and here for a boilerplate template.
PicoSystem ships flashed with the mighty Super Square Bros. by Scorpion Games - if you like it as much as we do check out their itch.io page and show them some love.
Want to try out some pre-built games while you wait for inspiration to strike? Give these a go!
- Super Square Bros. by Scorpion Games - A bouncy quadrilateral platformer.
- Dots - Dot popping puzzler. Create chains of two or more and race to get the biggest score.
- Rocks and Diamonds - Classic game of dodging rocks and grabbing diamonds.
- Geometry - Smash up space boulders with lasers to make smaller space boulders!
- Rainbow Ascent - The Dark Souls of procedurally generated vertical jumping puzzles. Good luck.
- Super Blit Kart by Daft_Freak - A "Mode7"-based racing game.
To get into bootloader mode so you can flash a new .uf2, turn your PicoSystem on whilst holding down the X button - it should then show up as a drive called RPI-RP2 on your computer.
- Dimensions: 96.6 x 42.7 x 15.5mm (L x W x H, including buttons)
- There are broken out debug pins on the PCB for if you want to program PicoSystem with an external debugger but you'll have to remove the case (with the screws on the back) to get at them.
- If you want to have a look at PicoSystem's insides without having to take yours apart take a look at HackSpace's dissection report.
- Check out ETA Prime's review for unboxing, teardown and gameplay footage!
Raspberry Pi's RP2040 microcontroller is a dual core ARM Cortex M0+ running at up to 133Mhz. It bundles in 264kB of SRAM, 30 multifunction GPIO pins (including a four channel 12-bit ADC), a heap of standard peripherals (I2C, SPI, UART, PWM, clocks, etc), and USB support.
One very exciting feature of RP2040 is the programmable IOs which allow you to execute custom programs that can manipulate GPIO pins and transfer data between peripherals - they can offload tasks that require high data transfer rates or precise timing that traditionally would have required a lot of heavy lifting from the CPU.