Skip to content

USBSID-Pico is a RPi Pico (RP2040/W 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

License

Notifications You must be signed in to change notification settings

LouDnl/USBSID-Pico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 

Repository files navigation

USBSID-Pico
USBSID-PicoLouD

USBSID-Pico

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.

This is USBSID-Pico! :)

ā€œRaster Barā€ (8-bit) Van Halen's Jump
dual SID in Stereo!
Flamethrower Multiverse 100%
in Stereo!
MOS6581
by LukHash
Dual MOS8580
by Nordischsound
MOS8580
by Reed
Dual MOS8580
by Nah-Kolor

Index

Features

USBSID-Pico
See the Software manual for more information on how to use supported software!

SID Playing

USBSID-Pico supports various ways of playing SID files.
Out-of-the box playing is supported by using Deepsid by Chordian
by selecting WebUSB (Hermit) as player in the pulldown menu or
by selecting ASID (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).
Unofficial support is added to a fork of Vice, up to 3 SIDs are supported in vsid and up to 4 in x64sc.
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.

Amiga

erique and koobo have added support to playsid

C64 Music trackers

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.

Midi

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.

Questions and Support

Any questions about or support with USBSID-Pico can be asked

Project status

Visit the Project Page for an up-to-date list of things being worked on. Firmware is in beta stage and still in development.
While in development any mentioned features, options, etc. are subject to change.

Code status

Master Dev
Release release tag
Build build build
Commit commit commit
Other
Latest tag release
Open issues discussions
Info license language

Test and config your board

Also see the Firmware manual for information on how to set up your board!
You can configurate your board by using the commandline config-tool binary (Linux only at the moment) provided in examples or use the web configurations, see below.

You can test your board with WebUSB and ASID here: USBSID.
If needed you can change your USBSID configuration after selecting WebUSB and clicking on Open config.

The player is set up with some borrowed code from Deepsid using Hermit's JsSID implementation.

Debug functions

For testing purposes only you can use the debug functions available on the USBSID Debug site.

Supported platforms

In development
Linux: Vice, RetroDebugger, SidBerry, SidplayFp, JSidplay2, USB Midi, ASID (in webbrowser) SID Play
Windows: Vice, SidBerry, USB Midi, ASID (in webbrowser) SID Play
Android: USB Midi, ASID (in webbrowser) SID Play Amiga: PlaySID library

Linux Udev rules

Also see the Software manual for more information on how to use supported software!
In the examples/udev directory you can find the udev rules that I use on Linux. This purely an example file that you can use and change to your own needs.
Steps required for this to work

  # Check if you are in the plugdev group
  groups  # should show the plugdev group
  # Copy the udev ules file to the correct directory
  sudo cp 69-usbsid-permissions.rules /etc/udev/rules.d
  # Now reload the udev rules
  sudo udevadm control --reload-rules && sudo udevadm trigger
  # Not working? Try reloading the service
  sudo systemctl restart udev

Windows driver

Also see the Software manual for mroe information on how to use supported software!
Use Zadig to install the correct driver for USBSID-Pico.

Then configure check, configure and test your board on the USBSID config tool website

Firmware

See the firmware changelog for more information on what's changed and previous releases.
Also see the Firmware manual for more information on how to set up your board!

Firmware features

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)
    • Play SID files in your (midi supporting) browser via Deepsid by Chordian
    • Play SID files in your (midi supporting) browser via IneSID by Fazibear
  • 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 (Windows still in development)
  • 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

Known issues

  • Digiplay is better in Vice then SidplayFp at the moment.
    While not yet at 100%, most tunes will play!
    See the discussion about this.

Building

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.

Hardware

Where to buy

Licensed resellers

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)

PCBWay

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

Me (when I have boards)

If available you can purchase (semi) assembled boards minus Pico from me - send me a message on any of my socials.

PCB usage information

Your USBSID-Pico PCB has several hardware features like jumpers and pins that require your attention. Click on the viewing method

PCB revision v1.0 manual

PCB revision v1.3 manual

Cases

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:

Schematic and BOM

If you want and are up to it you can solder your own PCB or create your own development board using the documents below

revision v1.3

v1.3 schematic and v1.3 interactive BOM

revision v1.0

v1.0 schematic and v1.0 interactive BOM

PCB Features

revision v1.3

  • 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 ;)

revision v1.0

  • 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
  • Power via USB
    • 5v stepup for clean 5v VCC to both SID chips
    • 12v or 9v stepup for clean VDD to both SID chips
  • 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

PCB Development

  • v1.3b release board
  • v1.2 testboard
  • v1.1 unfinished and skipped
  • v1.0 release board
  • v0.2 improved testboard
  • v0.1 testboard

Examples

Visit my Youtube channel, other socials or the SHOWCASE page to see more examples of the board in action.

Software

Also see the Software manual for information on how to use supported software!
Available examples with USBSID-Pico support:
USBSID-Pico driver repo is available @ https://github.com/LouDnl/USBSID-Pico-driver
HardSID USB / SidBlaster USB emulation driver example
Vice fork is available @ https://github.com/LouDnl/Vice-USBSID
sidplayfp for libsidplayfp forks are available @ https://github.com/LouDnl/sidplayfp-usbsid and https://github.com/LouDnl/libsidplayfp-usbsid
SidBerry fork is available @ https://github.com/LouDnl/SidBerry
RetroDebugger fork is available @ https://github.com/LouDnl/RetroDebugger
playsid.library Amiga implementation is available @ https://github.com/erique/playsid.library

Precompiled Vice binaries

Pre compiled Vice binaries are available in my fork @ https://github.com/LouDnl/Vice-USBSID/releases

Acknowledgements

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 Ken for adding webusb support to jsidplay2's c64jukebox.

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:

Disclaimer

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!

License

Software License ~ GNUv2

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.

Hardware License ~ Creative Commons

USBSID-Pico PCB by LouD is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International

About

USBSID-Pico is a RPi Pico (RP2040/W 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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •