XMOS-based Asynchronous USB to I2S interface

Member
Joined 2008
Paid Member
As you probably know, Windows 10 now includes a native UAC2 driver so it's only a matter of time before Thesycon's driver is rendered obsolete, at least for anyone not needing multichannel or ASIO support.

5. Driver: If you'll acquire your WaveIO then you'll automatically get for free the latest driver release I have for it! Further versions are subject to a fee. This thing is not making me comfortable but I exposed my reasons few posts above.

I'm still a little confused on the driver situation. My wife got me a WaveIO board as a gift back in February, 2016. I've actually not used it until now. I don't think I ever got the driver (or if I did, I've since lost it).

Anyway, fast-forward to today. I'm using Windows 10 and the WaveIO board "just worked". Looks like, as DimDim suggested, it's the Microsoft-provided USB2 driver. ASIO also appears to work via ASIO4ALL v2 and the ASIO output in Foobar2000. I did have to pretty much max out the "Buffer Offset" ASIO4ALL setting to fix some crackling/static.

Is there any advantage to an actual XMOS or Thesycon driver?

Also, if I understand correctly, all this driver complexity goes away under Linux, correct?
 
Hello Matt,
I already emailed you so I hope you have the driver already! As the one tied to your order back in February 2016, I'm sure it was sourced since it's part of my standard procedure. Either way, every time you need the driver just let me know and I'll send it to you again.
Thesycon drivers: I'm fully thrust in their work. In fact, I never had any complains in 7 years of using them. As for Microsoft, my PC forced the 1803 update the other days and I already spent one week to "reverse it" back to 1709 and stay there due to various errors I encounter with 1803. Should I say more? :confused:
Linux: no driver needed!


Kind regards,
L
 
Getting the WaveIO to max out with a DDDAC1543...

Hi all,
Had Lucian's WaveIO board for almost two years, and just got around to fixing the issue of supplying the isolators on output, which I didn't figure at first glance. This was intended to replace the original USB receiver in my DDDAC1543, which turned the corner a while back. It successfully just did.

In any case, skip forward to the issue at stake here - I am trying to make some sense of the possible formats that can be played in this combination. Tried a bunch of different things, from misc. online streams of some varied bitrates, all the way to Tidal in hifi, and even tried some DSD files (which, to my surprise, I seem to be able to play though this combo). Any such renders either 44.1k, or 48k, read via TUSBAudio Control Panel, which was installed by WaveIO's driver.
I also have a Fiio Q1 MKII - which has a weirdly similar driver, btw - and this other guy plays a variety of formats, as expected.

Is it:
- inherent limitations imposed by the DAC (TDA1543)?
- the player? (I can't figure out making Foobar reliably work with the WaveIO)
- obsolete driver (I'm having a bit of a hard time getting a hold of Lucian at the moment, so my driver is a 2016 version).

Thank you all for your help with this.
Radu.

P.S. Nah, I am not sure DSD formats go through this... Just re-checked my players.
 
Last edited:
I am trying to make some sense of the possible formats that can be played in this combination. [SNIP]

P.S. Nah, I am not sure DSD formats go through this... Just re-checked my players.

Maybe I'm being dumb but I'm not clear what your problem is. Have you got your WaveIO driving the TDA1543 DAC with normal PCM data? It's been a while since I used my TDA1543-based DDDAC but AFAIK the chip works with PCM data only.

What seems not to be widely appreciated is that, despite its age, the TDA1543 can handle PCM data rates up to 192 KHz - see the datasheet and ebay adverts for apparently excellent Chinese products that use it.

The oft-quoted 48 KHz limit was down to the limitations of the USB>I2S boards of the time when the 1543 was more widely used. So, if I have you right, the answer is PCM only but up to 192 KHz. Perhaps I should try mine out again . . .

HTH

Dave
 
Maybe I'm being dumb but I'm not clear what your problem is. Have you got your WaveIO driving the TDA1543 DAC with normal PCM data? It's been a while since I used my TDA1543-based DDDAC but AFAIK the chip works with PCM data only.

What seems not to be widely appreciated is that, despite its age, the TDA1543 can handle PCM data rates up to 192 KHz - see the datasheet and ebay adverts for apparently excellent Chinese products that use it.

The oft-quoted 48 KHz limit was down to the limitations of the USB>I2S boards of the time when the 1543 was more widely used. So, if I have you right, the answer is PCM only but up to 192 KHz. Perhaps I should try mine out again . . .

HTH

Dave

Hi Dave,
No, I think you're right on the money here. To exemplify - I am running this moment a FLAC file at 352k/24bits and I see the WaveIO control panel showing the current sample rate at 48kHz?...
I assume the 16 bits limitation of the chip stays in place and will apply to any incoming signal.
 
non isolated i2s and J1 questions

I'd like to try the non-isolated I2S lines. I couldn't find any info on the connection of the earth on the dac side. Do the earth lines need to be connected to the DAC chip (a TDA1543 in my case), or can I leave them unconnected?

J1 chooses between internal and external USB input. Can I put a few wires and a switch on it to bring it to the front panel, or does this degrade sound quality? As an alternative I can use a small relay of course but I rather avoid that hassle.

Thank you, MArco
 
Hello Marco,
'earthing' your DAC is a long story. I would start by omitting it. That doesn't mean that it should be ignored but in my head fewer connections means higher chances to debug the issue when something is not working properly - programmer thinking.
J1 does NOT switch between external or on-board USB. it's only a physical header allowing you to connect your USB extension cable to your WaveIO.

J8 is the one you are looking for! Placing J8 on "EXT" position, your WaveIO will communicate with host through J1 pin header. Keeping J8 jumper on "BRD" position will make WaveIO using the on-board USB connector. This is the default option for your board. Please note that wiring an external USB cable to J1 without moving J8 to "EXT"ernal position will not to too much for you!


Soldering some wires to J1 is the best option since contacts can oxidize over time thus creating USB data transfer troubles.
STILL, please use an ESD protected soldering iron otherwise you could risk damaging the USB data multiplexer chip.
No relays on USB cables please! Do not put relays on USB data lines as you will definitely degrade the signal's integrity (relays, wires and related parasitic caps will not help you)! Moreover, WaveIO does need +5V form the USB cable to correctly pass through enumeration process so it would be better to leave that alone too :)

Kind regards,
L


EDIT: J8 and J12 are two different jumpers addressing two different things: J8 is for choosing USB connection path while J12 is for power options: 5V from external PSU or USB bus. Please address them separately!
 
Last edited:
Hello Marco,

Hello Marco,
'earthing' your DAC is a long story. I would start by omitting it. That doesn't mean that it should be ignored but in my head fewer connections means higher chances to debug the issue when something is not working properly - programmer thinking.

J8 is the one you are looking for! Placing J8 on "EXT" position, your WaveIO will communicate with host through J1 pin header. Keeping J8 jumper on "BRD" position will make WaveIO using the on-board USB connector. This is the default option for your board. Please note that wiring an external USB cable to J1 without moving J8 to "EXT"ernal position will not to too much for you!

Thank you. I'll start with those earth lines not connected.
By the way, does this non-isolated i2s do 3.3V or 5V?

Sorry for the confusion. Yes, I meant j8. Can I add a switch to there and bring that with wires to the front panel, or should I minimize wiring there by utilizing a relay?
 
Non-isolated I2S lines are drive directly by the XMOS processor and cannot go higher than 3.3V under normal operations since XMOS I/O lines are powered form a 3.3V Vreg.
Switch: yes, you can safely add a switch on that J8 pin header since it's a simple selection signal. As long as it's not dangerously close to a heavy current wire (like those coming from a secondary of your DAC's trafo) it should be fine. The pull up on that line is 10K which is reasonable.
For safety reasons I recommend you to use the GND as the same one used by your WaveIO (found on mounting hole H4 or J13 gray power connector).


I hope it helps,
L
 
non-isolated I2S

I am happy to inform you that connecting the non-isolated i2s lines directly to my TDA1543 DAC WITHOUT connecting the earth lines worked right away.

With the same DAC chip in only a slightly different arrangement than using the isolated i2s I hear more refinement and detail.

In this case it might be interesting to know that I feed my waveio from a wandboard mini computer with only the USB data lines connected. Wandboard, waveio and dac earth are all on a star like arrangement in the power supply.
 
@ deduikertjes: Happy to know that! Looking forward for your results related to earthing your DAC.

@ phi112358: Yes! definitely! in fact it is better to have a PSU for each power rail! Maybe some does consider this redundant (including me, sometimes) but this way the influences between stages (USB board and DAC) are kept to minimal. Moreover, is better to have two PSUs that are working "relaxed", one for USB and the other for your DAC than having only one who, perhaps, are working stressed (sourcing bigger current). This way the power dissipation is distributed, maybe temps are not so high, involved parts will have a prolonged life and list can go on...
 
I am happy to inform you that connecting the non-isolated i2s lines directly to my TDA1543 DAC WITHOUT connecting the earth lines worked right away.

That ain't possible.... unless

Wandboard, waveio and dac earth are all on a star like arrangement in the power supply.

....which is a loooong ( mostly dirt and gravel) way for the I2S signal returns to find their way back to XMOS chip....