You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+85-14Lines changed: 85 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,22 +6,25 @@
6
6
7
7
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).
8
8
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.
10
11
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:
11
12
12
13
- dual 6581 and/or 8580 emulation based on reSID (optional: extension for digi-playing techniques), or 6581/8580 plus FM emulation
13
14
- 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)
14
15
- paddle/mouse support
15
16
- 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
20
22
21
23
<palign="center"font-size:30px;>
22
24
<imgsrc="Images/SKpico_ex1.jpg"height="150">
23
25
<imgsrc="Images/SKpico_DAC2.jpg"height="150">
24
26
<imgsrc="Images/step0.jpg"height="150">
27
+
<imgsrc="Images/SKpico2040DAC.jpg"height="150">
25
28
<imgsrc="Images/SKpico_menu020.jpg"height="150">
26
29
</p>
27
30
<br />
@@ -33,13 +36,13 @@ You can listen to the SIDKick pico in two videos by emulaThor: <br>
33
36
</p>
34
37
35
38
36
-
## How to build a SIDKick pico
39
+
## How to get a SIDKick pico
37
40
38
41
This section summarizes building and setting up the hardware.
39
42
40
43
### PCB ordering
41
44
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).
43
46
44
47
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".
45
48
@@ -52,7 +55,7 @@ Even simpler, you can obtain pre-assembled SKpicos from
52
55
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)).
53
56
54
57
55
-
### Building / Soldering
58
+
### Building / Soldering (interface board)
56
59
57
60
The first step when building the SKpico is soldering the surface-mount components. These are located on the **bottom side** of the PCB.
58
61
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
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
+
78
87
## Installing a SIDKick pico
79
88
80
89
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
@@ -122,7 +131,7 @@ Note, which of the two output options is active depends on the firmware that you
122
131
123
132
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.
@@ -133,6 +142,26 @@ Optionally you can also close the two solder jumpers marked "R" to output the ri
133
142
134
143
**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".
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> <imgwidth="440"height="1"> | <imgalign="center"height="120"src="Images/SKpico2040DAC_opamp.jpg"> <br> <imgwidth="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> <imgwidth="440"height="1"> | <imgalign="center"height="120"src="Images/SKpico2040DAC_only_lineout.jpg"> <br> <imgwidth="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
+
136
165
<br>
137
166
138
167
### Powering the SKpico
@@ -143,16 +172,51 @@ The SKpico is powered from the C64/C128-mainboard, DO NOT power from USB.
143
172
144
173
145
174
146
-
## Firmware Uploading
175
+
## Firmware Uploading (interface board)
147
176
148
177
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).
149
178
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).
151
180
152
181
**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)
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.
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.
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
+
156
220
### Sidekick64-/RAD Expansion Unit-InterOp
157
221
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.
158
222
@@ -182,7 +246,9 @@ If you choose 'reSID+digi detect' as emulation option, then the SKpico uses heur
182
246
183
247
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.
184
248
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.
186
252
187
253
188
254
<br/>
@@ -191,10 +257,15 @@ To add PRGs use *skpicopatch* (it's in the release package), with the respective
191
257
192
258
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.
193
259
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
+
194
262
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).
195
263
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.
196
264
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.
197
265
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.
198
269
<br/>
199
270
200
271
## Firmware Building (if you want to):
@@ -206,7 +277,7 @@ The firmware has been built using the Raspberry Pi Pico SDK.
206
277
207
278
## Disclaimer
208
279
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.
0 commit comments