Overzicht
De USBSID-Pico is een hardware-interface ontwikkeld door LouD die echte MOS 6581/8580 SID-chips (van de Commodore 64) koppelt aan moderne systemen via USB, MIDI en WebUSB. Het project maakt gebruik van de Raspberry Pi Pico (RP2040/RP2350) om de analoge klank van vintage hardware toegankelijk te maken voor moderne werkstations en telefoons.
Technische Ontwikkeling
Het board is door verschillende iteraties gegaan om de functionaliteit en veiligheid te optimaliseren:
- Versie 1.0: Basis ondersteuning voor twee SID-chips en multi-protocol connectiviteit.
- Versie 1.3: Mogelijkheid om verschillende chipgeneraties te mixen en toevoeging van hardware audio-switching.
- Versie 1.5: Introductie van automatische spanningsregeling (9V/12V) ter bescherming van de chips, ZIF-sockets voor eenvoudige montage en verbeterde audiobescherming met ESD-diodes.
Firmware en Architectuur
De firmware maakt gebruik van de dual-core architectuur van de microcontroller:
- Core 0: Beheert USB-communicatie (CDC, WebUSB, MIDI) en configuratie.
- Core 1: Verantwoordelijk voor de MIDI-engine, SID-weergave, tests en de VU-meter.
Projecthistorie
Het project is voortgekomen uit een persoonlijke interesse in de Commodore 64 en is geëvolueerd van vroege experimenten met de SIDPod en FTDI-boards naar een volledig gecertificeerd OSHWA open-source hardware-ontwerp.
USBSID-Pico: Echt Commodore 64-geluid verbinden met modern USB
De USBSID-Pico vormt een brug tussen echte MOS 6581/8580 SID-chips (en hardwarematige SID-vervangers) en USB, MIDI, WebUSB en ASID, via een Raspberry Pi Pico.
Inleiding
Voor veel retro-enthousiastelingen wordt de MOS Technology SID-chip (6581 en 8580) van de Commodore 64 beschouwd als een van de meest iconische geluidschips in de audiogeschiedenis. Moderne software-emulatie komt in de buurt, maar niets vervangt echt de analoge filters en de warme vervorming van echte vintage hardware.
Ik ben LouD (kort voor loudness) en ik heb de USBSID-Pico ontwikkeld om echte SID-siliconen direct te verbinden met moderne werkstations, telefoons en mediaspelers via USB (CDC/WebUSB/WebSerial), MIDI, ASID en in de toekomst mogelijk WiFi en Bluetooth.
Het board wordt aangedreven door de Raspberry Pi Pico-microcontroller-serie (RP2040 en RP2350) en fungeert als een flexibele controller voor maximaal twee (en binnenkort vier) fysieke SID-chips of moderne hardware-vervangers.
Technische Hoogtepunten
Versie 1.0
- Dual-SID ondersteuning: Ondersteuning voor sockets met vaste spanning voor 6581- of 8580 MOS-chips, evenals hardware-vervangers zoals Swinke SID, FPGASID en ARMSID.
- Multi-protocol connectiviteit: Ondersteuning voor native USB, WebUSB (voor weergave via de browser), USB-MIDI en ASID-streamprotocollen.
- Cross-platform ondersteuning: Werkt op Windows, macOS, Linux, Android en AmigaOS.
- Certificering: OSHWA Open Source Hardware Certificering (NL000035).
- Open Source: Schema's en PCB-ontwerpen zijn open-source beschikbaar via de GitHub-repository en via PCBWay om zelfbouw door de community mogelijk te maken.
Versie 1.3 Upgrades
- Gemengde SID-configuraties: Maakt het mogelijk om verschillende chipgeneraties gelijktijdig te mixen (bijv. een 12V 6581 in socket 1 met een 9V 8580 in socket 2).
- Hardware Audio-switching: Toevoeging van een digitale schakelaar om direct op het board te wisselen tussen mono en echte stereo-output (Socket 1 via links, Socket 2 via rechts).
- Certificering: OSHWA Open Source Hardware Certificering (NL000045).
- Open Source: Schema's en PCB-ontwerpen beschikbaar via GitHub en PCBWay.
Versie 1.5 Upgrades
- 100% Jumperloze Spanningsregeling: Detecteert en stelt automatisch de juiste voedingsspanningen in (9V vs 12V) op basis van de geplaatste chip, om zeldzame SID-siliconen te beschermen tegen overspanningsschade.
- Automatische schakeling: Op basis van de socketspanning worden de filtercondensatoren, de audio shunt-weerstand en de digiboost-weerstand automatisch ingeschakeld of uitgeschakeld.
- Uitgebreid Footprint: De afmetingen van het board zijn iets vergroot om optionele dubbele ZIF-sockets (Zero Insertion Force) te kunnen accommoderen.
- Verbeterde compatibiliteit: Er is meer ruimte toegevoegd om grotere hardware-vervangers, zoals de FPGASID, te plaatsen zonder mechanische interferentie.
- Verbeterde Audiobescherming: Extra bescherming van de audio-ingang door toegevoegde pulldown-weerstanden wanneer er geen stekker in de audiojack zit, en toegevoegde ESD-diodes op de audio-ingang.
- Documentatie: Het schema is beschikbaar via de GitHub-repository om reparaties door de community mogelijk te maken.
Toekomstige Plannen (Pro Roadmap)
- Ondersteuning voor Quad-SID (sockets voor 4 hardware SID-chips).
- High-grade audio-routing en een lagere noise floor voor studiostudio-opnames.
- Toegewezen MIDI-ingangspoort.
Firmware
Het ontwikkelen van nieuwe en unieke PCB's voor microcontrollers vereist ook de ontwikkeling van de bijbehorende firmware. Na het kiezen van een microcontroller is het noodzakelijk om ervaring op te doen met de SDK. Dit brengt voor- en nadelen met zich mee; je moet diep in de SDK van de betreffende microcontroller duiken, wat je blikveld ten opzichte van andere microcontrollers kan vernauwen.
Dual Core, Twee Taken
De twee ARM-cores op de Pico verdelen het werk als volgt:
- Core 0: Behandelt alles wat met USB te maken heeft: CDC, WebUSB, MIDI en configuratiebeheer.
- Core 1: Heeft meerdere taken. Deze draait de MIDI-engine, de onboard-emulator voor SID-weergave of Cynthcart indien nodig, voert de SID-tests uit als de gebruiker dit triggert, en beheert de VU-meter wanneer er geen andere taken zijn.
Projectgeschiedenis
Het begin (februari – april 2024)
Ik ben altijd geïnteresseerd geweest in hoe dingen werken, van de eerste Commodore 64 die mijn ouders kochten tot mijn huidige werk als software engineer. Geïnspireerd door mijn oudere broer, die onder andere Commodore 64's repareert, ontstond het idee om een SID-afspeelapparaat te maken om SID-tunes via een echte chip te beluisteren.
In februari/maart 2024 vond ik een GitHub-repository voor de SIDPod, een SID-speler gebaseerd op de Raspberry Pi Pico. Dit leidde tot de bouw van een eigen versie en later de SIDPod-SDCard, waarbij ik een SD-kaart aan het ontwerp toevoegde.
In april 2024 ontdekte ik ESP32-SIDView, wat een mooi alternatief was omdat het ook echte SID-chips ondersteunde. Omdat ik toen geen SID's bezat, vond ik de SIDKICK-pico. Door hardware-reverse engineering heb ik een schema gereconstrueerd en de Pico-naar-DIP-28 pinout uitgevonden om dit op een breadboard te kunnen gebruiken.
Tijdens dit proces kwam ik in contact met de ontwikkelaar tobozo via GitHub, wat leidde tot een digitale vriendschap. Daarnaast ontdekte ik SidBerry, een Linux-applicatie voor het afspelen van SID-tunes via de GPIO-pinnen van een Raspberry Pi (niet de Pico).
FTDI USBSID: Eerste poging tot USB-controller (mei 2024)
SidBerry leidde in mei 2024 tot de creatie van de FTDI USBSID. Hiervoor gebruikte ik een FTDI FT223HL breakout board. In deze periode verwierf ik een v0.1 SIDKICK-pico en twee half defecte MOS6581-chips.
Om dit hardwareboard te ondersteunen, moest er ook software worden ontwikkeld, wat resulteerde in FTDI-versies van SidBerry en Vice 3.8. Het gebruik van het FTDI-board had echter veel beperkingen; omdat het geen microcontroller was, moesten alle GPIO-schrijfacties en I/O-schakelingen in de driver worden afgehandeld.
PicoUSBSID: Single SID Perfboard (mei 2024)
Tegen het einde van mei 2024 leidde de ontevredenheid over de FTDI-beperkingen tot de creatie van de USBSID-Pico (destijds nog PicoUSBSID genoemd), een perfboard-versie met ondersteuning voor één enkele SID.
Dual SID Perfboard (juni 2024)
Halverwege juni 2024 werd de ondersteuning uitgebreid naar twee SID-chips op hetzelfde perfboard. Met de voortdurende steun en aanmoediging van tobozo kwam uiteindelijk het eerste echte USBSID-Pico v0.1 board tot stand.
USBSID-Pico: Echt Commodore 64-geluid verbinden met modern USB
De USBSID-Pico vormt een brug tussen echte MOS 6581/8580 SID-chips (en hardwarematige SID-vervangers) en USB, MIDI, WebUSB en ASID, via een Raspberry Pi Pico.
Inleiding
Voor veel retro-enthousiastelingen wordt de MOS Technology SID-chip (6581 en 8580) van de Commodore 64 beschouwd als een van de meest iconische geluidschips in de audiogeschiedenis. Moderne software-emulatie komt in de buurt, maar niets vervangt echt de analoge filters en de warme vervorming van echte vintage hardware.
Ik ben LouD (kort voor loudness) en ik heb de USBSID-Pico ontwikkeld om echte SID-siliconen direct te verbinden met moderne werkstations, telefoons en mediaspelers via USB (CDC/WebUSB/WebSerial), MIDI, ASID en in de toekomst mogelijk WiFi en Bluetooth.
Het board wordt aangedreven door de Raspberry Pi Pico-microcontroller-serie (RP2040 en RP2350) en fungeert als een flexibele controller voor maximaal twee (en binnenkort vier) fysieke SID-chips of moderne hardware-vervangers.
Technische Hoogtepunten
Versie 1.0
- Dual-SID ondersteuning: Ondersteuning voor sockets met vaste spanning voor 6581- of 8580 MOS-chips, evenals hardware-vervangers zoals Swinke SID, FPGASID en ARMSID.
- Multi-protocol connectiviteit: Ondersteuning voor native USB, WebUSB (voor weergave via de browser), USB-MIDI en ASID-streamprotocollen.
- Cross-platform ondersteuning: Werkt op Windows, macOS, Linux, Android en AmigaOS.
- Certificering: OSHWA Open Source Hardware Certificering (NL000035).
- Open Source: Schema's en PCB-ontwerpen zijn open-source beschikbaar via de GitHub-repository en via PCBWay om zelfbouw door de community mogelijk te maken.
Versie 1.3 Upgrades
- Gemengde SID-configuraties: Maakt het mogelijk om verschillende chipgeneraties gelijktijdig te mixen (bijv. een 12V 6581 in socket 1 met een 9V 8580 in socket 2).
- Hardware Audio-switching: Toevoeging van een digitale schakelaar om direct op het board te wisselen tussen mono en echte stereo-output (Socket 1 via links, Socket 2 via rechts).
- Certificering: OSHWA Open Source Hardware Certificering (NL000045).
- Open Source: Schema's en PCB-ontwerpen beschikbaar via GitHub en PCBWay.
Versie 1.5 Upgrades
- 100% Jumperloze Spanningsregeling: Detecteert en stelt automatisch de juiste voedingsspanningen in (9V vs 12V) op basis van de geplaatste chip, om zeldzame SID-siliconen te beschermen tegen overspanningsschade.
- Automatische schakeling: Op basis van de socketspanning worden de filtercondensatoren, de audio shunt-weerstand en de digiboost-weerstand automatisch ingeschakeld of uitgeschakeld.
- Uitgebreid Footprint: De afmetingen van het board zijn iets vergroot om optionele dubbele ZIF-sockets (Zero Insertion Force) te kunnen accommoderen.
- Verbeterde compatibiliteit: Er is meer ruimte toegevoegd om grotere hardware-vervangers, zoals de FPGASID, te plaatsen zonder mechanische interferentie.
- Verbeterde Audiobescherming: Extra bescherming van de audio-ingang door toegevoegde pulldown-weerstanden wanneer er geen stekker in de audiojack zit, en toegevoegde ESD-diodes op de audio-ingang.
- Documentatie: Het schema is beschikbaar via de GitHub-repository om reparaties door de community mogelijk te maken.
Toekomstige Plannen (Pro Roadmap)
- Ondersteuning voor Quad-SID (sockets voor 4 hardware SID-chips).
- High-grade audio-routing en een lagere noise floor voor studiostudio-opnames.
- Toegewezen MIDI-ingangspoort.
Firmware
Het ontwikkelen van nieuwe en unieke PCB's voor microcontrollers vereist ook de ontwikkeling van de bijbehorende firmware. Na het kiezen van een microcontroller is het noodzakelijk om ervaring op te doen met de SDK. Dit brengt voor- en nadelen met zich mee; je moet diep in de SDK van de betreffende microcontroller duiken, wat je blikveld ten opzichte van andere microcontrollers kan vernauwen.
Dual Core, Twee Taken
De twee ARM-cores op de Pico verdelen het werk als volgt:
- Core 0: Behandelt alles wat met USB te maken heeft: CDC, WebUSB, MIDI en configuratiebeheer.
- Core 1: Heeft meerdere taken. Deze draait de MIDI-engine, de onboard-emulator voor SID-weergave of Cynthcart indien nodig, voert de SID-tests uit als de gebruiker dit triggert, en beheert de VU-meter wanneer er geen andere taken zijn.
Projectgeschiedenis
Het begin (februari – april 2024)
Ik ben altijd geïnteresseerd geweest in hoe dingen werken, van de eerste Commodore 64 die mijn ouders kochten tot mijn huidige werk als software engineer. Geïnspireerd door mijn oudere broer, die onder andere Commodore 64's repareert, ontstond het idee om een SID-afspeelapparaat te maken om SID-tunes via een echte chip te beluisteren.
In februari/maart 2024 vond ik een GitHub-repository voor de SIDPod, een SID-speler gebaseerd op de Raspberry Pi Pico. Dit leidde tot de bouw van een eigen versie en later de SIDPod-SDCard, waarbij ik een SD-kaart aan het ontwerp toevoegde.
In april 2024 ontdekte ik ESP32-SIDView, wat een mooi alternatief was omdat het ook echte SID-chips ondersteunde. Omdat ik toen geen SID's bezat, vond ik de SIDKICK-pico. Door hardware-reverse engineering heb ik een schema gereconstrueerd en de Pico-naar-DIP-28 pinout uitgevonden om dit op een breadboard te kunnen gebruiken.
Tijdens dit proces kwam ik in contact met de ontwikkelaar tobozo via GitHub, wat leidde tot een digitale vriendschap. Daarnaast ontdekte ik SidBerry, een Linux-applicatie voor het afspelen van SID-tunes via de GPIO-pinnen van een Raspberry Pi (niet de Pico).
FTDI USBSID: Eerste poging tot USB-controller (mei 2024)
SidBerry leidde in mei 2024 tot de creatie van de FTDI USBSID. Hiervoor gebruikte ik een FTDI FT223HL breakout board. In deze periode verwierf ik een v0.1 SIDKICK-pico en twee half defecte MOS6581-chips.
Om dit hardwareboard te ondersteunen, moest er ook software worden ontwikkeld, wat resulteerde in FTDI-versies van SidBerry en Vice 3.8. Het gebruik van het FTDI-board had echter veel beperkingen; omdat het geen microcontroller was, moesten alle GPIO-schrijfacties en I/O-schakelingen in de driver worden afgehandeld.
PicoUSBSID: Single SID Perfboard (mei 2024)
Tegen het einde van mei 2024 leidde de ontevredenheid over de FTDI-beperkingen tot de creatie van de USBSID-Pico (destijds nog PicoUSBSID genoemd), een perfboard-versie met ondersteuning voor één enkele SID.
Dual SID Perfboard (juni 2024)
Halverwege juni 2024 werd de ondersteuning uitgebreid naar twee SID-chips op hetzelfde perfboard. Met de voortdurende steun en aanmoediging van tobozo kwam uiteindelijk het eerste echte USBSID-Pico v0.1 board tot stand.