diyAudio (
-   Digital Line Level (
-   -   XMOS-based Asynchronous USB to I2S interface (

Lorien 12th May 2011 07:07 PM

XMOS-based Asynchronous USB to I2S interface
2 Attachment(s)
Hello everyone,
below there are pictures of my latest version of XMOS based USB to I2S interface. I've been working on it for some time now... drivers are from Thesycon and firmware from XMOS with slight changes to adapt it to my PCB needs. It's 2 channel, 24 bit / 192 khz with some improvements over XMOS' reference design:
* 4 layer, gold plated PCB with 1/2/2/1 oz (or 35/70/70/35 um) copper thickness. There are a lot of vias to minimize the impedance.
* there are two USB inputs available: USB-B connector (mounted on the board) and 5-pin external header for something like this.
* isolated (using GMR isolators) or nonisolated (6GHz microBNC) I2S output signals.
* seven LINEAR voltage regulators are present on the card: every oscillator (and the ICs in the digital audio signal's paths) have its own dedicated LDO (the three chips soldered on the botom side of the board).
* Heavy decoupling all over the places, including OsCONs SVP electrolytics.
* USB OR external PSU. There's one green Power LED indicator on the board.
* SPDIF output signal at 1:1 trafo.
* Two LEDs can be wired to L7 and L8 pin header heaving the following functions: "Host Active" and "Audio Stream".

The oscillators are from Fox but I do have 7 pairs of ultra low phase noise NDKs available for assembling. I must admit, NDKs are very hard to aquire due to the long time of delivering (up to three months!)

May 2013 Updates:
The WaveIO's pictures are outdated as I now use oscillators only from japanese manufacturer NDK. I'll upload new pictures soon to reflect the changes.
To update WaveIO's firmware to handle 32 bit @ 384 KHz audio streams, please follow my instructions listed below (valid for Windows OSes).
From the beginning I would like to say that there are two ways to upload the .bin file but only one to revert the changes to defaults.

The easiest upload way would be via "TUSB Audio Control Panel" app:
1. First thing to check is if your WaveIO card does have DFU (Device Firmware Upgrade) implemented in firmware.
All boards following September 2012 should have this feature enabled.
a) Plug in your WaveIO card and make sure that is detected by your computer (drivers are installed).
b) Open "TUSBAudio Control Panel" located in "Luckit" installation folder and click on the "Device 0" text on the left side of main window.
c) If the RevisionID value listed there is greater or equal with 0x0331 (Hex) then you can move on to the next step. If not, then you'll have to
wait to finish the daughter board and I'll make both the hardware and software changes in the same time.
2. Download the file named "WaveIO_32Bit_384Fs.bin" on your computer.
3. To effectively upload the new firmware on your WaveIO you simply have to click on the "Firmware Upgrade" text on the left side, browse
for the file you have downloaded and hit the "Start Firmware Update" button.
4. The process should take up to 10 seconds after that you can easily check it by clicking again the "Device 0" text and see that the value for
"RevisionID" is changed to 0x0333 (Hex). You don't have to unplug your WaveIO board.
5. Done

LEDs: Since WaveIO hardware does not support two additional signals to drive LEDs for 352.8 and 384 KHz sample rates I thought that a
simple approach will be to display these freqs. by driving two LEDs simultaneously so:
* 352.8 fs will enable 88.2 & 176.4 LEDs while
* for 384 fs, 96 & 192 LEDs will be on.
If anyone has a better and simple idea please let me know!

Power: @ USB enumeration, WaveIO will report to be external powered device so it should work okay in both configurations: USB and
external powered. This measure was taken especially to work with iPad, iPhone or other portable/battery-powered devices.

That's it for now! I'll be back soon with the second uploading/revert_to_defaults option.

Kind regards,

Bunpei 14th May 2011 06:31 AM


Originally Posted by Lorien (
The oscillators are from Fox but I do have 7 pairs of ultra low phase noise NDKs available for assembling.

Congratulation to the role-out of your new product!
I think your design considers very well various requirements DIY users would always have.

By the way, have you compared resulting sonic qualities between NDK and FOX oscillators?

Lorien 14th May 2011 03:44 PM

A big "Thank you" Bunpei, mostly for your help related to NDK parts!

I think your design considers very well various requirements DIY users would always have.
Perhaps you are right! Though, I've choosen the parts that fits my requirements and expectations (like LP5900 for oscillators). Even if there is room for improvements I think this board act as expected. For now, I'm working on the decoupling networks, trying hard to minimize the noise on the board. It's not crucial but every DIYer have a paranoia :) = mine is mostly PSU.
Meanwhile, a friend of mine (also an active member on this forum) will make some tests with dedicated HW to this card. I hope he will have enough free time to draw some graphics for the two versions: with FOX and NDK oscillators. My goal is to use only NDK parts and replace other alternatives but you know how hard is to do this, mainly in small quantities.
I did listen to the NDKs mostly and I kinda like it: in the time spent trying to squeeze the noise out of my board by moding the cap networks.

Kind wishes,

barrows 17th May 2011 11:13 PM

This looks like great work Lorien. A nice compact module. Are you going to support OSX with native USB2 on Mac?
This looks like what many DIYers have been looking for, cannot wait to hear more.
BTW, do you know the approximate current consumption at 5V? I am thinking a LiFePO4 supply for this might be nice.

abraxalito 17th May 2011 11:50 PM

In case Lorien hasn't measured it, XMOS has a helpful guide to estimating power consumption.

Based on that document I'd estimate in the range 150 - 200mA from 5V.

Lorien 18th May 2011 02:05 PM


Are you going to support OSX with native USB2 on Mac?
Thank you barrows! Since this board is entirely based on XMOS / Thesycon work (SW speaking) you can see details directly on XMOS web site: "USB Audio Class 2.0 is natively supported by Apple OS X version 10.6.3 and above. Support for Windows is provided via XMOS partners, Thesycon and Centrance. The drivers are configurable and provide support for WDM/Direct X and ASIO 2.1."
Power consumption: I've made few measurements and this board will need at least 5V / 430 mA @ 24 bit / 192KHz to work properly :p
Though, Fox oscillators are consuming up to 8 times more power than NDKs, there's NO switching Vreg there and speaking off... this board have plenty of them. I must confess that the "no compromise" ideology regarding PSUs must come to an end soon otherwise ordinary USB ports will start to complain about power requirements.
I like your LiFePO4 PSU suggestion and I'll definitely implement it. My real job has offered me few pleasant surprises like these rechargeable batteries pictured below (used in some sort of hybrid/electric cars - I don't recall manufacturer' name). I've mistakenly short circuit one of it and I saw what they are capable off :warped:
Kind regards,

abraxalito 18th May 2011 02:18 PM


Originally Posted by Lorien (
Power consumption: I've made few measurements and this board will need at least 5V / 430 mA @ 24 bit / 192KHz to work properly :p

Wow! My estimate was a long way adrift. What current do the Fox oscillators take? That 430mA is getting really very close to the limit with USB (500mA).

Lorien 19th May 2011 06:38 AM

There's allways the external PSU option... though for all the tests I've used the USB 5V supply.
According to the specs, Idd for one oscillator is stated up to 35 mA for freq. between 20-50 MHz, please see here. There are two pcs. on that board: 22.5792 MHz and 24.576 MHz. One more reason to switch for NDKs.
BTW I forgot the picture:
An externally hosted image should be here but it no longer works. Please upload images instead of linking to them to prevent this.

abraxalito 19th May 2011 07:07 AM


Originally Posted by Lorien (
BTW I forgot the picture:

Haha is that the ultra-low impedance high-current PSU for your board in the background? ;) Nice pic.

More seriously I'm really surprised that its taking so much current, given what's in that XMOS document. I must have overlooked something major to be more than 6dB adrift in my power consumption estimates. You're using the single core XMOS right ? (128 pin package, as opposed to the dual core which is 124pins ?) 35mA for two oscillators (presumably you disable the one that's not in use) doesn't account for such a difference.

Lorien 19th May 2011 11:57 AM


Haha is that the ultra-low impedance high-current PSU for your board in the background?
Well, most of it... ~3.3V x 2 pcs. will be enough to blow away this card :)
Back to the power consumption, first thing to notice is that XMOS chip on my board is TH5 (500 MHz) variant. In addition, my ampermeter reads on 1.0V core PSU: 231 mA at full load (24/192) - though is not a precise one. Considering the fact that uP is warmer (even if the chip's thermal pad IS soldered on top and the board is a 4 layer one without thermal reliefs on vias underneath the chip)... I can only assume that it's working at its full capacity.
Though, I'll switch it with 400 Mhz variant or... better, I'll assembly another board around this chip.

Be back soon,

All times are GMT. The time now is 09:35 PM.

Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 17.65%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Copyright ©1999-2020 diyAudio