SID Buffer

Ok, so this here is a circuit that can be used to lower the background noise generated by a SID chip quite dramatically. It works for both SID models. The basic idea is to separate the SID from the data/address buses of the C64 when the chip is not accessed. As the digital and analog sides use the same ground, the more rapidly changing digital signal bleeds to the analog side through the common ground (hence the background noise).

SID Buffer schematic

(Click the image to download the pdf)

The schematic and pcb were quickly drawn based on the instructions and building experiences/insights provided to me by Grue of Beyond Force. On my initial veroboard version, there were a few mistakes like the databus buffer wired the wrong way around (fixed by adding a inverter to the R/_W signal, not shown in the pictures here). These have been fixed in the schematic above. I also replaced some of the parts with SMDs (caps, logic) to save up board space. I haven’t yet etched a proto board from this schematic since I haven’t had any need for a second one. So, if you try this one out and it works please let me know. I can then revise the schematic if corrections are required. Here’s the original text provided by Grue and written by Dr. Biotek:

Getting hi-fi with a lo-fi C64, ghetto style. by Dr. Biotek For thousands of years a secret ninjitsu trick has been passed thru generations and generations which involves tens of years of disciplined practice and hardship. This technique has been guarded with death and many have attempted to escape with it but only resulting to a certain and gruesome death.. until now. The Commodore 64 is a homecomputer released in the early eighties which had groundbreaking sound capabilities for it’s time. The soundchip on the 64 is known as SID (sound interface device) which is actually a fully equipped monophonic synthesizer. However the C64 was put together in a breakneck speed and the engineer behind the chip didn’t have time to get it perfect so it has little bugs and defects in it. One of those defects can be heard when you plug the thing to your mixer and try to make a track with it.. there is a horrible background noise leaking from the computers databus to the sound! This article presents a hack which reduces this noise significantly. The main reason behind the bus noise leaking thru to the sound output are the sidchip’s insufficient input buffers. To get around this we need to add couple of buffer chips in there to cut out the leaking. The material needed for this is cheap and readily available from a electronic store or junk/recycle shops (look for old 286 PCs, these pretty much have everything you need). What we need:

  • two 74ls245 octal bus transceiver (fancy word for a buffer) chips
  • ribbon cable
  • circuit board (you can make your own pcb or use a veroboard of your choice)
  • some wire if you don’t use a pcb
  • 28 pin socket for the SID
  • two 100nF bypass capacitors for the buffer chips
  • datasheets for the chips and SID (MOS6581 or MOS8580)
  • tools and the skill to use them
  • basic electronics knowledge

The plan is to build a board with the buffers, the SID and the filter capacitors which the SID needs and connect it to the C64 with ribbon cables. The hardest part is to desolder the SID socket (if your commie doesn’t have the SID in a socket I don’t recommend this operation for it). If you don’t have the patience (like me) you can rip the socket apart and pull the legs of the board one by one. After the socket is removed you now need the SID datasheet.. you can find it on the net as a pdf. You need to figure out which pins were connected to the filter capacitors and locate the said capacitors on the 64 board and desolder them. Now we are ready to do the buffered board. The idea is to stick the buffer chips between the computers bus pins and the SID. Solder in the socket for the SID. The 74ls245 chip has 8 buffers in it, the other chip is for the eight data pins D0-D7 and the other for the five address pins A0-A4. The address pins’ 74ls245’s DIR pin needs to be grounded for correct configuration of the chip. The data pins’ 74ls245’s DIR pin needs to be connected to the SID’s R/_W pin. Also the buffers’ _OE pins need to be connected to the SID’s _CS pin. Naturally the chips need their share of the VCC juice so don’t forget the VCC and GND pins and add 100nF bypass caps between the VCC pin and ground. Don’t forget to solder in the filter caps for the SID. The board needs to be connected to the 64 motherboard now. Remember that the bus signals must go thru the buffers. Other signals go straight to the SID except the AUDIOIN signal which should be left unconnected to cut some noise (connect it if you really need it). You can make these connections by using ribbon cable like I did or use some socket to connect to the motherboards SID socket. The latter is a better idea since mounting the buffered SID board can be a problem. I solved it by blue-takking/stick-takking the board to the top of the tv-modulator. After the connections are made and the SID mounted to it’s socket on the buffered board it should work. If you fry your Commie, electrocute yourself and burn your house down don’t blame me though. I’ve only done this with a MOS6581 and a old breadbox C64 but it should work with the new version and MOS8580 too. Props to Grue on #c-64 for this hack and greets to Rikos Records!

Everything should be rather obvious from the schematic, but it’s worth noting that the schematic assumes that SID versions are not mixed. So to say, MOS6581 for the original (breadbox) C64 and 8580 for the newer C64C only.

This version of the buffer has also the option of selecting operating voltage (J3) for the SID either directly from the system or through a separate regulator. I didn’t test this on my own prototype, but Grue adviced that having a separate regulator for the SID drops the noise level a bit more. Further mods suggested by him were adding sockets/power for both SID models (selected with a toggle switch) and building a custom audio out buffer/amplifier. Having both SIDs installed would require either a breadbox C64 or a modded C64C (9VDC feed zener replaced with a 12V one).

Present Day Update: I completed the veroboard version of this mod at the end of october 2005, but since the problems mentioned here I don’t see the point of posting the initial faulty schematics and doing a second post with the correction. Not that I have the faulty schematic stored anymore either :) .. As Grue pointed out, I’ve erratically used ‘VDD_9v’ net name for the SID operating voltage input (pin 28) despite the SID decal is ‘MOS6581’. This net_name is there because it fit more cleanly inside the component decal than ‘VDD_12V’.

Tags: , , , ,

4 responses to “SID Buffer”

  1. Chris says :

    So did it help? What was the noise reduction like?

Leave a comment