explaingit

janfrombelgium/japi-base

17CAudience · ops devopsComplexity · 4/5ActiveSetup · hard

TLDR

Firmware and hardware design for a homemade retro 8-bit-style computer built on a Raspberry Pi Pico 2 with VGA out, PS/2 keyboard, micro-SD, and PWM stereo audio.

Mindmap

mindmap
  root((japi-base))
    Inputs
      PS/2 keyboard
      Micro-SD card
      LittleFS flash
    Outputs
      VGA 1024x768
      Stereo PWM audio
      Text and bitmap modes
    Use Cases
      Build a retro computer
      Learn Pico 2 peripherals
      Run a demo firmware
    Tech Stack
      RP2350
      C
      PIO
      LittleFS

Things people build with this

USE CASE 1

Solder a VGA, PS/2, and SD-card breakout to a Pico 2 to build a working retro computer

USE CASE 2

Flash the demo firmware in BOOTSEL mode to see a bouncing ball and color palette on VGA

USE CASE 3

Use the four-channel wavetable synth to generate ADSR sounds from your own Pico code

USE CASE 4

Run user code on core 1 while japi-base drives I/O on core 0

Tech stack

CRP2350PIOLittleFSCMake

Getting it running

Difficulty · hard Time to first run · 1day+

Needs physical hardware: a Pico 2, VGA monitor, PS/2 keyboard, logic level shifter, and a wired-up PWM audio filter.

In plain English

Japi Base is a small homemade retro computer built around a Raspberry Pi Pico 2, which is a low-cost microcontroller board with a chip called the RP2350. The author wires the Pico to a VGA monitor, a PS/2 keyboard, a micro-SD card, and a pair of speakers, then provides the software that drives all of that. The result behaves like a tiny 1980s style computer, and the project is presented as both educational and genuinely usable. On the screen it produces a VGA picture at 1024 by 768 pixels and 60 Hz. The default mode is text with 127 columns and 64 rows, drawn in an 8 by 12 pixel font from the classic CP437 character set, with 64 colours for both letters and backgrounds. A bitmap window can be overlaid on top of the text for graphics, capped at about 128 KB of video memory, which is enough for a near-full-screen 832 by 624 image at double scale. For input and storage, a PS/2 keyboard with pluggable layouts (AZERTY, QWERTY, QWERTZ) is read through a logic level shifter. Storage offers a 360 KB LittleFS flash partition that acts like a built-in floppy disk drive (drive A), plus an optional micro-SD card (drive C) read through SPI. Audio comes out as stereo PWM through a simple resistor and capacitor filter, with a built-in four-channel wavetable synthesizer that supports ADSR envelopes, volume, and pan. The central design idea is that one CPU core and one PIO block handle all the input and output work, while the second core and the remaining peripherals stay free for the user's own code. The repository ships a ready-made firmware file that can be copied onto the Pico in BOOTSEL mode to run a demo: a colour palette, a bouncing ball animation, a dithered version of Van Gogh's Starry Night, and a live API reference. A code editor and a BASIC interpreter are listed as next steps.

Copy-paste prompts

Prompt 1
Walk me through wiring a Raspberry Pi Pico 2 to a VGA connector for japi-base
Prompt 2
Explain how to copy the japi-base UF2 firmware onto a Pico 2 in BOOTSEL mode
Prompt 3
Show me how to call the japi-base text and bitmap API from a user program on core 1
Prompt 4
Switch the japi-base keyboard layout from AZERTY to QWERTY and rebuild the firmware
Prompt 5
Sketch a four-voice ADSR melody using the japi-base wavetable synthesizer API
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.