Author: LouD - generated on 2026-09-05
- Disclaimer
- Firmware types
- Firmware naming
- How to flash your Pico
- Firmware configuration
- USBSID-Configtool
- Commandline configuration tool
- Configuration web page (for Chrome/Edge based browsers using webusb)
- Default configuration (depends on the board version)
- Board clock rate
- Clock rate locked
- Audio mode
- Lock audio switch
- SID Voltage & Configuration confirmation
- Disable socket change detection
- Socket settings
- LED Enabled
- LED Idle breathe enabled
- RGBLED Enabled
- RGBLED Idle breathe enabled
- RGBLED Brightness
- RGBLED SID to use
- FMOpl Enabled
- FMOpl SID number
- CDC Enabled
- WebUSB Enabled
- Asid Enabled
- Midi Enabled
- License

Each PCB revision is the firmware designator, please check your PCB revision, this is under the MOS logo and next to USBSID-Pico on your PCB.
Firmware filenames contain the PCB revision number e.g. usbsidpico-rgb-v1.X.uf2 is for PCB revision v1.0 and for use with a black clone Pico containing an RGB LED.
Below are the filenames used for each Pico and board type, take great care in selecting the correct file for you Pico!
WARNING! Do NOT use the RGB firmware for any of the (non black) rp2040 or (non black) rp2350 Pico boards that do not contain an RGB LED, this can break your Pico!
The 1.X in each filename equals for the PCB revision as mentioned under firmware types. Don’t worry if you flash a firmware for the incorrect PCB revision, this causes no harm.
usbsidA-BC.uf2 examples: usbsidpico-v1.0-rgb.uf2, usbsidpico2_w-v1.3.uf2 or usbsidpico2-v1.5-rgb_sp.
A: The pico board type e.g. pico, pico2, pico_2 or pico2_w
B: The PCB version e.g. v1.0, v1.3 or v1.5
C: A combination of optional features e.g. -rgb, _sp or _sp_cc
Firmwares suitable for rp2040 Pico1 boards start with usbsidpico-
Firmwares suitable for rp2040 Pico1_w boards start with usbsidpico_w-
Firmwares suitable for rp2350 Pico2 boards start with usbsidpico2-
Firmwares suitable for rp2350 Pico2_w boards start with usbsidpico2_w-
Firmware naming suited for the pico 1 always start with usbsidpico-
usbsidpico-v1.X.uf2 for regular green rp2040 Pico boards.
usbsidpico-rgb-v1.X.uf2 for black clone rp2040 Pico boards with RGB LED onboard.
usbsidpico_w-v1.X.uf2 for regular green rp2040 PicoW boards.
NOTE! Due to the hardware limitations of the RP2040, highly demanding, cycle-exact SID tunes (dense per-cycle register writes, e.g. some digi/sample tunes) may not play at full speed on Pico1 or Pico1_w boards. Use a Pico2 or Pico2_w (rp2350) board for these tunes.
Firmware naming suited for the pico 2 always start with usbsidpico2-
usbsidpico2-v1.X.uf2 for regular green rp2350 Pico2 boards.
usbsidpico2-rgb-v1.X.uf2 for black clone rp2350 Pico2 boards with RGB LED onboard.
usbsidpico2_w-v1.X.uf2 for regular green rp2350 Pico2W boards.
Starting with firmware version v0.6.0-BETA firmwares ending with sp have an embedded emulator that can play PSID and RSID tunes and PSID64 PRG/P00 files.
For example usbsidpico2-v1.0_sp.uf2, usbsidpico2-v1.3-rgb_sp.uf2 or usbsidpico2-v1.5_sp.uf2
This USBSID-Player is still in active development and some tunes might not work or play at all.
The embedded USBSID-Player requires more then 256KB RAM and an overclocked CPU which makes this firmware only available for rp2350 Pico2 boards.
WARNING! Whenever the USBSID-Player is used the Pico MCU is overclocked to 250MHz, regardless of Pico type. Passive cooling _might/could be needed.
See the USBSID-Player-manual file for more information.
Starting with firmware version v0.8.0 firmwares ending with _cc can start Cynthcart with CC commands.
For example usbsidpico-v1.0_sp_cc.uf2, usbsidpico2-rgb-v1.3_sp_cc.uf2 or usbsidpico2-v1.5_sp_cc.uf2
WARNING! Cynthcart runs through the embedded USBSID-Player, so the same 250MHz overclock (regardless of Pico type) and possible need for passive cooling applies here too.
See the USBSID-Pico-Cynthcart-manual file for more information.
NOTE:
When flashing a new firmware version, all previously configured settings will be reset to default. Use the commandline configtool to save your current settings to a ini file if you want to save them!
A Raspberry Pi Pico board is incredibly easy to flash, as it comes with a built in bootloader for flashing new firmwares in the uf2 format.
In order to flash a new firmware to your USBSID-Pico you will need to put the Pico into bootloader mode.
This can be done in multiple ways:
With the cable already plugged into your computer and Pico and seated on the board (using buttons):
-
Press and hold the
BOOTSELbutton on the Pico. -
Press and release the
RSTbutton on the USBSID-Pico board. -
Now release the
BOOTSELbutton. -
A new drive should appear on your computer called
RPI-RP2orRP2350depending on your Pico type. -
Copy the correct
uf2firmware file to this directory. -
After copying the Pico will reboot and your Pico is flashed.
With the cable not plugged in to your computer and Pico and also not seated on the board (using buttons):
-
Plug in the USB cable to your Pico and not into your computer.
-
While holding the
BOOTSELbutton on the Pico plugin the other end of the USB cable into your computer. -
Now release the
BOOTSELbutton. -
A new drive should appear on your computer called
RPI-RP2orRP2350depending on your Pico type. -
Copy the correct
uf2firmware file to this directory. -
After copying the Pico will reboot and your Pico is flashed.
With the cable already plugged into your computer and Pico and seated on the board (using software):
-
With the GUI config tool
-
Go to the
DEBUGtab and click onBOOTLOADER -
A new drive should appear on your computer called
RPI-RP2orRP2350depending on your Pico type. -
Copy the correct
uf2firmware file to this directory. -
After copying the Pico will reboot and your Pico is flashed.
or
-
Go to the config webpage (usbsid.loudai.nl/index.html?player=webusb&debug=usbsidpico):
-
Connect to the board using
WebUSB (Hermit)as emulator -
Click on
CONFIGto open the configuration tab -
Scroll to the bottom of the page and click on
BOOTLOADERin the box namedDEBUG -
A new drive should appear on your computer called
RPI-RP2orRP2350depending on your Pico type. -
Copy the correct
uf2firmware file to this directory. -
After copying the Pico will reboot and your Pico is flashed.
or
-
With the CLI config tool command in your
PATHvariable -
Type
cfg_usbsid -bootto send the reboot to bootloader command -
A new drive should appear on your computer called
RPI-RP2orRP2350depending on your Pico type. -
Copy the correct
uf2firmware file to this directory. -
After copying the Pico will reboot and your Pico is flashed.
USBSID-Pico has an extensive set of configuration options that expands with each firmware release.
You can configurate your board by using the official USBSID-Configtool
The tool is available here USBSID-Configtool in the releases section
You can configurate your board with: - the commandline config-tool - the commandline config-tool with the Python Configuration GUI by ISL/Samar if you prefer a GUI.
Download script
Python3 → Download
TkInter → Installation guide
And either one of the Linux or Windows CLI downloads below
The latest version of the CLI config tool is available in a zip file called tools.zip from release v0.6.0-BETA and up
If the DLL’s are missing from the zip file you can always download them from here:
Download DLL 1
Download DLL 2
USBSID web configuration tool (requires a Chrome based browser).
If needed you can change your USBSID configuration after selecting WebUSB and clicking on Open config.

The player is set up with borrowed code from Deepsid using Hermit’s JsSID implementation.
The default configuration differs slightly between Pico1 (rp2040) and Pico2 (rp2350) boards.
An explanation for these settings can be found further on in this document.
Board clock rate: 1000000Hz (DEFAULT) for rp2040, 985248Hz (PAL) for rp2350
Clock rate locked: False
Audio mode: Mono
Preset silent auto detection: False (True for PCB revision v1.5+)
Socket One Enabled: True
Socket One Dualsid enabled: False
Socket One Chiptype: Unknown
Socket One SID 1 type: Unknown
Socket One SID 2 type: N/A
Socket Two Enabled: True
Socket Two Dualsid enabled: False
Socket Two Chiptype: Unknown
Socket Two SID 1 type: Unknown
Socket Two SID 2 type: N/A
Socket Two Act as One: False
Flip Socket One and Socket Two: False
Mix socket addresses (Quad SID): False
LED Enabled: True
LED Idle breathe enabled: True
RGBLED Enabled: False (True for RGB Pico’s)
RGBLED Idle breathe enabled: False (True for RGB Pico’s)
RGBLED Brightness: 0 (127 for RGB Pico’s)
RGBLED SID to use: -1 (1 for RGB Pico’s)
CDC Enabled: True
WebUSB Enabled: True
Asid Enabled: True
Midi Enabled: True
FMOpl Enabled: False
FMOpl SID no: 0
The Commodore64 has different clockrates depending on where you live, USBSID-Pico supports these different clock rates as configuration setting.
Supported SID players will automatically send a new clock rate request to the board to switch to.
Available options are:
DEFAULT 1000000Hz, PAL 985248Hz, NTSC 1022727, DREAN 1023440, NTSC2 1022730
Some players start sending data directly after the clockrate is changed. While in most cases this is no issue, some SID clones need some time to start up. This causes issues when the clock rate is changed on the fly.
Also changing the clock rate multiple times after another can cause data corruption to the SID which causes garbled sound.
To overcome this it is possible to lock the clockrate to the current setting it is set to. This blocks the ability for on the fly change requests.
Available options are:
False, True
PCB revision v1.3 only
Sets the audio mode for the headphone jack and audio out pins.
When set to Mono the audio of both SID sockets will be combined to mono.
When set to Stereo the audio of both SID sockets will be separated into left for SID1 and right for SID2
Available options are:
Mono, Stereo
PCB revision v1.3 only
Locks the audio switch into its current state (Mono or Stereo) and prevents it from being changed.
Available options are:
False, True
PCB revision v1.5 only
The board boots with 5v and 9v enabled to automatically detect any changes in the socket / chip configuration, it does this by running a chip and SID detection.
When a change is detected the boards turns off the 9v and 5v and the onboard (RGB)LED starts flashing, making the board unusable until the configuration is validated and confirmed.
Please verify the configuration with care before confirming, failure to do so might damage/kill your SID chips, and we don’t want that!
There are multiple ways to validate and confirm the configuration:
GUI Configtool
On opening the configtool and connecting to the board there will be a text stating the configuration needs to be confirmed. Verify the config on the SOCKETS tab and when done click CONFIRM

Web Configtool
On opening the config website and connecting to the board there will be a text stating the configuration needs to be confirmed. Verify the config on the CONFIG tab by clicking RETRIEVE CONFIG first and when done validating click CONFIRM CONFIG. Both buttons will glow when a click is needed

CLI Configtool
First read the configuration with cfg_usbsid -r, the printed configuration will have a line that states the config needs confirmation. You can do this with cfg_usbsid -ack.
PCB revision v1.5 only
When you have a fixed socket setup, e.g. you do not plan on changing the chips anytime soon, it is possible to disable the change detection on boot. This will make the board start up with 5v and 9v and then - if 12v is required - switch to the required voltage setting during the boot process by switching the voltage back off, setting the correct hv voltage and then switching it back on.
When the socket detection is on, the board will always try to detect any changes in the configuration before the required voltage is applied.
By setting the Disable socket detection on boot option you can control the above behaviour:
GUI Configtool

Web Configtool

CLI Configtool
Change the behaviour with cfg_usbsid -sad N where N can be 0 (disabled) or 1 (enabled)
Each socket comes with its own set of configurable options.
Enable or disable dualsid for this socket.
This requires the Chiptype for this socket to be set to any clone chip (not MOS) and ofcourse a dual SID supporting SID clone with support of connecting the A5 address line.
Available options are:
False, True
Set the type of SID chip for this socket.
Available options are:
MOS (real SID), Unknown, SKPico, ARMSID, ARM2SID, FPGASID, RedipSID, PDSID, BackSID, SIDEmu
When enabled, this will disable other Socket Two settings and this socket will receive all writes from Socket One as it were mirrored.
Available options are:
False, True
When enabled, Socket One and Socket Two are swapped so Socket One’s physical position responds as Socket Two and vice versa.
Available options are:
False, True
When enabled, addresses for a 4-SID setup are mixed between sockets instead of being assigned sequentially per socket. Combine with Flip for the remaining address orderings.
Available options are:
False, True
Disable or enable the use of the onboard LED.
When enabled this automatically enables the LED as Vu meter for the voices of SID1.
Available options are:
False, True
Disable or enable the idle breathing effect for the onboard LED.
Available options are:
False, True
Only for black Pico clones with onboard RGB LED
Disable or enable the use of the onboard RGBLED.
When enabled this automatically enables the RGBLED as Vu meter.
Available options are:
False, True
Only for black Pico clones with onboard RGB LED
Disable or enable the idle breathing effect for the onboard RGBLED.
Available options are:
False, True
Only for black Pico clones with onboard RGB LED
Set the maximum brightness of the onboard RGBLED.
Available range is:
0 to 255
Only for black Pico clones with onboard RGB LED
Set the SID of which to use the voices for the Vu meter.
Available options are (depending on your SID configuration):
-1 off, 0 off, 1 SID1, 2 SID2, 3 SID3, 4 SID4
Requires a SID clone with FMOpl capabilities, the socket Chip type set to Clone and SID type set to FMOpl before activation!
Available options are:
False, True
This setting cannot be changed manually
This setting will automatically be set to the correct SID number when all requirements are met as described under FMOpl Enabled
Disable or enable ASID protocol handling (SysEx-based SID playback over MIDI).
Available options are:
False, True