Tuesday, May 5, 2015

Fixing USB audio controller (CM108) for headphones

Cheap USB audio controller
Recently, I bought a cheap USB audio controller because my motherboard's built-in microphone input was dead. However, there were some problems with the stereo output. It seems to work well when it was connected to a pair of powered speakers, but there was only noise when connected directly to my earphones. When I measured the output voltage, it shows a 2 - 4 V bias voltage which is unusual because it should not have any bias voltages and normally 0 V when no audio.

When plugged into my Linux machine, lsusb shows the following:

$ lsusb | grep -i audio
Bus 005 Device 003: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller

So, with a little googling for CM108, I found that the datasheet at http://www.halicky.sk/om3cph/sb/CM108_DataSheet_v1.6.pdf and also Kevin Custer's site about modifying it http://www.repeater-builder.com/projects/fob/startech-fob.html

When I opened up the device and compare it with Kevin Custer's photos, the most obvious difference was the missing capacitors.

Looking at the datasheet, it seems that the two 470 uF DC blocking capacitors was missing!
In fact, the PCB traces directly shorts the two pairs pads together. This explains why it works with speakers with built-in amplifier but not headphones. The audio amplifier circuits in the speakers probably has some built-in DC blocking capacitors at it's input or some audio transformer.


Missing DC blocking capacitors
So, I went to the local electronics store and bought some 470 uF capacitors. Unfortunately, they only have caps rated for 35 V and not have any smaller size ones with lower voltage rating.
This means that it will not be possible to fit the caps inside the existing casing. So I had to make 2 holes at the bottom casing to fit the capacitors leads and solder them upside down.
I also had to cut the PCB traces between each pair of pads as mention earlier.


In addition, I also had to cut the middle ring terminal for the microphone input because the tip and the ring was connected while my microphone's plug has ring and sleeve.

TipRingSleeve
Mic input jackMic InGnd
Mic plugMic InGnd


Cutting the middle terminal connection for the microphone jack
Finally, everything works properly. The audio input/output quality was ok and comparable to my built-in motherboard audio quality but it costed me extra time and money to fix it.

Final reassembled device with the huge capacitors!



Friday, April 3, 2015

Missing xterm on Linux Mint when installing Juniper Network Connect

I was trying to connect to company SSL VPN that uses Juniper Network Connect on Linux Mint 17 64-bit.

However, the network connect dialog keeps shutting down after launch for  a few seconds.

I've followed their support documentation at http://kb.juniper.net/InfoCenter/index?page=content&id=KB25230 but it was still not working.

After a bit digging around, I found the log fail at ~/.juniper_networks/network_connect/installnc.log shows missing xterm.

After installing xterm with sudo apt-get install xterm, I can finally connect successfully to the VPN.