Usbsid-Pico: Bridging Real Commodore 64 Sound to Modern USB
USBSID-Pico: Bridging Real Commodore 64 Sound to Modern USB
By LouD | September 3, 2026
For those of us immersed in retro computing, the MOS Technology SID chip (specifically the 6581 and 8580 variants) stands as a legendary pillar of audio engineering. While modern software emulation is impressive, it simply cannot replicate the warm distortion and analog filters inherent to the original vintage silicon.
"Tech fascinates me, so when I have the option I like to pry it open, find out how it works and put it back together with 'improvements' not caring (at first) if it still works."
I am LouD (short for loudness), a software engineer and hobbyist. I developed the USBSID-Pico to create a direct bridge between authentic SID hardware and contemporary devices—such as workstations, smartphones, and media players—via USB (CDC, WebUSB, WebSerial), MIDI, and ASID.
🛠️ Hardware Overview
The heart of the device is the Raspberry Pi Pico series, utilizing the rp2040 and rp2350 microcontrollers. This allows the board to act as a versatile controller for:
- Up to two physical SID chips (with support for four coming soon).
- Modern hardware replacements.
🚀 The Evolutionary Journey
My path to the USBSID-Pico wasn't linear; it was a series of experiments driven by curiosity and a desire to hear chiptunes through real hardware.
Project Timeline
The Iteration Process
- The Beginning (Feb/March 2024): I started with SIDPod, a simple Pico-based player. To improve it, I developed SIDPod-SDCard to expand the available library of SID files.
- The Shift to Real Silicon (April 2024): I discovered ESP32-SIDView, which supported actual SID chips. Since I didn't own any, I acquired a SIDKICK-pico. Through reverse engineering, I mapped the
Pico to DIP-28pinout to move the project from a "spaghetti" breadboard to a cleaner setup. - Digital Friendships: During this phase, I connected with a developer named tobozo on GitHub. What started as a technical inquiry evolved into a meaningful friendship centered around coding, cats, and hardware.
- The FTDI Experiment (May 2024): Using a
FT223HLbreakout board and SidBerry (a Linux console app for RPi GPIO), I created the FTDI USBSID.- Software support included: FTDI versions of
SidBerryandVice 3.8. The FTDI ecosystem was enjoyable.Actually, it was quite limiting because it lacked a microcontroller, forcing all I/O switching into the driver.
- Software support included: FTDI versions of
- The Birth of USBSID-Pico (June 2024): To escape FTDI's constraints, I moved back to the Pico. I started with a single SID version, then quickly expanded to a dual-SID perfboard. With tobozo's encouragement, this evolved into the official v0.1 and eventually v1.0.
📊 Technical Specifications
The project has evolved from a prototype to a polished, open-source piece of hardware.
Version Comparison
| Feature | v1.0 (Baseline) | v1.3 (Enhanced) |
|---|---|---|
| Chip Support | Dual-SID (6581, 8580, Swinke, FPGA, ARM) | Mixed Generation Support |
| Connectivity | USB, WebUSB, MIDI, ASID | USB, WebUSB, MIDI, ASID |
| OS Support | Win, macOS, Linux, Android, AmigaOS | Win, macOS, Linux, Android, AmigaOS |
| Audio Output | Standard | |
| Voltage | Fixed | Mixed: (6581) & (8580) |
Implementation Details
The hardware is designed for accessibility. The schematics and PCB files are hosted on GitHub and available via PCBWay for those who wish to build their own.
// Conceptual logic for SID chip selection
if (socket_1 == MOS6581) {
set_voltage(12V);
} else if (socket_2 == MOS8580) {
set_voltage(9V);
}
🎯 Future Roadmap & Goals
The project continues to grow as I acquire new skills and meet more enthusiasts.
- Dual SID Support
- WebUSB Browser Playback
- Mixed Voltage Sockets
- Expand to 4 SID chips
- Implement WiFi connectivity
- Implement Bluetooth support
🖼️ Gallery
Development Prototype
Final Hardware Integration
This journey has been an incredible blend of creativity and technical growth. I am deeply grateful to the many people and groups who inspired this project—their contributions are noted in the credits of the main repository.