108 GBA PSG Voice

Tom's PickMagicDeepgbalink-cablemulti-bootchiptunepsgsynth-voicedrumsscreenquantiser

Turns a Game Boy Advance into a synth voice for your modular. The Workshop Computer loads custom software onto the GBA over its link cable using the GBA's built-in multiboot - no cartridge, no modifications. Your CV, knobs and gates then play the GBA's four sound channels, and the GBA sends its notes, gates and buttons back to the rack. Sound comes from the GBA's headphone jack; the sound editor is on the GBA's own screen. Works with the Game Boy Advance, GBA SP (with the SP headphone adapter) and Analogue Pocket.

THE CABLE. Wire one end of a link cable to the Workshop: GBA pin 5 (SC) to Pulse Out 1 through a 1k resistor, pin 3 (SI) to Pulse Out 2 through a 1k resistor, pin 2 (SO) to Pulse In 1, and pin 6 to ground. Leave pins 1 and 4 unconnected. Do not leave out the resistors - the pulse outputs swing to about 6V and the GBA runs at 3.3V. A Game Boy Color cable is best, as it has all six wires.

GETTING STARTED. Take the cartridge out. Switch on the Workshop first, then the GBA. The LEDs light in sequence as the software loads (about six seconds), the GBA screen goes green, and the MAIN page appears. Push the Z switch down to hear a note. If nothing happens, power-cycle the GBA - always needed after re-flashing the Workshop.

PLAYING. CV In 2 is 1V/oct pitch, the Main knob is channel 3's level, X and Y are attack and release, and the Z switch triggers. CV Out 2 is the quantised pitch, CV Out 1 the gate, and Audio Out 1 and 2 are the GBA's A and B buttons as gates. Everything else is yours to assign.

THE EDITOR. START opens it, SELECT + Left/Right changes page, A + D-pad changes values. Eleven pages: MEM (16 patch slots), CHAN, TRIG, ENV, MIX, BTN, MAP (modulation matrix), ORN (arpeggios), DRUM, CAL (trim 1V/oct tracking) and SET (key and scale quantising).

See the user manual PDF and README.md for a guided tour, and TECHNICAL.md for the full reference.

WatchDemo video

Panel

Workshop Computer panelLevel (Ch. 3)AttackReleaseMod 2Mod 3Mod 1PitchGBA SO (MISO)GateA button gateB button gateGate outQuantised pitchGBA SC (clock)GBA SI (MOSI)

Controls

Main knob

Level (Ch. 3)
Level of channel 3 by default; assignable on the MAP page

X knob

Attack
Attack, both envelopes together, by default; assignable on the MAP page

Y knob

Release
Release, both envelopes together, by default; assignable on the MAP page

Switch

Modulation: An eighth source on the GBA's MAP page - assign it to anything. Up is full, middle and down are zero

Trigger: Momentary down fires a note; a column of the GBA's TRIG grid

Inputs & Outputs

Inputs

Outputs

Inputs

Audio 1

Mod 2
Unassigned by default; assignable on the MAP page with per-voice tickboxes, or armable as a trigger source on the TRIG page

Audio 2

Mod 3
Unassigned by default; assignable on the MAP page with per-voice tickboxes, or armable as a trigger source on the TRIG page

CV 1

Mod 1
Unassigned by default - nothing should move that you did not patch. Give it a job on the MAP page, or arm it as a trigger source on the TRIG page

CV 2

Pitch
1V/oct pitch CV. Trim tracking on the GBA CAL page (CV inputs are not factory calibrated)

Pulse 1

GBA SO (MISO)
Serial data back from the GBA. Read directly via PIO, not the 48kHz pulse path

Pulse 2

Gate
Gate and trigger. Off in the factory patch - tick PU2 on the GBA's TRIG page to use it. Edges shorter than the 1ms poll are still caught

Outputs

Audio 1

A button gate
High while the GBA's A button is held - the performance gesture as a patchable voltage

Audio 2

B button gate
High while the GBA's B button is held

CV 1

Gate out
5V while a note is sounding

CV 2

Quantised pitch
The note the GBA is sounding, as calibrated 1V/oct. Turns the pair into a quantiser for the rest of the rack

Pulse 1

GBA SC (clock)
Master serial clock driven by the RP2040 (PIO), inversion handled in hardware

Pulse 2

GBA SI (MOSI)
Serial data to the GBA (payload upload, then the live input stream)

LEDs

LED 1

Link (solid booted, blinking connecting)

LED 2

Gate in / upload progress / fault code bit 0

LED 3

Note sounding / upload progress / fault code bit 1

LED 4

Editing on the GBA / upload progress / fault code bit 2

LED 5

Edit page bit 0 / upload progress

LED 6

Edit page bit 1 / upload progress

README

GBA PSG Voice

A Game Boy Advance linked to the Workshop Computer

A program card for the Music Thing Modular Workshop Computer that turns a Game Boy Advance into a synth voice for your modular.

The Workshop loads custom software onto the GBA through its link cable using the GBA's built-in multiboot, so you need no cartridge and no modifications. From then on, signals flow both ways: your CV, knobs and gates play the GBA's four sound channels, and the GBA sends its notes, gates and buttons back to the rack. Sound comes out of the GBA's headphone jack, and the sound editor is on the GBA's own screen.

User manual (PDF) · Technical guide · Program Card Firmware

Videos

Quick setup guide Bleepy demo Drone-y demo
Quick setup guide
Bleepy demo · walkthrough
Drone-y demo · walkthrough

What you need

AGB-001, GBA SP and Analogue Pocket
  • A Game Boy Advance, GBA SP or Analogue Pocket, with no cartridge in it. The GBA SP has no headphone socket, so it needs Nintendo's SP headphone adapter.
  • A link cable wired to the Workshop's pulse jacks, with two 1 kΩ resistors (see below).
  • The firmware, UF2/gba_link.uf2, flashed to the Workshop Computer.

Getting started

  1. Connect the GBA to the Workshop with the link cable. Leave the cartridge slot empty.
  2. Switch on the Workshop Computer first, then the GBA.
  3. The Workshop's LEDs light in sequence as the software loads (about six seconds).
  4. The GBA screen goes green, then shows the MAIN page.
  5. Push the Z switch down. You should hear a note.

Sound comes from the GBA's headphone jack. It is quiet by Eurorack standards, so plug it into a mixer or another input with gain.

Nothing happening? Power-cycle the GBA and try again. You always need to do this after re-flashing the Workshop. For fault codes and step-by-step checks, see the technical guide.

The cable

Link cable and link port pin numbers
Pin Signal Connect to
1 VDD nothing
2 SO Pulse In 1
3 SI Pulse Out 2, through a 1 kΩ resistor
4 SD nothing
5 SC Pulse Out 1, through a 1 kΩ resistor
6 GND ground
  • Don't leave out the resistors. The pulse outputs swing to about 6 V and the GBA runs at 3.3 V.
  • Use a Game Boy Color link cable if you can. They have all six wires; many third-party GBA cables don't.
  • The two ends of a link cable may swap SO and SI. If nothing connects, the technical guide has a diagnostic that tells you which wire is which.

Connections

Inputs Default job
CV In 2 1V/oct pitch
CV In 1 unassigned
Audio In 1 / 2 unassigned
Pulse In 2 gate / trigger (tick PU2 on the TRIG page)
Pulse In 1 GBA SO (link cable)
Main knob channel 3 level
X / Y knobs attack / release
Z switch down = trigger, up = assignable modulation
Outputs Job
CV Out 1 gate out
CV Out 2 pitch out (quantised, 1V/oct)
Audio Out 1 A button gate
Audio Out 2 B button gate
Pulse Out 1 GBA SC (link cable)
Pulse Out 2 GBA SI (link cable)

You can reassign every input, knob and the switch on the GBA's MAP page.


The GBA software

Button Does
START open the editor / back to the MAIN page
SELECT + Left/Right move between editor pages
D-pad move around a page
A + D-pad change a value

MAIN

MAIN page

The performance screen. It shows the note playing, the level of each of the four sound channels (SQ1, SQ2, WAV, NSE) and the live inputs and knobs. Here the D-pad, A, B and shoulder buttons are for playing: trigger, hold, ornaments and more, all set on the BTN page.

MEM: patch memory

MEM page

Sixteen patch slots, stored on the Workshop Computer. D-pad picks a slot, A + Up saves, A + Down loads.

⚠️ Saving overwrites the slot straight away. Check you are on the right slot first.

CHAN: channels

CHAN page

The core sound of each of the four channels: output (left / right / both / off), semitone offset, ornament, timbre (duty cycle or waveform), detune, noise pitch, and channel 1's pitch sweep.

TRIG: triggers

TRIG page

What fires each channel. Tick any combination of Pulse In 2, the Z switch, a GBA button, Audio In 1, Audio In 2 and CV In 1.

ENV: envelopes

ENV page

Attack, decay, sustain and release for each channel, plus portamento and retrigger. The shape is drawn as you edit it.

MIX: mixer

MIX page

Level (0–15) and left / right panning for each channel.

BTN: buttons

BTN page

What each GBA button does on the MAIN page: trigger, hold, octave up/down, duty cycle, ornament slots, channel on/off and more.

MAP: modulation

MAP page

The modulation matrix. Each source (CV 1, CV 2, Audio 1, Audio 2, the three knobs and the switch) gets a destination, an amount, and a tickbox per channel. An amount of +32 on PITCH is exactly 1V/oct.

ORN: ornaments

ORN page

Six arpeggios or pitch sequences of up to sixteen steps. Set the length, rate and mode (loop, or play once), then draw the steps.

DRUM: drum mode

DRUM page

Turns incoming triggers into percussion on channels 3 and 4, leaving the two squares free for melody. Pick a sound for each input (kick, snare, hats, toms, clap and more) and set the threshold.

CAL: calibration

CAL page

Trims how CV In 2 tracks 1V/oct (CV scale, offset and base note), and sets the master levels. The live tuner at the bottom shows the incoming note and the note being played, so you can trim until they match. You may need this page: every Workshop Computer's inputs are slightly different.

SET: settings

SET page

Master tuning, key, scale and octave. Choose a scale to quantise everything you play, and CV Out 2 becomes a quantiser for the rest of your rack. FREE turns quantising off. Four user scales can be edited note by note.


More

  • Technical guide: building the cable in detail, fault codes, every page in depth, how the link works, and how to build from source.
  • BENCH.md: step-by-step bring-up if it doesn't connect.
  • diagnostics/: link and cable test programs.

By Andy Jenkinson (YT/IG @uglifruity), 2026. Built on Chris Johnson's ComputerCard library for Tom Whitwell's Music Thing Modular Workshop Computer. MIT licensed.

Documentation PDF

PDF preview not available.

Download GBA Workshop Computer Card - User Manual.pdf

Verify your download

Confirm the file you downloaded really is that new firmware.

macOS / Linux (Terminal)

shasum -a 256 firmware.uf2

Linux also has sha256sum firmware.uf2.

Windows (PowerShell)

Get-FileHash firmware.uf2 -Algorithm SHA256

Compare the result to the SHA256 on the website — it should match exactly.