Open-source USB interface: Audio Widget

Member
Joined 2004
Paid Member
The AB1 module does not support volume since it has no volume control device. You can use the software volume in Linux (not really the best) or an analog control on the output.

I have had some really good results with it. There are a few bugs still, mostly around sample rate changes (at least in Linux) and you should use the latest stable Alsa and set the device to UAC2. I made some changes, minor that seem to help a lot. I'll post my experiences if anyone is interested.
 
To change between UAC1 and 2, hold the Prog button until the front LED goes from pink-ish to green, then dark. Then release Prog and hit reset to reboot in the opposite mode.

I like hairpin hacks :) I once hooked a cell-phone to an external antenna with a hairpin, rubber band and aluminium foil.

Børge
 
UAC2-I2S w/PCM5102

Hi all,
The original idea of an open source USB-I2S system was to encourage folks to grab their DAC of choice and turn out a board based on the schematics and software. To this end I will be releasing a short run of kits based on the newly released TI PCM5102.

This PCM5102 supports 32b/384k but the USB-I2S subsystem can only handle 32b/192k. Even with this limitation it shows how easy it is to create a design based on the open source platform.

Visit my site and grab the document archive. I won't be ordering boards and packaging kits until I give the schematic and layout a few more passes. This will be a limited run so if you are interested drop me a line.

FYI: There is also a design/board based on the WM8741 in the final stages. This will have software access/control to the internal registers.


George
http://www.yoyodyneconsulting.ca/page/Audio_Hardware.html
 
The AB1 module does not support volume since it has no volume control device. You can use the software volume in Linux (not really the best) or an analog control on the output.

Ahh, I see. The volume controls for sinks are for actual hardware volume controls. And here I thought they just applied an additional software volume control to each sink. Learns something each day, me thinks.
 
Hi Alex,

could you please touch the audio-widget-nik branch as well? I'm too much of a git newbie to take one specific change in one branch and apply it in another. (How would one do that anyway?)

Børge

Device descriptor changed to "Audio-widget" in the latest firmware:

audio-widget-2011-10-15.elf

You can download this firmware from:

Downloads - sdr-widget - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting


Alex
 
Hi George,

that's cool! It also looks quite easy to take the present AB-1.1 board and replace the DAC.

The PCM5102 looks very much like the ES9023 on the surface. But a major difference is that the TI have documentation and availability. Guess once which of the two chips you can get one of at Digi-Key... It would also be fun to check the audible differences between the two.

If there is interest in it, I'll flip the DAC around and order a couple naked AB-1.2 boards with it. I have sold some separate USB-I2S modules, which means I have assembed AB-1.1s from which to use all the other components.

Børge

Hi all,
The original idea of an open source USB-I2S system was to encourage folks to grab their DAC of choice and turn out a board based on the schematics and software. To this end I will be releasing a short run of kits based on the newly released TI PCM5102.

This PCM5102 supports 32b/384k but the USB-I2S subsystem can only handle 32b/192k. Even with this limitation it shows how easy it is to create a design based on the open source platform.

Visit my site and grab the document archive. I won't be ordering boards and packaging kits until I give the schematic and layout a few more passes. This will be a limited run so if you are interested drop me a line.

FYI: There is also a design/board based on the WM8741 in the final stages. This will have software access/control to the internal registers.


George
http://www.yoyodyneconsulting.ca/page/Audio_Hardware.html
 
Hi,
I came across this thread and it might contain all I want from pc-audio at least for now.

Did I grt it right that the widget contains all that:
  • ADC
  • DAC
  • linking adc and dac to the usb-interface
  • drivers needed to operate the assembly as an sound device aka soundcard with my linux (2.6.38)

If so, I have to get a kit soon!

Rüdiger
 
Hi Ruediger,

AB-1.1 does almost all that. It doesn't have an ADC but you can add one to the board if you want. The SDR-widget project uses the same code tree with bidirectional audio and radio amateur features. George has made hardware with that.

An audio widget with recording is a good idea for the future.

Follow the link in my signature to learn more about AB-1.1 and maybe buy one.

Børge

Hi,
I came across this thread and it might contain all I want from pc-audio at least for now.

Did I grt it right that the widget contains all that:
  • ADC
  • DAC
  • linking adc and dac to the usb-interface
  • drivers needed to operate the assembly as an sound device aka soundcard with my linux (2.6.38)

If so, I have to get a kit soon!

Rüdiger
 
Hi Rudiger,

For best playback performance, the audio-widgets (AB1.2 from Borg, or USB9023 from George) will be the best. It does bit perfect playback at 24bits, 44.1/48/88.2/96/176.4/196 khz.

If you need ADC for recording, you should get the sdr-widget, which has both ADC/DAC. However, it is limited to 48/96/192khz 24bits. The ADC in the sdr-widget, AK5394A, is the best in class. In our tests based on quiescent noise level and dynamic range, the sdr-widget is better than all the commercial sound cards we have tested.

See:

sdr-widget - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting

Alex
 
Thanks, Alex and Børge for your answers.

Would it be possible to mate the ADC-Board of the SDR-W. with the AB1.1?

I don't need all that radio amateur stuff, but would like to have one of the fancy ESS-DACs at hand and a top notch (within financial reason) ADC.

I would build my own PSU and I/V-Stage. Is it possible to have separate PSU's for DAC and clock (and the actual USB-to I2S-Converter?)

Rüdiger
 
Hi Rüdiger,

the AB-1.1 is acutally an analog motherboard which holds the USB-I2S module. The motherboard contains DAC, power and clocks. It is made to easily change decoupling, power source etc. The USB-I2S moduel contains all the digital stuff, and there shouldn't be any need to put a soldering iron to it.

At the moment, the USB-I2S module only mates with AB-1.1 (and the AB-1 prototype). But anyone is free to fit it onto whatever they wish.

Now, to get an ADC you have a couple options:
- Buy hardware from George with an ADC on it
- Buy hardware from me and patch in an ADC
- Buy hardware from me, recycle the USB-I2S module and make your own AB.

Børge
 
Member
Joined 2004
Paid Member
Borge asked me to post my experiences with the AB1.1. This is updated from my post on the Google Groups list.

I have had an AB1.1 with Borge's latest tweaks to enable switching
firmware between UAC1 and UAC2. On Linux using Alsa 1.0.24 it all
works fine with a single specific issue to be addressed. Using Win 7 32
and the modified driver I have the same issue on UAC2.
The issue is the glitch when switching sample rates. Its an audible buzz for maybe 100 mS. The Wavelength Proton does someting similar but more of a loud pop thing, a little better but not a lot. I think a code tweak that would
mute the audio when the sample rate changes, long enough for it to
stabilize and empty the buffers is all that is necessary.

Borge just tweaked the code so the light color will indicate the mode the device is in. I'll try the code later today.

I'm listening to it with a pair of Stax Lambda Pros and its quite impressive!

Here are board tweaks I did that I was happy with:
1) 25 uF cap in C34
2) 470 uF 25V caps in C21 and C31 These Panasonic parts
http://www.mouser.com/ProductDetail/Panasonic/EEU-TP1E471L/?qs=y8NZ%2...
seem to work really well.
3) 6.8 nF polystyrene caps at C251 and C253
4) Ferrite donut on the USB cable.
I'm sure others will have different ideas.
I think we are at the limits of what this DAC chip can do. The measurements are all what the chips datasheet shows. There is a little ground coupled noise that can be improved with some tweaking of the ground plane but its totally inaudible so it may not matter.

I'm quite happy with it otherwise and I'm looking forward to the
future variants of this technology.
 
Hi Rüdiger,


- Buy hardware from me and patch in an ADC


Børge

Yeah, that's what I'll do, if I can sort out how to 'patch in' an ADC.
I have no experience in DIY'ing digital stuff, onyl pure analogist till now, so be patient with me:
- do I simply patch in a wire (well, two...) somewhere on the Is2 module and be done or is there more to it?
- If so, am I to change the firmware (patching ok with me, but programming not)
- could each and any ADC that talks I2S be connected?
- how to ensure proper clocking between ADC and DAC (I will use the assembly in duplex mode -> ADC-> some fancy signal processing -> DAC. (Heck, I even don't know If the clock signal between ADC and DAC should be synchronized or insulated against each other. I guess the latter?))

Rüdiger
 
Hi Rüdiger,

you need to patch both MCLK and the three I2S signals to the ADC. The onboard MCLK is 22.5792 or 24.576MHz for 44.1*2^n and 48*2^n, respectively. It is synchronous with the bit and word clocks of the I2S. Pretty much any ADC could do. But it must be I2S slave and accept sample widths up to 32. It is also easier to patch in a hardware (=pin) configurable ADC than one which requires I2C or SPI for control.

The firmware which runs the AB-1.1 had ADC support but it has been disabled. I don't know how much of a job it is to re-enable it.

Børge
 
Hi Rüdiger

As Borge said it would be possible to connect an ADC to his AB-1 USB module but it is not as simple as including the ADC software module in the compile.

Borge's AB-1 and my own USBxxxx series are a fork of the original SDR-Widget. This device has both an AK5394 ADC and an ES9023 DAC. The firmware was written to handle the quirks of the AK5394 ADC and it would require a rewrite of a few modules to generate generic I2S signals to handle other ADC chips.

NOTE::
The SDR-Widget will only process audio at 48/96/192 sample rates

If you want more information on the SDR-Widget you can download the document archive, which contains schematics, from Yoyodyne Consulting/Audio Hardware

Regards,
George
 
George, I will check it out!

Currently, I don't perceive a lack of quality when upsampling 44.1 to 96kHz in SW, so I guess I could live with 48/96/192

I am a bit reluctant regarding the cpu and it's tiny legs. Did you manage soldering with a tip solder iron? I have a Weller DHCP-anything (or so). The tiniest tip is 0.5mm or 0.8mm if I remember correctly.

Rüdiger