Open-source USB interface: Audio Widget

Announcement: Audio Widget project

The Audio Widget project is open-source code and schematics for
USB based digital audio. It has functional firmware and software. And
it sounds good!

Cool? You bet! Here you can get started with USB audio without
worrying too much about the USB part of things.

Or you can contribute to a great open-source coding project. The
most important contribution we could need right now is coders for
USB Audio Class 2 drivers on Windows. But other efforts are needed
too. See below.

The code is written in C for the Atmel AT32UC3A3256 32-bit MCU. It
supports USB Audio Class 1.0 and 2.0 (UAC2). On Windows / UAC1 it
works with 24/44.1 and 24/48 with sample skip/insert. Asynchronous
USB is in progress, and we could use your help.

On Linux (>2.6.37) and OS X, using asynchronous USB, it also
supports 24/88.2, 24/96, 24/176.4 and 24/192. The open-source
firmware is in a git repository. It can be selectively compiled to run
on the three different boards. The firmware includes several UI and
display options.

There are three hardware options. The hardware is in a beta state. It
plays music very well, but there is still tweak potential.


1) A stand-alone USB-DAC with stereo audio playback functions only.
This board uses the ES9022 DAC chip. Contact
george.boudreau@YoyodyneConsulting.ca for info on how to obtain
one. More information on the this and other audio designs visit
Yoyodyne Consulting/Audio Hardware

2) USB-I2S module + Analog Board. The module has all the pinouts you
need for digital audio, GPIO, I2C, SPI, LCD display and UART debug.
The module uses 2.0mm pitch pin rows. The Analog Board uses the
module to do stereo playback with an ES9022 DAC and low-noise
VBUS-LDO based power. AB-1 is a straightforward design to begin with,
and if you're into analog tweaking we challenge you to make your own
versions! Schematics and BOM are on
Downloads - sdr-widget - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting.
Go to Q N K T C USB-I2S Module and Analog Board 1 for more information. Contact
borge.strand@gmail.com to obtain a kit.

3) SDR-Widget Beta 2.0. This is the original fork of the project,
open-source HAM radio. The hardware supports both playback and
record. Contact george.boudreau@YoyodyneConsultingl.com for info
on how to obtain one. Visit
Yoyodyne Consulting/SDR-Widget
for more information of pricing and availability.

For more information, go to sdr-widget - Audio and Control Interface for Amateur Radio SDR and Audiophile USB-DAC - Google Project Hosting
and
https://groups.google.com/group/audio-widget?hl=en
This announcement is cross-posted. Please join the mailing lists of
both SDR-Widget and Audio-Widget to continue the discussion there.

SDR-Widget is the original branch, where most of the firmware
discussions take place.

Feel like contributing? We'd always like to see more hands. There's
quite a few tasks planned:

- Firmware for Asynchronous UAC1 / Windows for 44.1 and 48ksps.

- Analog tweaks. Ideas are welcome for PSU, DAC, IVC, preamp etc.
Feel free to make suggestions, or even better, your own Analog
Board for the USB-I2S module.

- Windows open-source drivers for USB Audio Class 2.0. This
protocol is supported in Linux and OS X kernels, but not yet
in Windows.

- Adding more IO control to the firmware


Cheers,
Børge
 
Member
Joined 2004
Paid Member
I hope you can keep the audience over here updated with your project. At present there are very few ways to get a USB audio class 2 interface and none for the amateur. What are the licensing terms? Could an enterprising mfr. build boards to offer to the DIY market?
 
I hope you can keep the audience over here updated with your project. At present there are very few ways to get a USB audio class 2 interface and none for the amateur. What are the licensing terms? Could an enterprising mfr. build boards to offer to the DIY market?

The project is GPL, and therefore anyone can produce boards assuming that they release the 'source code'

Honestly, I am not sure how this works with schematics and layouts.
Perhaps someone can elaborate?
 
The project is GPL, and therefore anyone can produce boards assuming that they release the 'source code'

Honestly, I am not sure how this works with schematics and layouts.
Perhaps someone can elaborate?
Hi,

Schematics and firmware source links can be found in the original announcement. There are 2 style of boards available. Pick the one you like and contact the author.

GPL does not deal with hardware, only software. However the group considers the schematics to be open source and you are free to take a hammer and chisel and carve out a board, for personal use, if you wish. Take my word you will create plenty of scrap before you get it right.

I have a few blank boards available for those with decent parts bin and a steady hand for soldering. Beware: there are 0603 size parts on the board and a 144pin LQFP processor. I am old enough to remember mono turntables with change for a dollar on the tone arm and I was able to assemble my board :)

Regards,
George Boudreau
Yoyodyne Consulting
 
Hi Guys,

George and I are the project's hardware designers. George has made available a stand-alone, unassembled DAC board.

Based on an earlier design (SDR-Widget) by George I have made a USB-I2S module with audio and debug IO. The module mates with an Analog Board. You're encouraged to make an AB of your own design. Module and AB-1 are assembled and audio-tested. See: Q N K T C USB-I2S Module and Analog Board 1

To buy kits, please send a message to George or myself depending on which version you need. The same goes if you're interested in licensing the layout.

Cheers,
Børge

Hi,

Schematics and firmware source links can be found in the original announcement. There are 2 style of boards available. Pick the one you like and contact the author.

GPL does not deal with hardware, only software. However the group considers the schematics to be open source and you are free to take a hammer and chisel and carve out a board, for personal use, if you wish. Take my word you will create plenty of scrap before you get it right.

I have a few blank boards available for those with decent parts bin and a steady hand for soldering. Beware: there are 0603 size parts on the board and a 144pin LQFP processor. I am old enough to remember mono turntables with change for a dollar on the tone arm and I was able to assemble my board :)

Regards,
George Boudreau
Yoyodyne Consulting
 
Last edited:
Member
Joined 2004
Paid Member
Thanks for the details. I have been following the Google Group stuff but I thought this forum needed a better look into the device.

Looking at the other forum I'm a little confused about part of the specs so a few answers here will help.
1) Will it will automatically select the correct sample rate when selected from the source for the 6 standard sample rates with two oscillators (22.5792 MHz and 24.576 MHz)?
2) Does the same firmware work in both OSX and Linux? Can UAC 1 and UAC 2 support work in a single firmware?

I'll contact directly about commercial implementations.
 
Thanks for the details. I have been following the Google Group stuff but I thought this forum needed a better look into the device.

Looking at the other forum I'm a little confused about part of the specs so a few answers here will help.
1) Will it will automatically select the correct sample rate when selected from the source for the 6 standard sample rates with two oscillators (22.5792 MHz and 24.576 MHz)?
2) Does the same firmware work in both OSX and Linux? Can UAC 1 and UAC 2 support work in a single firmware?

I'll contact directly about commercial implementations.
Hi Demian,

The unified firmware supports both UAC1 + UAC2 switchable via an external WidgetControl GUI tool. The firmware works with Linux 2.6.38 and Mac OSX. Auto sampling rate switching with compatible software eg Music Player Daemon.

We are working on: async out with rate feedback under Windows, UAC2 under Windows will require a driver.. Aany bored Windows driver developers looking for an open-source challenge?

The unified firmware supports both DAC boards (and future boards) selectable with GUI WidgetControl tool.

Regards,
George Boudreau
 
Hi Demian,

1) Yes. But you should rather ask in the sdr-widget mailing list. The two oscillators are chosen by means of a mux (see schematic at http://www.qnktc.com/mod_ab1/panel_UIMRC9_AB1RC6_Doc.zip)

2) UAC1 should work across platforms. It is not yet asynchronous (work in progress, help wanted), and UAC1 won't hit 88.2 or 96ksps due to an endpoint size limitation in the AVR32. The same source code tree supports UAC1 and UAC2, the latter with asynchronous USB and full sample rate range. We're considering different mechanisms for switching. For example a flip-switch which would make the MCU store the wanted class to eeprom, reboot, then enumerate according to eeprom.

Børge
 
Hi

The current boards are just the first kick at the can. We wanted a POC for the UAC2 interface and a bare bones DAC. The two designs/boards exist and work quite well. We have bit perfect audio running at 24bit from 44.1k to 192k. Considering they are both powered for the USB port they are as quiet as church mice.

The next audio board will be based on the 32bit ESS Technology ES9012. This chip has a 132db DNR and will push the Atmel processor (I2S generator) a bit but we are confident of success. Folks are free to grab the firmware and make contributions. Hardware contributions as also welcome.

In the distant future we hope to release an 8 channel ADC/DAC UAC2 unit. Alternate interfaces are possible but the group is currently focusing on native UAC2.

This is an open source project, schematics and firmware are covered under GPL licence. Take what you want but remember where it came from and feed any changes back to the group.

Regards,
George
 
Considering they are both powered for the USB port they are as quiet as church mice.
Oh... that's something nice for portable use, but for Hi-Fi I'd definitely prefer to use external power supplies... and a completely separate one for each different part of the circuit!!!

Is it possible to do that with the current boards?

The next audio board will be based on the 32bit ESS Technology ES9012.
have you considered a stereo-wired ES9018 as done by the "Buffalo II" DAC? according to this post, the 9018 in stereo mode slightly outperforms the 9012.

Alternate interfaces are possible but the group is currently focusing on native UAC2.
given that the Sabre DAC can directly handle s/pdif, it shouldn't be hard to add at least one s/pdif input... :confused: that would add a great deal of flexibility. :cannotbe:

This is an open source project, schematics and firmware are covered under GPL licence. Take what you want but remember where it came from and feed any changes back to the group.
yep, that's really a great thing! :happy1:
 
This is very relevant to my interests. :)

I am looking for a high-quality USB dac supported under linux. Currently I'm using a PCM2707 spdif interface but that only goes up to 16/48.

Musiland monitor and Hiface are only supported on windows.

I am especially interested in the USB > I2S or SPDIF part of this project.

And as a linux guy I am very happy about the open nature of this project.
 
Hi Mace,

We're hoping that the USB-I2S module can stay as-is and that people can design analog boards as they see fit. AB-1 is a good starting point but not a very complex board.

I'm currently sold out of the USB-I2S module + AB-1 combo. If you need a board, please let me know as I'm planning a new batch. The price is $120 + shipping. (EU unregistered mail is $4.)

Cheers,
Børge
 
Hi Mace,

We're hoping that the USB-I2S module can stay as-is and that people can design analog boards as they see fit. AB-1 is a good starting point but not a very complex board.

I'm currently sold out of the USB-I2S module + AB-1 combo. If you need a board, please let me know as I'm planning a new batch. The price is $120 + shipping. (EU unregistered mail is $4.)

Cheers,
Børge

Yeah sounds good, I'll be interested in buying one.

So what do you think the theoretical maximum is for sample rate and bit depth with the interface?