Skip to content

Commit 8c131f7

Browse files
authored
Update README.md
1 parent 248f66e commit 8c131f7

File tree

1 file changed

+85
-14
lines changed

1 file changed

+85
-14
lines changed

README.md

Lines changed: 85 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,25 @@
66

77
The SIDKick pico ("SKpico") is a drop-in replacement for the SID 6581/8580 sound chips in the Commodore 64 and 128 computers, and it can also emulate the SFX Sound Expander (FM).
88
It has been designed as an inexpensive alternative to other replacements while not making compromises regarding quality.
9-
It consists of a simple interface board and a Raspberry Pi Pico (or compatible clone).
9+
In its original form, it consists of a simple interface board and a Raspberry Pi Pico (or compatible clone). There is also
10+
a fully integrated all-feature-variant slightly larger than an original SID including the RP2040, flash memory, DAC, and operational amplifier.
1011
The emulation is based on an extended version of reSID 0.16 (with parts from reSID 1.0), and also includes a few additional features:
1112

1213
- dual 6581 and/or 8580 emulation based on reSID (optional: extension for digi-playing techniques), or 6581/8580 plus FM emulation
1314
- 2nd-SID address at $d400, $d420, $d500, $d420 + $d500 simultaneously, $de00, $df00 (on C128 no $d500), or any address when an external chip select signal is used (e.g. on Ultimate 64 boards)
1415
- paddle/mouse support
1516
- built-in configuration menu (launch with "SYS 54301"/"SYS 54333", also from C128-mode)
16-
- built-in PRG launcher ("SYS 54333,0" etc. or from the menu)
17-
- two hardware variants with sound output via ...
18-
- PWM (mono) through the C64/C128 mainboard and/or in stereo via a PCM5102A-DAC-board, or
19-
- onboard-DAC through the C64/C128 mainboard and/or line-out
17+
- built-in PRG launcher ("SYS 54333,0" etc. or from the menu), PRGs can be integrated into the firmware or flashed from the configuration menu
18+
- three hardware variants ...
19+
- the fully integrated all-feature-variant ("SKpico2040DAC"),
20+
- interface board for PWM (mono) through the C64/C128 mainboard and/or in stereo via a separate PCM5102A-DAC-board, or
21+
- interface board with onboard-DAC, output through the C64/C128 mainboard and/or line-out
2022

2123
<p align="center" font-size: 30px;>
2224
<img src="Images/SKpico_ex1.jpg" height="150">
2325
<img src="Images/SKpico_DAC2.jpg" height="150">
2426
<img src="Images/step0.jpg" height="150">
27+
<img src="Images/SKpico2040DAC.jpg" height="150">
2528
<img src="Images/SKpico_menu020.jpg" height="150">
2629
</p>
2730
<br />
@@ -33,13 +36,13 @@ You can listen to the SIDKick pico in two videos by emulaThor: <br>
3336
</p>
3437

3538

36-
## How to build a SIDKick pico
39+
## How to get a SIDKick pico
3740

3841
This section summarizes building and setting up the hardware.
3942

4043
### PCB ordering
4144

42-
You can order the PCBs from PCBWay without or with SMD-parts preassembled: [SKpico with PWM or external DAC](https://www.pcbway.com/project/shareproject/W160781ASB18_Gerber_1790f9c8.html) and [SKpico with onboard-DAC](https://www.pcbway.com/project/shareproject/SIDKick_pico_0_2_DAC_SID_6581_8580_replacement_for_C64_C128_01088623.html).
45+
You can order the PCBs from PCBWay without or with SMD-parts preassembled: [SKpico with PWM or external DAC](https://www.pcbway.com/project/shareproject/W160781ASB18_Gerber_1790f9c8.html), [SKpico with onboard-DAC](https://www.pcbway.com/project/shareproject/SIDKick_pico_0_2_DAC_SID_6581_8580_replacement_for_C64_C128_01088623.html), and [SKpico2040DAC](https://www.pcbway.com/project/shareproject/SIDKick_pico_2040DAC_SID_6581_8580_replacement_for_C64_C128_a31d896d.html).
4346

4447
You can also find my [other projects](https://www.pcbway.com/project/member/?bmbno=B5CDD8BE-199B-47) there. In case you don't have an account at PCBWay yet: [register via this link](https://pcbway.com/g/x1UjP0) and get "$5 of New User Free Credit".
4548

@@ -52,7 +55,7 @@ Even simpler, you can obtain pre-assembled SKpicos from
5255
Please do not buy from those who knowingly violate the license and sell overpriced SKpicos out of greed (see [Hall of Shame](#license-hall-of-shame)).
5356

5457

55-
### Building / Soldering
58+
### Building / Soldering (interface board)
5659

5760
The first step when building the SKpico is soldering the surface-mount components. These are located on the **bottom side** of the PCB.
5861
Please see the BOM and assembly information [SKpico with PWM or external DAC rev 0.1 (old)](https://htmlpreview.github.io/?https://github.com/frntc/SIDKick-pico/blob/master/BOM/ibom.html), [SKpico with PWM or external DAC rev 0.2](https://htmlpreview.github.io/?https://github.com/frntc/SIDKick-pico/blob/master/BOM/ibom_rev2.html) and [SKpico with onboard-DAC rev 0.2](https://htmlpreview.github.io/?https://github.com/frntc/SIDKick-pico/blob/master/BOM/ibom_rev2_dac.html). Note that the BOM for the onboard-DAC version shows a LM358 OpAmp (which works perfectly fine) -- for the more audiophile tinkerers I suggest using a TL072 (the PCBWay project uses the TL072!).
@@ -75,6 +78,12 @@ The next step is to solder the pin header and sockets which works best if you f
7578

7679
<br />
7780

81+
### Building / Soldering (SKpico2040DAC)
82+
83+
<img align="right" height="80" src="Images/SKpico2040DAC_RGBLED.jpg">
84+
85+
This PCB is probably not well suited for hand soldering. In case you want to give it a try, here's the [interactive BOM](https://htmlpreview.github.io/?https://github.com/frntc/SIDKick-pico/blob/master/BOM/ibom_SKpico2040DAC.html). Note that the PCBWay-project does not include the optional RGB-LED on the top side (two sided SMD-mounting is much more expensive), for which you need a WS2812B LED (SMD-4P, 5x5mm footprint) with the pinout shown on the image, e.g. the World Semi WS2812B-HS01/W. For the configuration of the SKpico2040DAC see below.
86+
7887
## Installing a SIDKick pico
7988

8089
Pay attention to *correctly orient and insert* the RPi Pico and the SKpico (see backside of PCB for markings) into the SID-socket of your C64 or C128. Note that in a C128D you might need to remove one support bolt of the power supply to fit the SKpico.
@@ -109,7 +118,7 @@ The built-in configuration tool autodetects and displays which cables have been
109118

110119
### Audio Output
111120

112-
#### PCB without DAC
121+
#### Interface board without DAC
113122

114123
<img align="right" height="160" src="Images/DAC_0.jpg">
115124
<img align="right" height="160" src="Images/DAC_1.jpg">
@@ -122,7 +131,7 @@ Note, which of the two output options is active depends on the firmware that you
122131

123132
The order of pins to connect the DAC to the SKpico is easy to determine: the order is given once you match Vin which corresponds to Vcc at the SKpico and GND to GND.
124133

125-
#### PCB with onboard DAC
134+
#### Interface board with onboard DAC
126135

127136
<img align="right" height="160" src="Images/DAC_jumpers.jpg">
128137

@@ -133,6 +142,26 @@ Optionally you can also close the two solder jumpers marked "R" to output the ri
133142

134143
**In short:** ideally connect the DAC-outputs directly to the audio/video-socket (then DO NOT close the solder jumpers), otherwise route the left channel through the mainboard by closing solderjumper "L".
135144

145+
#### SKpico2040DAC
146+
147+
148+
<img align="right" height="120" src="Images/SKpico2040DAC_lineout.jpg">
149+
There are two sound routing options: using the stereo-line out connector, and via the C64/C128 mainboard. Enabling line out and routing via mainboard work simultaneously (use jumper settings as for mainboard below).
150+
151+
<br>
152+
<br>
153+
<br>
154+
<br>
155+
<br>
156+
<br>
157+
158+
| output | jumpers |
159+
|----------|:-------------:|
160+
| Routing the sound via the mainboard <br> (set the two solder jumpers as indicated in red) <br> <img width="440" height="1"> | <img align="center" height="120" src="Images/SKpico2040DAC_opamp.jpg"> <br> <img width="300" height="1"> |
161+
| using only the line out (for external amplifiers or connecting to the video-audio-socket) <br> In this case, you can disable the operational amplifier as shown on the right. <br> <img width="440" height="1"> | <img align="center" height="120" src="Images/SKpico2040DAC_only_lineout.jpg"> <br> <img width="300" height="1"> |
162+
163+
Connecting additional address lines works as for the other variants, the connectors are the two at the short side of the PCB.
164+
136165
<br>
137166

138167
### Powering the SKpico
@@ -143,16 +172,51 @@ The SKpico is powered from the C64/C128-mainboard, DO NOT power from USB.
143172

144173

145174

146-
## Firmware Uploading
175+
## Firmware Uploading (interface board)
147176

148177
The SKpico-PCBs do not need to be programmed in any way. Only the RPi Pico needs to be flashed with the pre-built binaries (available in the release package).
149178

150-
The procedure is simple: press the 'Boot'-button on the RPi pico, connect to your PC and it shows up as USB-drive. Then simply copy the firmware (.uf2) to this drive.
179+
The procedure is simple: press and hold the 'Boot'-button on the RPi pico, then connect to your PC. When it shows up as USB-drive you can simply copy the firmware (.uf2) to this drive (no need to keep pressing the boot button).
151180

152181
**IMPORTANT:** DO NOT connect the RPi Pico to USB while it is plugged into your C64/C128! (but it's no problem if the Pico is soldered to the SKpico-PCB)
153182

154183
<br>
155184

185+
## Firmware Uploading (SKpico2040DAC)
186+
187+
<img align="right" height="120" src="Images/SKpico2040DAC_usb.jpg">
188+
Flashing the firmware still works via USB, however, the packed footprint makes an adapter (or fiddling) necessary.
189+
For this, the SKpico2040DAC-PCB has a two pin connector labelled "boot" which need to be shortened before connecting USB (it's the same as the boot button on Picos) -- and a four pin USB-connector directly above, pins labelled GND, D+, D-, and 5V.
190+
191+
192+
<br>
193+
<br>
194+
<br>
195+
196+
<img align="right" height="120" src="Images/SKpico2040_adapter.jpg">
197+
198+
There is a [adapter-PCB](https://www.pcbway.com/project/shareproject/SIDKick_pico_2040DAC_Programming_Adapter_3db447bf.html) to make the connection easier which can be used in two ways (pay attention to the orientation of the PCB, see images):
199+
1) using a socket where the SKpico2040DAC can be put in, and 6 pogo pins/spring test probe which connect to the SKpico2040DAC from below (needle diameter 0.68mm, tip 0.9mm).
200+
2) using 6 pogo pins (pointing away from adapter PCB side with the logo, diameter 0.68mm). These pins are plugged through the 6 holes on the SKpico2040DAC-pcb and tilted slightly to make contact. This sounds handwavy, but works pretty well.
201+
202+
203+
204+
205+
<img align="right" height="80" src="Images/USB_breakout.jpg">
206+
On the adapter board you need to close the "boot"-solder jumper, and connect the four large USB-pins (2.54mm spacing) to a USB-socket or plug and then to your PC. I use prebuilt USB-socket-breakout boards (shown on the image) which can be easily soldered to the adapter.
207+
208+
<br>
209+
210+
211+
**Hint**: when building the adapter use several stacked adapter-PCBs to align the pogo pins.
212+
213+
### Other options
214+
215+
Any other solution for closing "boot" and connecting to USB works as well. The boot-jumper can easily be closed using a dupont wire. For there rest there exist test probes / adapters from "4-pins with 1.27mm-spacing" to something more convenient (search for test clamp, programming probe, ...).
216+
And here's one more variant: 5V and GND can be supplied via SID pins, leaving only D+/D- (this can even be handled using a USB-breakout board plus some wires).
217+
218+
219+
156220
### Sidekick64-/RAD Expansion Unit-InterOp
157221
If you're using [Sidekick64](https://github.com/frntc/Sidekick64) or [RAD Expansion Unit](https://github.com/frntc/RAD) then you should update to their latest firmwares.
158222

@@ -182,7 +246,9 @@ If you choose 'reSID+digi detect' as emulation option, then the SKpico uses heur
182246

183247
You can add PRGs to the firmware which can then be started from the configuration tool (via F7) or directly from Basic with SYS 54333,0 (for the first PRG), SYS 54333,1 (2nd PRG) etc.
184248

185-
To add PRGs use *skpicopatch* (it's in the release package), with the respective firmware as parameter. This adds all PRGs listed in *prg.lst* to the firmware and writes it to *SKpicoPRG.uf2*.
249+
To add PRGs either use
250+
- *skpicopatch* (it's in the release package), with the respective firmware as parameter. This adds all PRGs listed in *prg.lst* to the firmware and writes it to *SKpicoPRG.uf2*, or
251+
- add PRGs in the configuration tool from a (disk) drive 8.
186252

187253

188254
<br/>
@@ -191,10 +257,15 @@ To add PRGs use *skpicopatch* (it's in the release package), with the respective
191257

192258
When the SKpico-hardware is build correctly you should be able to start the configuration tool from Basic. If this does not work reliably, first check the soldering. In case it still does not work properly, or you experience glitches with the mouse or paddles (more than the normal slight jittering) or very old SID-tunes (reading write-only registers...) your computer might be one of the rare machines requiring different-than-default timings. They can be modified by calling *skpicopatch* with two additional parameters. Their default values are 15 and 11, smaller values mean less waiting for reading/writing signals to the bus. Most likely you need to decrease these values if you experience problems with the default timings.
193259

260+
In case you do not want to flash the firmware again, you can try to modify the timings using the **SKpicotiming tool** running on the C64.
261+
194262
In case you use a **Pico-clone** with the RGB-LED (e.g. the black PCBs available from Chinese sellers) and it does not blink, make sure the solder jumper for the RGB-LED is closed (it sometimes isn't).
195263
If your mouse or paddles do not work properly, e.g. the x-paddle influences the y-paddle and vice versa, check the solder pad named "VREF": there should be a large resistor to fix the paddles, or close the solder pad with a blob such that the "trigger"-option also works.
196264
In general, these PCBs seem to quite often have quality issues (bad soldering, even missing components), have a closer look at the PCBs if they behave strange.
197265

266+
If a diagnostic ROM reports "bad SID" this might be due to too low values (this might be due to capacitors becoming old, ...). You can also check the values with a diagnostic harness in the configuration tool (afaik the diagnostic ROMs check for values between 80 to 120). If they are too low, and you want the diagnostic ROM to pass, you can offset them (statically or only then a diagnostic situation is detected) using SKpicopatch.
267+
268+
If you can't hear digis in Ghostbusters (or any other old tune using 4-bit samples via $d418): don't forget to configure the SKpico to use 6581 or 8580 with digiboost.
198269
<br/>
199270

200271
## Firmware Building (if you want to):
@@ -206,7 +277,7 @@ The firmware has been built using the Raspberry Pi Pico SDK.
206277

207278
## Disclaimer
208279

209-
Be careful not to damage your RPi Pico, PC, or Commodore, or anything attached to it. I am not responsible if you or your hardware gets damaged. Note that the RPi Pico gets overclocked. If you don't know what you're doing, better don't... use everything at your own risk.
280+
I'm a hobbyist, no electronics engineer. I'm doing my best to ensure that my projects are working at intended, but I cannot give any guarantee for anything. Be careful not to damage your RPi Pico, PC, or Commodore, or anything attached to it. I am not responsible if you or your hardware gets damaged. Note that the RPi Pico/RP2040 gets overclocked. If you don't know what you're doing, better don't... use everything at your own risk.
210281

211282
<br />
212283

0 commit comments

Comments
 (0)