External USB sound card with Opto Out, 5.1 sound, HiFi

External USB sound card with excellent audio-values
Optical output for 5.1 surround sound.
Runs without drivers on Windows, Mac OS and Linux.
Cost: <20 €

This sound card uses the high end USB sound chip PCM2704 from BurrBrown.
Even in standard application this circuit has fantastic performance. This chip is a long time insider tip for audio enthusiasts.

Technical parameter Value
THD+N 0.006% at Rl > 10 kOhm
0.025 at Rl = 32 Ohm
Dynamic range 98 dB
Filter Digital oversampling filter
Analog low pass fg = 140 kHz
(0,1 dB reduction ati 20 kHz)
Ripple in pass band ± 0,04 dB
Output power 12 mW at Rl = 32 Ohm
Output load >16 Ohm
Converter Type 16 bit Stereo Delta-Sigma DAC
Digital output S/PDIF, multi-channel capable
Sampling frequency 32, 44.1, 48 kHz

Multi-channel systems and D / A converters can be connected via optical Toslink. So you can use each ordinary laptop to send 5-channel surround sound to a surround amplifier. On the other hand you can enjoy stereo signals in excellent high end audio quality just by plugging in headphones or connecting the sound card via analog cable to your amplifier.
The sound card has a powerful headphone output, which provides the excellent audio parameters given in the table above.
You can also optionally assemble RCA jacks to connect analog stereo.

Several years ago the DIY magazine Elektor published a PCM2704 project with additional analog filters. To me this seemed unmotivated expensive and the benefits are questionable. After all, the analog signal is used for headphones only and it should not be digitized again.

Bit rates

This sound card puts out audio streams with 32 and 44.1 and 48 kHz sampling rates. Therefore, Dolby 5.1 and DTS 5.1 are possible. Several commercially available USB sound cards support only the output of 48 kHz, so that they cannot output multi-channel sounds.
All popular music formats are reproduced without resampling. All other sampling frequencies are up or down scaled by the PCM2704 to 48 kHz.

Hardware

Circuit ( PNG, Eagle file) – PCB ( PNG, PDF, Eagle file) – parts needed and Where to buy.

     

Photo gallery

Notes on soldering:
Use 0.3 fine solder for the PCM2704. Afterwards detach solder between the pins with aid of magnifying glass and desoldering wick. This works quite well. After that my circuit played right from the start.

Package options
By design, this project should not become a plug in USB stick. An stick overlaps the notebook and it is quickly destroyed or the USB port may break out.
Intentionally no SMD components were used. So a 1-sided PCB will do it. The top side has been left as an additional continuous ground plane. You can also omit it.

The PCB uses only part of the large case (Reichelt SP2062). The free space is used for additional connectors, such as RCA jacks or a large phone jack for headphones (see picture on top). If both are not needed, you can take a smaller package.
The smallest extreme version only uses the optical sound card output. In this case, the whole analog part has to be removed, and the board will match into a tiny enclosure.
First I have filed the rectangular gaps for the TOSLINK and USB socket, and then smoothed them by cutting with a scalpel.

Bestückungsvarianten

One printed circuit board, three versions of size (with analog part - only optical output - extra cuts)

Driver

The card is automatically detected and addressed properly as an "USB Audio Device" under Windows, Mac and Linux.

I tested it on Windows 2000, Windows XP and Linux (Knoppix 5.2).
Working under Windows and Linux does not require administrator rights.

USB audio device in the Windows Mixer (Windows 2000)

If the card is already connected when booting, the operation system will use the sound card as the primary sound card so that it is addressed by all programs automatically. If you put it on later, then some of the applications require explicit selection of one of the sound cards that are available in the system. Other programs such as Winamp automatically use USB audio as soon as the card is inserted.
Most software use USB audio automatically when they are restarted.

The latency is supposedly only 7 ms on the Mac and 4 ms on Windows with a special ASIO driver (www.usb-audio.com/de/).

Software settings (operating system)

Windows:
Winamp: dynamically detects a connected USB sound card and uses it immediately when you press "Play".
Other players and browsers must be restarted after plugging in the sound card.

Linux:
CMMS 1.2. (Linux Player): Select USB Audio Device under the Settings of the OSS driver > Configuration > Audio Device

Software settings to play 5.1 cinema sound via Toslink output

Windows:
You should have installed at least DirectX 9c. Otherwise you may get problems with the detection of video DVDs in the drive, and you get cryptic error messages.

Basically, it's quite simple: the audio stream has to reach the sound card without any changes, namely bit-level accuracy has to be assured. Because of the nested sound architecture of Windows and the undesired intelligence of some software players this can become a tricky task.
Most software video players process the audio stream without asking – depending on what type of coding they feel to recognize. There are options like volume normalization, conversion to stereo, virtual surround sound, conversion to Dolby surround, equalizers and more. All of these options have to be disabled!

In [4], the recommendation is given, to output HQ Audio better with an ASIO driver in Windows, because by this means all hidden signal scaling of the Windows mixer is bypassed.

Preparations

Quick Test
Plug in headphones: when playing a source with digital multichannel sound (DOLBY or DTS) at the analog output a digital noise must appear, while the optically connected amplifier decodes the signal as desired.

Source (test signals) Winamp MPC1) WMP 9 VLC 0.862)
WAV svradio DD640 X X X -
WAV svradio DTS X X X -
AC3 lynnemusic - X - -
WMA lyynemusik - - - -
 
MPG, AVI – DTS 5.1 X
MPG, AVI – DD 5.1 (ac3) X
DVD DTS 5.1 X1b)
DVD DD 5.1 X1b)

Reproduction of 5.1 audio formats in various software players

1) MPC (starting from v1.1.604 Homecinema) Disable the software decoder by means of:
Play > Filters > AC3-AudioDecoder: select [×] SPDIF as output for both formats

1b) MPC (up to version 6.4.9.1) played multichannel audio after disabling the built-in matrix mixer using:
Play > Filters > Matrix Mixer: disable and
Options > Internal Filters > Audio Switcher: off (disabled) (otherwise the AC3 stream is decoded and re-packaged).
DVD playback is not possible with this version.

2)Unfortunately VLC decodes surround formats automatically, which must strictly be avoided. So the digital DOLBY data stream does not reach the sound card's output

PowerDVD 5.0 DVD: freezes when SPDIF is selected (USB sound card has been connected before Windows boot)
PowerDVD 7.0 DVD: does not recognize the SPDIF output and therefore does not offer it.

Further notes are welcome.

Note:
If multi-channel sound is output via SPDIF the analog outputs carry digital noise which can ruin the tweeter speakers in your boxes!

If your multimedia digital amplifier input signals and very quickly recognizes the kind of audio input signal and when it is ensured, that digital input is preferred, you can connect both types of signal (analog and digital) and assign them to the same input. Otherwise, I recommend for safety reasons that you connect the sound card only via SPDIF.

Test signals

Sources:
http://pessoal.onda.com.br/rjamorim/stuff/test.ac3.zip: ac3 test file, can be played with VLC and MPC

http://www.lynnemusic.com/surround.html: 5.1 music samples, AC3 and WMA

The Swedish Broadcasting Sweriges Radio offers some multi channel recording downloads. These include test signals and recorded music. The bit rate of the examples is 640 Kb / s (Dolby Digital) and 1.5 Mb / s (DTS ).

File Formats:
You can play the Wave files with any simple audio program such as Winamp. The coded signal results in a digital noise at the analog output, because the DD or DTS bit sequences do not provide meaningful analog data streams. Nevertheless the SPDIF signal is correct.

To play Dolby Digital files, recognizable by the extension .ac3 you need an application, that can handle this data. I was able to play the test sequences with MPC. The settings were the same as for playing video with multichannel audio.

Tuning

With a separate 3.3V voltage regulator for the digital supply voltage (pin 2) the remnants of clock interference can be minimized [1].
The extremely low distortion at the output is nearly the theoretical minimum when driving high load impedances. With a additional headphone driver circuit this value could be provided to low-impedance loads as well. The benefits would be rather academic. I do not know any headphones with have distortion values still below 0.025%.

An example of extreme tuning is the commercial product Corda Move by Meier-Audio, which is also based on the PCM2704 (link below).

Service tips

The card is working since 2007 on multiple PCs.

Mechanical weakness:
The Mini USB connector has extremely short legs, that are suitable only for through-hole PCBs.
Without a plated through printed circuit board some times a pin may lose the solder joint, when the USB plug is often put. Resoldering helps.

Addendum 2010:
All connectors should be fixed two drops of thermal adhesive. Otherwise individual solder joints may broke by the mechanical stress. This applies to the USB port, the mini-jack and the optical transducer.

Similar projects

PupDAC
Combines the never version PCM2707 with a high-class audio DAC PCM1794. THD + Noise: 0.0004%. No audio input, sample rates up tu 48 kHz.
www.hagtech.com/hagusb.html
HagUsb is a similar but commercial project with the PCM2704. There the S / PDIF signal is connected via a coaxial output transformer. Some consider this card to be the ultimate, high-quality audio solution to transmit SPDIF to the PC without jitter.
Corda Move at www.meier-audio.homepage.t-online.de
High-End version of a PCM2704 card with complex compensation networks and separate headphone driver.
www.mellowparenting.demon.co.uk/guzzler/usbdac.html (Link down, see here)
Tiny PCM2902 sound card with SMD components as USB stick. The PCM2902 has an additional audio input.
www.head-fi.org/forums/f6/pcm2702-usb-dac-revision-b-137298/
Larger PCM2702 card with sophisticated voltage regulation and measurements. Very long thread.
www.silverstonetek.de
The external sound card from EB01 Silverstonetek in elegant aluminum case is based on the previous model, each with a PCM2702 and OPA604 as a buffer amplifier.

Links

[1] Diary of the PCM2704 developer Hitoshi Kondoh (part1, part 2 and part 3)

The issue of getting a SPDIF data stream from an asynchronous USB data stream is not a trivial task. You will realize this when reading this blog "The D / A Diaries" written by the developer Hitoshi Kondoh. Some of the descriptions read like a detective story.

[2] www.asio4all.de – Free Asio driver for WDM audio, enables sound reproduction with low latency operation under Windows

[3] ac3filter.net free audio filter by Alexander Vigovsky to play 5.1 DD and DTS sources on Windows systems, Winamp plugin for DD and DTS

[4] HQ-Audio "Hochaufgelöster Musikgenuss am PC", printed article in ct, 15 2009, page. 156-161 (German language)

Replicas

Photos of replicas are on page 2