Ausvantage Online

Wiki • RAD

RAD Expansion Unit (REU / GeoRAM)

A Raspberry Pi-powered cartridge/expansion for C64 and C128 that primarily emulates an REU (up to 16MB) and GeoRAM/NeoRAM (up to 4MB), with a built-in menu to browse and launch images and programs.

This page is a friendly cheat-sheet. For authoritative details (latest formats, fixes, hardware revisions), always read the upstream README + release notes.
RAD logo

What it emulates

  • REU up to 16MB (compatible with CBM 1700/1750/1764 REU + common clones)
  • GeoRAM / NeoRAM memory expansion up to 4MB
  • Menu launcher: browse/manage/launch memory images, NUVIEs, PRGs, and VICE snapshots (VSF)

Supported Raspberry Pi

  • Raspberry Pi 3A+, 3B+, Zero 2
  • Two PCB form factors: “big” (3A+/3B+) and “small” (Zero 2), but the design is intended to be interchangeable (check your PCB revision)

Gallery (official images)

RAD big and small PCB
RAD big + small PCB (official photo).
RAD menu screen
RAD menu (browse PRG / REU / GeoRAM, mount images, etc.).
RAD 3D printed case
Example 3D printed case (community design referenced upstream).
RAD PCB render
PCB render (useful for component placement orientation).

Quick start (SD card)

1) Get the firmware

Download the latest release and copy the release files onto a FAT32 microSD card. Keep your RAD content organized in the subfolders used by the menu.

Tip: Your main config lives at SD:RAD/rad.cfg. You can set the preferred startup mode (menu, REU, or GeoRAM) and tweak timings if you see glitches.

2) Add your content

  • Copy REU/GeoRAM images into the appropriate subdirectories (per upstream layout).
  • Copy .PRG files where you want them for browsing.
  • VICE snapshots (.VSF) can be launched/restored (see limitations below).

3) Use the menu

Navigate with the keyboard in the menu. Press H for help on-device.

Menu music (optional)

Replace SD:RAD/music.wav with your own WAV. Upstream recommends mono, 15.6kHz, 8-bit PCM, up to 8MB.

Why a menu? RAD’s functionality is software-defined: the menu (running on the ARM CPU) is how you mount images, swap modes, and launch supported formats quickly.

Build hardware (PCBs, BOM, assembly)

BOM / interactive BOM (iBOM)

The upstream project provides a BOM + interactive BOM for RAD v0.1: RAD v0.1 BOM / iBOM

PCB ordering

Assembly order (simple)

  1. Solder SMD parts (bottom side only).
  2. Solder the 2×20 female header (Raspberry Pi socket).
  3. Solder the edge connector header and push buttons.
Parts notes (upstream): LVC/LVX are fine for 245/257/573 ICs; 74LS30 or 74HCT30 can be used; ensure the correct CBTD3861.

3D printed cases

Upstream references a community case design that fits both the big (3A+/3B+) and small (Zero 2) PCB: ThingiversePrintables

Powering the RAD (important)

Critical safety rule: NEVER power the RAD from the computer and an external PSU at the same time. Never.

Recommended: external PSU

The upstream docs recommend using a good external power supply for the Raspberry Pi, and (for maximum safety) powering the RAD first, then turning on the C64/C128.

Power from the cartridge port (Pi Zero 2 practical note)

The RAD PCB can be configured to draw power from the C64/C128 expansion port via the “close to power…” jumper. Officially, this can be sensitive to the quality/strength/stability of the computer’s PSU. In practice, with a Pi Zero 2 many builds are generally fine and stay within reasonable draw — but if you see weird instability (NUVIE playback glitches, random crashes), switch back to a known-good external PSU first.

Rule of thumb: If anything feels “flaky”, treat power as the first suspect. Modern replacement PSUs and clean 5V rails help a lot.

Overclocking + stability

Upstream releases include Raspberry Pi settings that overclock the Pi (moderate on 3A+/3B+, more aggressive on Zero 2). If you run into instability, try easing those values in SD:config.txt.

Troubleshooting (timings, expanders, odd boards)

Menu glitches / NUVIE issues

Bus timings and cache parameters are stored in SD:RAD/rad.cfg. Most users don’t need to touch them, but cartridge port expanders (and some machines) can need alternate timing presets.

Known knobs (upstream): try adjusting WAIT_ENABLE_RW_ADDRLATCH and WAIT_ENABLE_DATA_WRITING in small steps (±10).

VICE snapshots (VSF) caveats

VSF snapshots can restore memory + VIC/SID/CIA/CPU state, but not everything is cycle-perfect (timers and CPU/VIC sync aren’t restored with absolute accuracy).

  • C64 VSF ≠ always safe on C128 (and vice versa).
  • Different KERNAL ROMs can cause crashes when restoring a VSF made on another setup.

Building from source (if you want to tinker)

RAD is built on the Circle environment (upstream references Circle 44.3 and a gcc-arm setup). The C64/C128 side uses 64tass. If you’re doing this, stick closely to the build settings included in the repo.

Bonus: RAD’s broader idea is “software-defined cartridge” — the hardware is intentionally simple (no programmable ICs), and features are mostly unlocked by firmware.

Useful links