Hybrid SID Player

A place to document your own projects.

Re: Hybrid SID Player

Postby Markus Gritsch » Tue Aug 02, 2011 8:24 am

Thanks, nice project. 115200 baud will be too slow for newish digi tunes like 'Fanta in Space' or 'Pollycracker'. Can the FT2232D on the Papilio be configured to use higher baud rates? 100+ kB/s are needed for those tunes. Would it be difficult to buffer not a specific amount of bytes (16 kB) but a specific amount of cycles, say 100 kcycles? This way you would get a fixed latency not dependant on the data rate.
User avatar
Markus Gritsch
Sr. Member
Sr. Member
 
Posts: 297
Joined: Tue Feb 09, 2010 6:54 am

Re: Hybrid SID Player

Postby d18c7db » Tue Aug 02, 2011 8:37 am

Yes the FTDI can easily go up to 3mbits. That is the reason I was sort of asking what baud you were running your board at. I found out the limitation when I tried to play tunes with samples such as Isengard as in your video. It won't be hard at all to increase the baud rate. As for the buffering lag anything is possible with a bit more time and effort :)
d18c7db
Newbie
Newbie
 
Posts: 8
Joined: Sun Dec 06, 2009 7:06 pm

Re: Hybrid SID Player

Postby ian » Fri Aug 05, 2011 6:28 am

Thanks for sharing your player, I'll post it up.
User avatar
ian
Crew
Crew
 
Posts: 10803
Joined: Mon Jul 06, 2009 6:14 am

Re: Hybrid SID Player

Postby rsdio » Wed Aug 10, 2011 6:20 am

d18c7db wrote:No, I'm using a SID VHDL core with unknown attribution, I suspect it's possibly made by Kevin Horton at http://blog.kevtris.org and on his blog he states he implemented the filter externally to the FPGA in hardware.

I can't read VHDL (yet), so I am hoping that someone here can satisfy my curiosity: What is the 'audio' output of the FPGA? Is it a parallel data bus feeding a DAC, or is it a single bit? The SID triangle and other waveforms imply that a DAC would be needed for reasonable emulation. A quick scan of the MOS Tech SID Wikipedia entry confirms that the original is a hybrid analog+digital chip, so I imagine that an FPGA recreation would also need some analog stuff outside the FPGA in order to make all sounds.
User avatar
rsdio
Developer
Developer
 
Posts: 1407
Joined: Sun Feb 28, 2010 10:53 pm
Location: Seattle

Re: Hybrid SID Player

Postby d18c7db » Wed Aug 10, 2011 6:49 am

Yes and no, the only "analog stuff" outside the FPGA is a resistor and capacitor. The design uses a one bit digital pin to implement D/A using this Delta-Sigma modulation http://www.xilinx.com/support/documenta ... app154.pdf
d18c7db
Newbie
Newbie
 
Posts: 8
Joined: Sun Dec 06, 2009 7:06 pm

Re: Hybrid SID Player

Postby semiLucid » Sun Oct 02, 2011 12:10 am

Hi Markus I saw your SID player has evolved into a 'Network SID device' that's pretty cool. Do you have plans to release the latest schematic with a parts list, so newbies with a soldering iron (I am speaking about myself here) have a chance of putting one of these together?
semiLucid
Newbie
Newbie
 
Posts: 3
Joined: Sun Oct 02, 2011 12:02 am

Re: Hybrid SID Player

Postby Markus Gritsch » Sun Oct 02, 2011 2:53 pm

Hi semiLucid, the schematic [1] is unchanged. The 'Network SID Device' just uses a different firmware [2].

[1] viewtopic.php?f=56&t=2197#p22493
[2] viewtopic.php?f=56&t=2197&p=24515#p24515
User avatar
Markus Gritsch
Sr. Member
Sr. Member
 
Posts: 297
Joined: Tue Feb 09, 2010 6:54 am

Re: Hybrid SID Player

Postby semiLucid » Sun Oct 02, 2011 6:56 pm

I guess I will give this project a go, I am just getting into electronics and I am very nostalgic for the great C64 sound. All I need to do is learn how to read your schematic <newbie I know>. I read that the LCD you used is no longer available, can you recommend an alternative?

You also mentioned your PIC32 board is custom built, does this mean I can't use the CUI32 PIC32MX Development Stick sold on Sparkfun Electronics?

I spotted this chipKIT Max32 which claims to use the PIC32MX795F512. Would that be drop in compatible with your board? I am not sure if its exactly the same or not.
semiLucid
Newbie
Newbie
 
Posts: 3
Joined: Sun Oct 02, 2011 12:02 am

Re: Hybrid SID Player

Postby Markus Gritsch » Mon Oct 03, 2011 10:11 am

The specific OLED break-out board from SeeedStudio is no longer available, but any SSD1308 (and likely SSD1306 as well) based boards with an SPI interface broken out should work fine. This one [1] probably works.

The CUI32 currently sold by SparkFun uses a PIC32 with too little RAM. The chipKIT Max32 uses the same chip as I do, except that mine is the 64 pin version and the Max32 uses the 100 pin version, so you would have to find the correct pins for the connections yourself. If you can wait a few weeks, SeeedStudio is coming up with a new version of the CUI32 called the CUI32Stem. It will carry the PIC32MX795F512H, which is exactly the one I used.

[1] https://www.adafruit.com/products/326
Last edited by Markus Gritsch on Thu Mar 15, 2012 2:58 am, edited 4 times in total.
User avatar
Markus Gritsch
Sr. Member
Sr. Member
 
Posts: 297
Joined: Tue Feb 09, 2010 6:54 am

Re: Hybrid SID Player

Postby semiLucid » Tue Oct 11, 2011 1:15 am

Hi Markus, thanks for that I will wait for the CUI32Stem to come out as it will save me the hell of soldering all those tiny pins. I am trying to figure out the parts you have used, what is that red stick marked SOIC(W) it looks like you modify it in later pictures?

It would be a real help if you could create a parts list and detail and mods you have made. Especially for those people who come after me.
semiLucid
Newbie
Newbie
 
Posts: 3
Joined: Sun Oct 02, 2011 12:02 am

Re: Hybrid SID Player

Postby Markus Gritsch » Tue Oct 11, 2011 2:12 am

The "red stick" is just a piece of proto-board holding the ST662AB DC-DC converter including it's charge pump and bypass capacitors. Is's depicted in the schematic. I will add an arrow to the schematic to make it more clear that the ST662AB is the SOIC.

Pumping the 5V to 12V using the DC-DC converter and then regulating it to 9V using the linear regulator leads to a very smooth 9V analog power supply for the SID. You could use any other part or parts combination which will provide you with the required 9V supply for the 8580 (12V for the 6581). Just make sure it does not contain any noise or AC-ripple, as it would be audible in the analog output signal. And avoid under any circumstances voltage spikes (e.g. when turning off a transformer) as they will kill your beloved SID.
User avatar
Markus Gritsch
Sr. Member
Sr. Member
 
Posts: 297
Joined: Tue Feb 09, 2010 6:54 am

Re: Hybrid SID Player

Postby Markus Gritsch » Fri Oct 28, 2011 2:38 pm

Hi,

I thought it would be nice to have my SID player hardware located next to the stereo equipment and have its audio output connected to it. Having an USB cable running to the laptop from which ACID 64 sends the SID data isn't convenient, so I looked for a simple wireless solution.

Since my latop already has bluetooth built in, I bought an HC-06 module from ITead Studio for $13 (before spotting them for about half that price with shipping included on eBay). These little modules provide a virtual COM connection through the SPP (Serial Port Profile), so almost no modification was necessary for the Python socket server which already sends the data to a virtual COM port.

On the firmware side I added support for receiving the SID data from one of the six UARTs of the PIC32 (If no USB cable is connected). I noticed one drawback when using Bluetooth SPP instead of the USB virtual COM port: While throughput is quite ok, and can be set to nice high baud rates, latency is not. If you use some protocol over the emulated COM port which uses some form of acknowledgment handshaking, performance degrades a lot, because round-trip latency is about 20 ms to 40 ms, which is a long time for my use case. However for normal tunes without digi-data it is fast enough.

Here are some pictures. Note the small PCB trace antenna lurking just below the OLED display:

IMG_6062.JPG

IMG_6070.JPG

IMG_6067.JPG

As always, please find the latest firmware attached.

Have fun,
Markus
Attachments
firmware_2011-10-28.zip
(337.38 KiB) Downloaded 414 times
Last edited by Markus Gritsch on Fri Nov 11, 2011 8:42 am, edited 1 time in total.
User avatar
Markus Gritsch
Sr. Member
Sr. Member
 
Posts: 297
Joined: Tue Feb 09, 2010 6:54 am

Re: Hybrid SID Player

Postby DigitalRain » Thu Nov 03, 2011 7:57 pm

Nice project, are you going to produce a kit? I could understand if it came sans SID chip. Failing that how about listing the parts you used so people can go grab them and put one of these babies together?
DigitalRain
Newbie
Newbie
 
Posts: 1
Joined: Thu Nov 03, 2011 7:51 pm

Re: Hybrid SID Player

Postby Gianni » Sun Nov 06, 2011 10:15 am

There is a chance to port this project on a ChipKIT UNO32 / MAX 32 Board?
Gianni
Newbie
Newbie
 
Posts: 11
Joined: Wed Jun 01, 2011 1:09 am
Location: Italy

Re: Hybrid SID Player

Postby Markus Gritsch » Fri Nov 11, 2011 9:03 am

The chipKIT Uno32 uses a PIC32 with too little RAM for the stand-alone SID playing firmware. The chipKIT Max32 uses almost the same PIC32, but in a larger package with more pins, so the used pins would have different pin numbers. Theoretically it should work.

SeeedStudio is currently preparing "mass production" (I think 100 units in the first run) of an updated CUI32 board, the CUI32Stem, which carries the same PIC32 used here. It should be available within a few weeks. I will write a short notice here when they have it in their store.
User avatar
Markus Gritsch
Sr. Member
Sr. Member
 
Posts: 297
Joined: Tue Feb 09, 2010 6:54 am

PreviousNext

Return to Project logs