USBSID-Pico is a RaspberryPi Pico/PicoW (RP2040) & Pico2/Pico2W (RP2350) based board for interfacing one or two MOS SID chips and/or hardware SID emulators over (WEB)USB with your computer, phone, ASID supporting player or USB midi controller.
āRaster Barā (8-bit) | Van Halen's Jump dual SID in Stereo! |
Next Level | Outerversal dual SID in Stereo! |
---|---|---|---|
by LukHash |
by Nordischsound |
by Performers |
by Abyxus |
Wonderland XI | Wonderland XII | Wonderland XIII | Wonderland XIV |
---|---|---|---|
by Censor Design |
by Censor Design |
by Censor Design |
by Censor Design |
- Software support & Features
- Questions & Support
- Project status
- Firmware
- Hardware
- Software
- Acknowledgements
- Disclaimer
- License
- Changelog
See the Software manual for more information on how to use supported software!
USBSID-Pico supports various ways of playing SID files.
- Out-of-the box playing is supported by using Deepsid by Chordian
by selectingWebUSB (Hermit)
as player in the pulldown menu or
by selectingASID (MIDI)
as player in the pulldown menu. - Out-of-the box playing is also supported by using C64jukebox by Kenchis, note that this is still in BETA.
- SidBerry is a command line SID file player for Linux & Windows with up to 4 SIDs supported (Windows version is buggy).
Several Commodore 64 emulatores have official support
- Vice has official support starting at tag r45763 and up, up to 3 SIDs are supported in vsid and up to 4 in x64sc.
- JSidplay2 has official support in latest Java beta versions, up to 4 sids.
- Denise has official support in Windows and Linux nightly builds and in code repo, up to 4 sids.
And some have unofficial support through forks on my Github
- Unofficial support is added to a fork of sidplayfp which requires a fork of libsidplayfp.
- Unofficial support is added to a fork of RetroDebugger, up to 4 SIDs are supported.
Into creating chiptunes? USBSID-Pico is your board!
- You should be able to use the ASID fork of sidfactory2 without issues.
- When using Vice or RetroDebugger you can freely use applications like SID-Wizard for music creation.
- There is also work being done in my forks of Goattracker2 and GTUltra.
Ask on Discord for latest binaries :)
Real SID's on the Amiga? Why yes!
Want to create your own implementation? You can by using the driver code examples below
- USBSID-Pico driver repo is available @ https://github.com/LouDnl/USBSID-Pico-driver and contains
C++
,Java
andJavascript
implementation examples - HardSID USB / SidBlaster USB emulation driver example
USBSID-Pico acts as Midi device and supports basic Midi in ~ note that Midi is still in development and in Beta phase.
This means that no support is available here at this time, please visit the Discord for more information.
Any questions about or support with USBSID-Pico can be asked
Visit the Project Page for an up-to-date list of things being worked on. While in development any mentioned features, options, etc. are subject to change.
- Enabling and then disabling the onboard cynthcart emulator without restarting the board causes audio glitches
- Switching on readmode and then switching it off again without restarting the PCB and Vice will result in distorted audio
Master | Dev | |
---|---|---|
Release | ||
Build | ||
Commit | ||
Other | ||
Latest | ||
Open | ||
Info |
See the Software manual for driver installation and supported software information!
In development
Linux: Vice, JSidplay2, Denise, SidplayFp, RetroDebugger, SidBerry, USB Midi, WebUSB & ASID (in webbrowser) SID Play
Windows: Vice, JSidplay2, Denise, SidBerry, USB Midi, WebUSB & ASID (in webbrowser) SID Play
Android: USB Midi, WebUSB & ASID (in webbrowser) SID Play
Amiga: PlaySID library
See the Software manual for udev rule installation information!
See the Software manual for driver installation information!
See the firmware changelog for more information on what's changed and previous releases.
See the Firmware manual for more information on how to set up your board!
You can test your board with WebUSB and ASID here on the same site as the web configuration tool here: USBSID web configuration tool (requires a Chrome based browser).
The firmware is still in development so features might change, be added or removed.
- By default both sockets are enabled and the configuration is set to 2 SID's.
- Custom CDC protocol for playing SID files or usage with emulators
- WebUSB support using the same CDC protocol for WebUSB supporting players
- Play SID files in your browser via Deepsid by Chordian
- Play SID files in your browser via C64jukebox by Kenchis
- Midi (in) ASID support (heavily inspired by multiple sources)
- Midi device support over USB
- Use your USBSID-Pico as Synth with your Midi controller
- Two SID sockets with up to 4 SID's (e.g. SKPico) supported
- Socket one address range $00 ~ $7F (default $00 ~ $1F) auto based on configuration settings
- Socket two address range $00 ~ $7F (default $40 ~ $7F) auto based on configuration settings
- Configurable via config-tool for Linux and Windows
- Onboard LED acts as VU meter calculated by the voices of SID1 (Pico & Pico2 only)
- Onboard RGB LED acts as second VU meter calculated by the voices of SID1 (default)
- Requires Black Pico clone board with RGB LED onboard!
- SID voices to use for calculation can be changed in config
- Uses the TinyUSB stack
You can build the firmware using the Pico SDK 2.1.1 and the included TinyUSB. Be sure to clone the SDK with --recurse-submodules
.
After download run cd pico-sdk/lib/tinyusb
and then python3 tools/get_deps.py PICO_PLATFORM
where PICO_PLATFORM is either rp2040 or rp2350 depending on the board you are using.
Run Stop Re-Store at Retro8BITshop is the first reseller to sell licensed USBSID-Pico boards.
PCB revision v1.0 product page
PCB revision v1.3 product page (to be updated)
At a minimum of 5 bare or assembled boards it is also possible to purchase PCB's at PCBWay
No account yet at PCBWay? Please use my referral link to register, thanks!
PCB revision v1.0
PCB revision v1.3
If available you can purchase (semi) assembled boards minus Pico from me - send me a message on any of my socials.
Your USBSID-Pico PCB has several hardware features like jumpers and pins that require your attention. Click on the viewing method
All USBSID-Pico community created cases are available in the cases directory, direct links below.
Cases for PCB revision v1.0:
Cases for PCB revision v1.3:
If you want and are up to it you can solder your own PCB or create your own development board using the documents below
v1.3 schematic and v1.3 interactive BOM
v1.0 schematic and v1.0 interactive BOM
- Supports all MOS SID chips e.g. MOS6581, MOS6582 & MOS8580
- Supports SID chip replacements e.g. SIDKick-Pico, ARMSID & FPGASID, SwinSID.
- USBSID-Pico will by default generate a 1 MHz square wave using pio
- other clock speeds are configurable
- IO controlled Stereo/Mono switch, can be set in config or toggled during play with supported players
- SID1 audio left
- SID2 audio right
- Powered via USB
- Three separate voltage regulators for filtered voltages to the SIDS
- 1x fixed 5 volts and 2x 9 volts or 12 volts
- 5v stepup for clean 5v VCC to both SID chips
- Supports mixed voltage! e.g. you can use one MOS6581 (12v) together with one MOS6582 (9v) or MOS8580 (9v)
- 12v/9v jumper for each SID socket, defautls to 12v ~ inspired by SIDBlaster-Nano design
- Audio out filter as in the C64 schematics
- With optional 6581 resistor, solder the 6581 jumper pad in each audio circuit for this.
- Optional EXT-IN pulldown resistor as filter bypass to reduce filter noise for Digiplay on 8580 SID's
- SID socket placement is more spread out for:
- easier filter capacitor access
- optional ZIF sockets
- Better IO port layout
- Unused GPIO pins for optional future expansion boards
- IO5 pins for quad SID configuration
- Uart pins
- SID Ext in pins (requires closing the solder jumper on the bottom)
- Ground pin
- New soldermask art ;)
- Supports all MOS SID chips e.g. MOS6581, MOS6582 & MOS8580
- Supports SID chip replacements e.g. SIDKick-Pico, SwinSID, ARMSID (untested), FPGASID (untested)
- 1 MHz oscillator (external optional, enabled via jumper pad)
- if no external clock is detected USBSID-Pico will generate a 1 MHz square wave using pio
- clock speed is configurable
- if an external clock is detected will read the external clock signal
- if no external clock is detected USBSID-Pico will generate a 1 MHz square wave using pio
- Power via USB
- 5v stepup for clean 5v VCC to both SID chips
- 12v or 9v stepup for clean VDD to both SID chips
- 12v/9v jumper, defautls to 12v ~ inspired by SIDBlaster-Nano design
- Audio out filter as in the C64 schematics
- With optional 6581 resistor, solder the 6581 (mislabeled 8580!) jumper pad in each audio circuit for this.
- Audio jumper
- SID1 audio left & right
- SID1 audio left & SID2 audio right
- Optional EXT-IN pulldown resistor as filter bypass to reduce filter noise for Digiplay on 8580 SID's
- v1.3b release board
- v1.2 testboard
- v1.1 unfinished and skipped
- v1.0 release board
- v0.2 improved testboard
- v0.1 testboard
Visit my Youtube channel, other socials or the SHOWCASE page to see more examples of the board in action.
Special thanks goes out to @tobozo for making the USBSID-Pico logo and for his (mentalš¤£) support since starting this project.
Thanks to @erique and @koobo for creating and implementing Amiga support!
Thanks to @Chordian for implementing my crappy webusb solution into deepsid.
Thanks to @kenchis for adding webusb support to jsidplay2's c64jukebox.
Thanks to PiCiJi for adding support to Denise.
Some portions of this code and board are heavily inspired on projects by other great people. Some of those projects are - in no particular order:
- SIDKICK-pico by Frenetic
- SIDBlaster USB Nano by CBMretro
- TherapSID by Twisted Electrons
- TeensyROM by Sensorium Embedded
- SID Factory II by Chordian
- Cynthcart by PaulSlocum
I do this stuff in my free time for my enjoyment. Since I like to share my joy in creating this with everyone I try my best to provide a working PCB and Firmware. I am in no way an electronics engineer and can give no guarantees that this stuff does not break or damage your hardware, computer, phone, or whatever you try to hook it up to. Be sure to take great care when inserting any real MOS SID chips into the board. While everything has been tested with real chips, this is in no way a guarantee that nothing could go wrong. Use of this board and firmware at your own risk! I am in no way responsible for your damaged hardware. That being said, have fun!
All code written by me in this repository is licensed under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. Any code in this repository that is not written by me automatically falls under the licensing conditions by the authors of said code as mentioned in the source code header. For for more information about this license please read the LICENSE document in the root of the USBSID-Pico repository.
USBSID-Pico PCB by LouD is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International