CM102 Soundcard – The Aftermath

Truth be told, this project has been done for months. In the meanwhile I was doing endless job interviews, switched a job and in between life tends to get in the way. However this project turned out cooler than expected, so let’s wrap it up. I don’t think Iv’e written where I get my materials before, so this is a good time to start:

  • For this project and all the next ones, I started printing all my PCBs using SEEED Studio. They have a very easy PCB manufacturing interface, Real good prices and surprisingly good manufacturing results. The basic price is given for 1.6mm FR-4 substrate, dual sided print for an up to 10x10cm PCB. Their manufacturing\shipping time varies, but they have expedited options (for an extra buck, naturally).
  • The CM102 chip was ordered from AliExpress, as well as the JRC 4556a as well. Both of them in SOIC packages. The RCA jack was ordered from AliExpress as well, from a different vendor.
  • The USB connector was picked off Ebay. It turns out there a lot, but here is it’s data sheet, if you want to try and find it:
  • All passive components were ordered from Tayda Electronics. This shop has a descent variety of basic components. The stock doesn’t seem to change very often, but they always deliver. Most of their components are through hole (DIP for semiconductors) but they have 0805 capacitors and resistors in a satisfactory range of values. If you need anythings special\bigger\smaller, you’ll have to find it elsewhere). Their shipping time, to Israel at least, is a about two weeks, fixed, using the basic shipment. I expect that other countries should get it faster (our post is horrendous).

So everything came by and I started assembling using my (not so) trusty gear:

Eventually I was done. In the corrected layout, I left out an option in pin #1 of the DAC. I wasn’t sure whether to pull it up (PA on) or down, as I was using an external PA (Buffer Op-Amp). Hence I left the option open

so the internal PA can be activated or deactivated using this pin, and a 0 Ohm resistor. Lucky me, because eventually it turned out that it was necessary to pull it up. In the original design it was pulled down by default.Another layout error already corrected was the the USB actually needed to be cut underneath… In order to hack this to work I had to bend the USB pins, but in the end here will be the corrected GRBR files.

Other than that, the assembly went smooth! After flipping a couple of capacitors and cursing my cheap soldering station, there was a circuit to behold (or 5).

Moment of truth!! Connecting it to the PC, Led turns on… and viola!

However it sounded horrible. Took me a while, but I figured out that the loudness needs to be turned off, because it clips the buffer stage for some reason. This can be done only with the ALS Driver. As a GUI I use the GNOME ALSA Mixer (Available in the Ubuntu Software Center). Using windows it’s simpler, however only my work PC has window and I’m not allowed to use it to edit this blog…

Sound wise, I think the output stage takes a little work. It was a bit too high pitch, so I tried switching the feedback resistors to 500 Ohms. That made it too low pitch. As far as sound, it gives a good fight for the Behringer UCA202 I bought several years ago for about 150 NIS. For reference, this entire project cost me 300 NIS for 5 whole prototypes. Sadly, two have died already. One of them is used for the SPDIF pin, still, so hopes are high.

It goes up to 48KHz sampling rate, with a mere 16-bit resolution (however that is already on the data sheet, isn’t it?). For moderate desktop speakers this guy does the job. There is a good chance the output stage (NJM4556a Op-Amp) is unnecessary, but I probably won’t know for a while.

The GBRs are available Here, and the schematic Here. Enjoy, and feel free to contact me with any questions with this. Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *