The Raspberry Pi SID player is a device which allows you to play music from the Commodore 64 computer using original audio hardware (the “SID” chip) through the Raspberry Pi. In addition to supporting the vast library of classic game music from the Commodore 64, this player also supports the playback of homebrew Commodore 64 music.
Block diagram & Hardware configuration:
The GPIO pins on the Raspberry Pi are used to address the SID chip and feed data to it. In order to reduce the number of GPIO pins used (which makes this compatible with earlier Raspberry Pi models), I leverage shift registers to interface between both the address and data busses of the SID chip and the Raspberry Pi.
The output stage of the SID chip is coupled with a 1k resistor and 4.7uF capacitor as described in the SID chips datasheet. The audio is then fed into a very simple LM386 amplifier circuit, tuned for a gain of about 20x, which is sufficient to drive a headphone jack. The circuit for the amplifier comes straight from the LM386 datasheet, and it works fine for me. Powering the SID can be a challenge, as the chip requires both +5V and +12V supplies. I found that using an 8xAA battery pack full of Enloop rechargeable batteries produced 5.2V and 10.5V, depending on whether I tap half of all of the batteries. The SID 12V supply line worked fine for me at 10.5V. In addition to powering the SID, I use the 5V line to power the Raspberry Pi. This allows for a more compact, and portable build.
Finally, to make the device useful as a standalone music player, I added an LCD to the device, which lets you see information about the currently playing song. I used a Sainsmart 20×4 LCD because it was inexpensive, and it is very easy to interface (I2C). Initial reports suggested that the 3.3v logic of the GPIO wouldn’t be high enough to drive the LCD, but I did not have a problem doing so via i2c.
For more detail: Raspberry Pi SID Player