Home USBSID-Pico
Gallery
Cancel

USBSID-Pico

Eine neue Kategorie muss her!

Die Retro Szene ist in den letzten Jahren wieder erstärkt. Es gibt unheimlich viele, gute & neue Dinge zu entdecken.

Ich habe seit einigen Jahren mein Faible für die alten Retro Dinge wieder entdeckt und versuche diese jetzt wieder mehr in meinen Tagesablauf zu integrieren.
Was nicht einfach ist, weil es auch unheimlich viel Zeit in Anschpruch nimmt und ich die nicht immer aufbringen kann.
Und natürlich muss dann dieses Quentchen Lust auch noch dabei sein …

USBSID

Ich bin irgendwann im letzten Jahr LouDnL über den Weg gelaufen.
Keine Ahnung, ob es bei GitHub, bei Mastodon oder dem damaligen Twitter war. Ich bekomme es nicht mehr zusammen.

Aber ich fand sein Projekt ziemlich genial: Einen RaspBerry Pico mit 2 SIDs zusammen auf einem Board. Mit dem entsprechenden Player kommt dann das gute Zeug in Stereo aus den Lautsprechern.

Lieferzustand

Man kann das Board voll bestückt und getestet im Retro8bitShop erwerben. (Aufgrund von meinem Fanboygehabe, habe ich meines direkt von Loudnl erhalten :D)

Dazu fehlt noch ein Raspberry Pico …

… und - natürlich - die SID Chips.

Die Original sind kaum noch zu bekommen, daher bin ich auch Nachbauten ausgewichen und habe mich für ARMSID entschieden.
Diese sollen von allen Verfügbaren Nachbauten am Originalgetreuesten sein. Ob ich das überhaupt hören kann? Ich glaube nicht …

Auf Grund einer Fehlinterpretation des Beschreibungstextes, habe ich 2 Stück geordert.
Braucht man nicht! Wenn ihr den ARM2SID +FM kauft, bekommt ihr 2 Stück!

Installation

Die Hardwareinstallation war einfach. Chipfs aufs Board stecken, fertig.

Bei der Software ging es ähnlich flott. Ich benutze Linux (ein Arch Clone) und habe dementsprechend meine Freiheiten.
Der folgende Part wird sich also eher mit Linux (und im speziellen mit Arch) beschäftigen.

udev

Als erstes müssen die udev Regeln erstellt werden.
Ich habe hier 2 erstellt:

Die Regel mit Vendor 2e8a und der ProductId 0003 entsprechend dem Gerät, welches am USB Port sichtbar wird, wenn man es blank und ohne Firmware an seinen Rechner anschließt. (Wer nicht weiß, wie man an die Daten kommt, führt ein lsusb aus!) Damit bekomme ich den Pico immer unter dem gleichen Devicenamen im System zu fassen und muss nicht immer nachschauen, was sich der DeviceManager ausgewürfelt hat.

Die original Regel (vendor: cafe und product: 4011) kommen erst nach der Installation der Firmware zum tragen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat /etc/udev/rules.d/69-usbsid-permissions.rules 
# Copy to /etc/udev/rules.d
# Reload udev with:
# sudo udevadm control --reload-rules && sudo udevadm trigger

ACTION=="*", KERNEL=="ttyUSB[0-9]*",MODE="0777", GROUP:="plugdev", TAG+="uaccess"
ACTION=="*", KERNEL=="ttyACM[0-9]*",MODE="0777", GROUP:="plugdev", TAG+="uaccess"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777"
SUBSYSTEMS=="tty", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777"
SUBSYSTEMS=="tty", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777", SYMLINK+="usbsid%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777", SYMLINK+="usbsid%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE="0777"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE="0777", SYMLINK+="usbsid-rasp%n"

Nach einem udevadm control --reload-rules && udevadm trigger konnte ich den Raspberry im System unter meinen gewählten Namen finden und mounten

1
2
3
4
5
6
7
ls -l /dev/usb*
lrwxrwxrwx 1 root root  3 20. Jul 16:23 /dev/usbsid-rasp -> sda
lrwxrwxrwx 1 root root  3 20. Jul 16:23 /dev/usbsid-rasp0 -> sg0
lrwxrwxrwx 1 root root  4 20. Jul 16:23 /dev/usbsid-rasp1 -> sda1
lrwxrwxrwx 1 root root 15 20. Jul 16:23 /dev/usbsid-rasp2 -> bus/usb/003/006

mount /dev/usbsid-rasp1 /mnt/usbsid

Soweit so gut, jetzt noch die …

Firmware

Da wurde es etwas hakeliger.
Von den Picos gibt es nämlich ein paar Versionen mehr.
Ich hatte mir einen Raspberry Pico H organisiert, also musste ich hier die entsprechende Firmware heraussuchen.

Die findet man unter GitHub. Für meinen Pico war dann usbsidpico-v1.3.uf2 die passende Version.

1
curl -L -o /mnt/usbsid/usbsidpico-v1.3.uf2 https://github.com/LouDnl/USBSID-Pico/releases/download/v0.5.0-BETA/usbsidpico-v1.3.uf2

Nach einem kleinen sync auf der Konsole startete der Pici automatisch neu. (Alternativ, hätte ich auch den Pico über seinen minimal Taster zurücksetzen können.) Nach dem Neustart zeigt mir lsusb ein neues Device:

1
2
3
4
5
6
7
lsusb

Bus 003 Device 013: ID cafe:4011 LouD (v0.5.0-BETA.20250628) USBSID-Pico v1.3

ls -l /dev/usbsid*
lrwxrwxrwx 1 root root 12 22. Jul 19:01 /dev/usbsid0 -> snd/midiC2D0
lrwxrwxrwx 1 root root 15 22. Jul 19:01 /dev/usbsid2 -> bus/usb/003/013

Yes! \m/

Tests

Hier wurde es dann etwas hakliger.
Laut Webseite kann man sich hier um einen Test seiner Hardware kümmern: usbsid.loudai.nl.
Mein Firefox konnte das neue Device aber nicht finden.

Ich habe daraufhin andere Firmwares probiert. Ohne nennensweite Änderung …

Bis ich auf den Trichter kam mal einen anderen Browser zu testen!
Und siehe da, it works! Also mit dem frisch installiertem Chromium funktionierte es auf Anhieb.

Und wie weiter?

Aktuell teste ich die nötigen Clients.
Ich habe mir den gepatchten Vice aus dem Repo von LouDnl organistiert.

Der Build war simple.
Der alte Dreierschritt: autogen.sh, configure und make

Bei meinem Arch Linux musste ich nur noch glib2-devel und xa nachinstallieren, schon lief der Zauber und ich konnte eine kleine Runde Turrican mit fettem Sound spielen.

This post is licensed under CC BY 4.0 by the author.