All posts

ZeroCalc

From delivery box to a standalone Pico-8 dev machine. The ZeroCalc build, minus the forum digging.

A ZeroCalc standing upright in a printed stand on a windowsill, showing the Pico-8 editor.
On this page

How to go from delivery to a ZeroCalc in 2026: My happy standalone little Pico-8 dev machine.

Here's a quick demo of Pico-8 running on my ZeroCalc.

Ignore the 3d printer sounds, I'm printing a handle for the thing.

There's a bunch of awesome people over at forum.clockworkpi.com who have worked out how to make this work. But, the forum post is a bit difficult to navigate, and find out what you absolutely need, vs. what's just cool tinkering.

For my purposes: the PicoCalc hits a great form factor and price point for a standalone Pico-8 dev machine. I love the Pico-8 platform and regularly tinker with small game ideas.

I've previously used a uConsole with a Raspberry Pi CM5 for this purpose, but it's overkill.

The Raspberry Pi Pico that the PicoCalc uses by default lacks power to run Pico-8 well, like I'd like it to.

My aim was to get the PicoCalc to run on a Pi Zero 2 W with pico8 and git. So that I can tinker with ideas, and hand them off to a repo and pick up elsewhere.

I don't need external USB, GPIO or anything similar.

Just pico8, a display, a keyboard, audio and internet.

If your needs are different, don't worry! I've left links to all the resources and hints about where to look for different setups throughout this guide. The Pi Zero 2 W is fairly capable compute with a lot of versatility, you could use it for all sorts.

  1. A PicoCalc kit - I got mine from AliExpress.
  2. A Raspberry Pi Zero 2 WH - The WH stands for Wi-Fi + Headers (presoldered headers). You can also just get a 2 W and solder the headers yourself.
  3. A reasonably speedy microSD card with a bit of space (32 GB+) - I use SanDisk Ultras because I trust them, I wanted about 128 GB so this is what I went with.
  4. The adapter board - I purchased from PCBWay, they sold me 5 for about US$1 each. Shipped to the UK in 3-4 days for a reasonable cost (about US$20).
  5. 2x20 pin headers with 2.54mm pitch - I bought mine from amazon in a set, I only used 2 of the 20pin headers. My Pi Zero 2 W came with headers presoldered. If you get the Pi Zero 2 W without headers you'll need some more for that too.
  6. 2x 18650 batteries from a good source - I bought mine (flat top) from NuBattery in the UK. There's forum posts on battery options if you're stuck.
  7. A trusty soldering iron and some solder.

I also used 2 female 8 pin headers (2.54mm pitch) to help with soldering. Mine came from this kit some time ago.

TL;DR: if you plug the male headers into the female and sit the adapter board on top it's super easy to solder them straight.

Like this

There are other optional features like external USB, and a custom case. Most of the details of those can be found on Michael's Printables project.

Shameless Plug: Handle, stand, grip for the ZeroCalc

Link to section: Shameless Plug: Handle, stand, grip for the ZeroCalc

If you like the grip in the cover image, you can find it at Makerworld: PicoCalc Grip Stand Handle.

If you like it, check out the other things I make!

Heads up: there's a version you can print without the Pico-8 logo on the front. It's plate 2 in the print profile, and the .step files are included in the 3D model files if you want to modify it yourself.

Pictured and link is version 2 of the handle, that I made more comfy!

Source: github.com/nibheis/picocalc_trixie: Step 1

  1. Download and install Raspberry Pi Imager
  2. Plug in your microSD card
  3. Open Raspberry Pi Imager

In Imager:

  1. On the select device page choose "Raspberry Pi Zero 2 W" and hit next
  2. On the Choose OS page, choose "Raspberry Pi OS (other)" and hit next
  3. On the next page, choose "Raspberry Pi OS Lite (64 Bit)" (A port of Debian Trixie) and hit next
  4. On the storage page, select your microSD card
  5. On the Customization page, set your hostname. I used "zerocalc" for mine, but you can choose whatever you like.
  6. On the Localisation page, set your locale. But! Set your keyboard layout to "us".
  7. On the User page, set your username, and password.
  8. On the Wi-Fi page, set up your Wi-Fi credentials; so we can ssh for the rest of the install.
  9. On the remote access page, enable SSH and set your authentication method as you wish.
  10. Hit "Write" and wait for it to finish.
  11. Unplug the microSD card and plug it into your Pi Zero 2 W.

Michael's video is a great walkthrough, and the summary below is the steps I took.

Michael posted a great build video that goes over the soldering, and physical build.

  1. Solder the 20pin headers to the adapter board
  2. Solder the Pi to the adapter board as well
  3. Plug in your microSD card to the Pi Zero 2 W (Flash instructions below)
  4. Plug the adapter board into your PicoCalc
  5. Add batteries
  6. Screw everything together

It should look like this

Note: in this image my microSD card isn't plugged in, it should be plugged into the Pi Zero 2 W.

Source: github.com/nibheis/picocalc_trixie

Once you have flashed the microSD card and completed the hardware build. Power it on. You'll find it may reboot a couple times the first time you hit it; don't worry, it'll eventually come up stable. I think it's doing SD card expansion and initial setup at that time.

The easiest way to find your ZeroCalc on the network is to use ping with the hostname you set in the imager. For example, if you set your hostname to zerocalc you can ping it with:

ping zerocalc.local
# or
ping zerocalc

Use the same hostname or IP address to SSH in:

ssh zerocalc
# You can prepend your username to set the correct user to log in to as well.
ssh james@zerocalc

Out the gate you want to run apt update.

sudo apt update && sudo apt upgrade -y
sudo apt install git -y
git clone https://github.com/nibheis/picocalc_trixie.git

It should be cloned into ~/picocalc_trixie(/home/your-username/picocalc_trixie)

In the picocalc_trixie directory, copy the display firmware

Link to section: In the picocalc_trixie directory, copy the display firmware
cd picocalc_trixie
sudo cp display/picomipi.bin /lib/firmware/

Activate the SPI Interface for the display

Link to section: Activate the SPI Interface for the display
sudo nano /boot/firmware/config.txt

Add the following lines to the end of the file:

# Enable SPI for the display
dtparam=spi=on

# Driver configuration for the display
dtoverlay=mipi-dbi-spi,spi0-0,speed=70000000
dtparam=compatible=picomipi\0panel-mipi-dbi-spi
dtparam=width=320,height=320,width-mm=43,height-mm=43
dtparam=reset-gpio=25,dc-gpio=24
dtparam=backlight-gpio=18
dtparam=clock-frequency=50

Configure the framebuffer configuration in the kernel command line

Link to section: Configure the framebuffer configuration in the kernel command line
sudo nano /boot/firmware/cmdline.txt

Add the following to the end of the line:

fbcon=map:1 fbcon=font:MINI4x6
sudo reboot

When you reboot this time, your display should work, but your keyboard won't be set up yet.

Link to section: Navigate to the keyboard firmware directory
  1. SSH back into the Pi
  2. cd to the picocalc_trixie directory
  3. cd into the keyboard directory

If you need the mouse, edit the firmware

Link to section: If you need the mouse, edit the firmware

If you need the mouse emulation that comes with the PicoCalc: press shift to turn the arrow keys into the mouse, and the square brackets into lmb and rmb

You need to update the picocalc_kbd.c file to uncomment the disabled mouse emulation.

sudo nano picocalc_kbd/picocalc_kbd.c
  • Remove the //| in front of the lines commented out.
  • They are the only lines commented out with this pattern //| so it should be easy to find.
  • At the time of writing it's lines 223-311
  • Delete the //| from the start of each line in that block, and save the file.

Build and install the keyboard firmware

Link to section: Build and install the keyboard firmware
# In the picocalc_trixie/keyboard directory
chmod +x setup_keyboard.sh
sudo ./setup_keyboard.sh

Confirm the keyboard setup worked

Link to section: Confirm the keyboard setup worked
sudo cat /boot/firmware/config.txt

The start of the file should now have the following lines:

dtparam=i2c_arm=on
dtoverlay=picocalc_kbd
sudo nano /boot/firmware/config.txt

Add the following lines to the end of the file:

dtparam=audio=on
dtoverlay=audremap,pins_12_13
sudo reboot

Once you've rebooted you should have most things working! The rest is optional but might be handy.

Optional: Configure your terminal font for a better display experience

Link to section: Optional: Configure your terminal font for a better display experience

Source: a comment by Lachlan_Beveridge

sudo dpkg-reconfigure console-setup

When you run this command, you'll be prompted with a series of questions. Here's how to answer them for the best experience on the PicoCalc display:

encoding: UTF-8
character set: Guess optimal
font: Terminus
size: 6×12

If, like me, you flashed with the wrong keyboard layout, you can fix it with:

sudo nano /etc/default/keyboard
  1. Find the line that starts with XKBLAYOUT=
  2. Change the value to us (or your desired layout)
  3. Save the file and exit
  4. Reboot the Pi

Optional: Copy useful scripts to your path

Link to section: Optional: Copy useful scripts to your path

Source: github.com/nibheis/picocalc_trixie

The picocalc_trixie repo has some useful scripts for running Pico-8 and other utilities. You can copy them to a directory in your PATH for easier access.

# Go to the picocalc_trixie directory
cd ~/picocalc_trixie
# Copy the scripts to /usr/local/bin
sudo cp -r user_bin/* /usr/local/bin/
# one is called "shutdown" which will lead to an infinite loop. rename it.
sudo mv /usr/local/bin/shutdown /usr/local/bin/shutdown-pi

# alternatively, modify the script and have it point to /usr/sbin/shutdown
sudo nano /usr/local/bin/shutdown
# Change 'shutdown' to '/usr/sbin/shutdown' and save the file.

Optional: Power off shutdown script

Link to section: Optional: Power off shutdown script

Fix problems with the original commands

Link to section: Fix problems with the original commands
  1. Enable i2c in raspi-config
# Run raspi-config
sudo raspi-config
# Navigate to "Interface Options"
# Select "I2C" and enable it
# Finish and reboot
  1. Install i2c-tools
sudo apt install i2c-tools -y

Follow the original guide here: Picocalc Trixie Guide

  1. Enable i2c in raspi-config
# Run raspi-config
sudo raspi-config
# Navigate to "Interface Options"
# Select "I2C" and enable it
# Finish and reboot
  1. Clone my fork of the repo with a full install script
git clone https://github.com/jamescodesthings/picocalc_trixie.git
  1. Run the install script for the shutdown utility
cd picocalc_trixie
cd poweroff
./install

Here's the main resources I used when working this out.

That's it for this one! I hope it's useful to anyone looking to do something similar. If you have any questions, or suggestions for improvements, feel free to reach out.

Many thanks to everyone mentioned in the resources, and anyone else who's worked on this in the forums. It's a great community and I'm grateful for all the work that's gone into making this possible.

If anyone involved in the project wants to add anything, or correct any mistakes, just let me know!