Contexte et objectifs

Le SID MOS Technology 6581 et son successeur 8580 sont considérés comme des références sonores du Commodore 64. Les émulateurs logiciels reproduisent les formes d’onde, mais ils ne peuvent pas reproduire les filtres analogiques ni la distorsion caractéristique du silicium d’origine. USBSID-Pico a donc été conçu pour placer ces puces physiques entre un ordinateur moderne (Windows, macOS, Linux, Android, AmigaOS) et le logiciel de lecture via les protocoles USB, WebUSB, USB‑MIDI et ASID.

Le cœur du dispositif est un microcontrôleur Raspberry Pi Pico (rp2040 ou rp2350). La première version (v0.1) ne supportait qu’un seul SID ; les itérations suivantes (v1.0, v1.3, v1.5) ont ajouté la prise en charge de deux puces simultanément, avec une perspective d’étendre à quatre puces dans les versions futures.

Architecture matérielle

Chaque socket du board fournit une tension fixe adaptée aux deux générations de SID : 12 V pour le 6581 et 9 V pour le 8580. Depuis la version v1.5, le circuit détecte automatiquement la tension requise et ajuste le rail d’alimentation sans jumper, évitant ainsi tout risque de surtension sur les puces rares. Les broches GPIO du Pico sont routées vers les 28 broches du SID via un connecteur DIP‑28, reproduisant le timing exact des accès parallèles du C64.

Un commutateur numérique intégré permet de router le signal audio du socket 1 vers le canal gauche et du socket 2 vers le canal droit, offrant une vraie stéréo matérielle. Le design utilise des sockets ZIF élargis pour accueillir des remplacements modernes (Swinke SID, FPGASID, ARMSID) sans interférence mécanique. La protection audio a été renforcée avec des résistances de tirage et des diodes ESD sur l’entrée jack, comme indiqué dans la version v1.5.

Fonctionnalités et évolutions

La version v1.0 a introduit le support dual‑SID, la compatibilité multi‑protocole (USB CDC, WebUSB, USB‑MIDI, ASID) et la certification OSHWA NL000035. La mise à jour v1.3 a ajouté la possibilité de mélanger deux puces de générations différentes (par ex. 6581 12 V + 8580 9 V) et un commutateur audio matériel pour le mode mono/stéréo.

La version v1.5 a automatisé la sélection de tension, activé ou désactivé les condensateurs de filtrage et les résistances de shunt en fonction du socket détecté, et élargi le PCB pour accueillir des sockets ZIF doubles. Elle a également introduit une protection supplémentaire contre les courts‑circuits et les décharges électrostatiques, tout en conservant la disponibilité du schéma et du layout sur GitHub et PCBWay sous licence open‑source.

Analyse des limites et perspectives

Actuellement le board reste limité à deux SID, ce qui contraint les configurations de mixage complexes. Le débit USB CDC du rp2040 impose une latence de l’ordre de quelques millisecondes, suffisante pour le playback mais potentiellement critique pour des applications en temps réel très exigeantes. Le support Wi‑Fi ou Bluetooth, évoqué pour les futures versions, nécessitera un microcontrôleur plus puissant (rp2350) et une pile logicielle supplémentaire.

Le projet bénéficie d’une communauté active grâce à la publication du matériel sous licence OSHWA (NL000045) et à la documentation complète. Les prochains jalons – quad‑SID, intégration sans fil et optimisation du driver USB – dépendront de la participation communautaire et de la capacité du Pico à gérer davantage de lignes GPIO sans compromettre la synchronisation temporelle du SID.