XMOS-based Asynchronous USB to I2S interface

I'm going to be using a TP "Teleporter" to send the I2S via CAT6 cabling and something I read from the TP people indicated that you don't need to connect the ground, just use DATA, LRCK and BCLK. I'm a novice at DIY Hi-Fi and I find this I2S connection matter very confusing! All help gratefully received!

When using the Teleporter, a ground connection between the WaveIO and DAC is not required.
 
...the signal in a USB lead is the difference between D+ and D- referred to ground. No ground? No signal. . . . My "idea" was to try cutting the ground line as well. . . . When I get my WaveIO working well (it's sounding pretty damn good even now), I'll try again.

Thanks for reporting your experimental results. I am very interested in the results of eliminating that ground while using WaveIO. Fortunately USB supports error detection and retry on failure so if ground actually is required rather than D+ and D- being able to work while floating, errors will be posted.

Detecting those errors is a snap with thesycon drivers. Simply launch tusbspy.exe, the thesycon utility, while listening to music thru WaveIO. Then sever the USB ground connection to pc. If the music keeps playing I suspect a broad smile will cross your face given the success of your idea. In the error case, you can find and record the code from among those kept by tusbspy.
 
Member
Joined 2004
Paid Member
USB grounding

Grounding differential signals seems to be less well understood here. A good differential driver/receiver will overcome a lot of connection problems (even a missing connection sometimes) but is not magic. Chip differential receivers normally are DC coupled and expect a DC return path to ground on the external circuitry. LVDS (similar to HDMI like the "teleporter") actually expects to have some significant current through the return path. Its based on ECL which is a current mode communications. If the signal is well balanced there won't be much AC on the return and some impedance in the return path won't mess it up. However exceed the common mode DC range of the input or the output and you will get errors and possibly fry the chips.

USB is a special case because the common mode voltage actually caries information for the USB interface and it can get very confused with no ground.

Finally two self powered boxes with connections to the AC line will have a potential between them, it cannot be prevented, just minimized. There will be capacitance through the power supply/transformer/etc. to the AC line. That potential will translate into a current across any connection between the boxes. It may be small but its there. It will probably increase with frequency. Power line noise will be the worst problem. Add a connection between the boxes like USB and the currents will add to the less than perfect balance that is unavoidable on the differential signalling. Even optoisolators will have a small capacitance from in to out that can pass noise.

I think its risky to depend on the external (unplanned or uncontrolled) ground to make the important ground reference connections on these high speed differential links. Also any noise current that would have gone mostly down the ground link will get pushed through all the other ground connections and potentially get mixed with audio, not to mention transmitted everywhere since the loop area will be much larger.
 
Alas, that is not simple, nor is it difficult. You must have source and start the kernel debugger with a breakpoint set in the error code that would be activated when a data corruption error is encountered. I would expect these to occur infrequently with good hardware. Perhaps someone has already instrumented a linux kernel and can simply set the break point, sever the ground, and report the error (if any) that results.

Note for the record that I expect no error to result. Thus the simpler approach would be to forego the instrumentation initially and simply test whether the music continues without interruption. The point of differential signaling is to increase the robustness of information transmission relative to single ended transfer where ground is required. i2s is an example of single ended.
 
When using the Teleporter, a ground connection between the WaveIO and DAC is not required.



Hi Brian
I’ve been using the WAVEIO board with Teleporters /Buffalo3 for a few weeks now and they are working very well.:wave2:

Correct me if I’m wrong but the I2S ground connection is still required between WAVEIO and Teleporter transmitter.

Likewise the Teleporter receiver still needs to have its ground plain connected to the DAC.

but as you say no ground connection between WAVEIO and DAC.

hope that makes sense

That’s how I have mine and it’s working well.

Take care


great thread guys really interesting:)
 
Also, for the record, I do not advocate running continually without that ground. As 1audio points out things may go astray, especially in stormy weather. :D

My point is that you can perform a listening test with and without that ground connected. I would submit that if no data errors occur but you 'hear' a difference, only biological upgrades will help.
 
Last edited:
I think its risky to depend on the external (unplanned or uncontrolled) ground to make the important ground reference connections on these high speed differential links.

I don't see where anyone is proposing the use of external grounds in the way you suggest. I'm certainly not.

What did take me aback was, as I noted, that a manufacturer of "high end" USB cables, apparently through ignorance, should employ such a haphazard, not to say risky, approach.
 
Grounding

Since I saw your discussion about grounding I thought it would be a good idea to cut USB +5v, USB GND and USB Shield wires from one of my USB cable and try to see if WaveIO will work this way.
Well, there are pro and cons about it: the good news is that it works... without any smoke from the card or my laptop :) (which is a good thing for me). The bad news is that it won't enumerate if there is no GND connection with my source. So if I want to plug in WaveIO without USB GND wire then the source will not "see" it. If I keep the ground connection as long as the enumeration will end successfully and broke it after then WaveIO will sing like a bird without any problems.
I want to say though, that this test was made in few minutes thus I cannot guarantee it will keep the results for long therm use.
Cheers,
L

Edit: even so, I do not intend to use USB without GND wire, reasons: last 1audio post.
 
Last edited:
WRT to rsdio's earlier comment, there is no point whatsoever in doing the tweak to the likes of a disk drive as the data transfers in that case are not real time. So long as the thing works, it works fine.
I'm not sure that you make a clear distinction. Audio transfers are not precisely real time, because the DAC is in total control of the timing. They're really near-real-time.

On the one hand, disk drives use Bulk mode, which will retransmit any piece of data that is not acknowledged due to transmission errors. Audio devices use Isochronous mode, which can detect transmission errors, but there is no time to retransmit. You are correct to point out that there is a difference between a disk drive and an audio device, but in practical terms there really are no transmission errors on modern USB hardware. When you take into consideration the fact that both are basically 100% reliable, there's not much difference. In other words, your statement "So long as the thing works, it works fine" can be applied equally to disk and audio devices.

Some DIY audio interfaces even go so far as to use Bulk mode, which almost proves that it's valid to compare USB disk drives and USB audio devices. I do not condone the use of Bulk mode for audio, because it does not allow the OS to properly allocate available bandwidth to "real time" needs or schedule packets correctly, but there does seem to be very little difference between devices.
 
Noise on a USB cable's Ground line tends to disrupt the timing of data. Why that matters with conventional USB audio is fairly clear - the data are read in real time. Why it matters with an asynch device such as the WaveIO is much less clear but it does nevertheless seem to be an issue.
I agree with these statements in general, but I want to point out that there are USB Audio devices other than WaveIO which operate with asynch timing. As a class, the (near real time) asynch USB Audio devices are going to have a much better chance of producing good audio quality compared to real time USB Audio devices that use one of the other optional timing mechanisms (i.e. not asynch).
 
. . . I thought it would be a good idea to cut USB +5v, USB GND and USB Shield wires from one of my USB cable and try to see if WaveIO will work this way.

To clarify, I do NOT, repeat NOT (as in "don't", as in "refrain from", as in, well, take your choice . . .), advocate trying, let alone using, a USB connection without a ground connection between the computer (aka the host) and the device or without a 5-volt signal at the B-connector end.

What I am saying is that:

1. provided there is a robust ground connection elsewhere (definitely not one relying on haphazard links through safety earth) between the host and the device, then - but only then - the USB cable does not absolutely have to have a ground line for the device to work. The envisaged scenario would most likely be realised by hard-wiring the Gnd of the PC's PSU to the Gnd of the device's PSU. The Gnd is (emphatically) NOT omitted, it is re-routed;

2. the 5-volt feed to the appropriate pin on the B-connector at the device end of the cable can be obtained from a separate PSU rather than from the host's USB port. This is a commonplace tweak that is commercially available and (hopefully) uncontroversial;

3. the screen that is quite properly part of the USB cable spec can be omitted in some situations (subject to test) where an effort has been made (as you'd expect in any half-decent PC audio setup) to minimise RF emissions from the host;

4. when I have tried such reconfiguration, I have observed a worthwhile improvement in sound quality when using a conventional (i.e. adaptive) USB connection to a DAC. As I stressed, I have not tried it with an asynch device such as the WaveIO and so have no idea if it would offer any improvement in SQ. It might - but it might well not.

Apologies if I didn't make this clear.
 
G'day Ryelands, 1audio and others who've added to this grounding discussion,

Thankyou muchly for taking the time to explain these things, have learnt much about USB which I had no idea about, just goes to show there's more to baking bread than flour and water!

Much appreciated!

Drew.
 
My Wave IO board arrived today - many thanks Lucian, and well done for packing it so well. Looks like someone played football with the parcel...
It's a truly lovely-looking board, almost a shame to put it away in an enclosure.

I'm working out how to wire it to my dual-mono Buffalo II but I'm uncertain how to do this. Is it essential to disable the on-board clocks on the Buffalo as per roll's post above?

I'm going to be using a TP "Teleporter" to send the I2S via CAT6 cabling and something I read from the TP people indicated that you don't need to connect the ground, just use DATA, LRCK and BCLK. I'm a novice at DIY Hi-Fi and I find this I2S connection matter very confusing! All help gratefully received!

I'm working out how to wire it to my dual-mono Buffalo II but I'm uncertain how to do this. Is it essential to disable the on-board clocks on the Buffalo as per roll's post above?
No need to disable the on-board clocks on the buffaloII., that procedure is only necessary if one wants to use the master clocks of the WaveI/O card.
 
Last edited:
Thanks Lorien

I purchase this board to upgrade a Bryston BDA-1 DAC .The dac is input transformer coupled (similar or identical to scientific conversion ones)so Lorien left the output transformer unmounted. I' ve been lucky as the board is sounding outstanding. I've made in two separate boxes.one for the power supply (.AMB labs sigma 11) feeding the board threw an umbilical cord and going to the dac at a Bnc input. My latop has a linear power supply .( the red spikes of thesycon test ,disappear with the power supply)
The first thing to notice is the silence .Ripped songs sound very very close and the noise floor is similar as played with two goods transports (meridian ,linn ).One month of listening ,unplugging the bnc to cut completely the influence of pc and i think it's not necessary to cut the ground of the usb.
I' ve made an improvement making a usb cable .3 conductors + shield a genuine balanced cable designed to leave the shield floating at receiver end.
It's sounding much better than a wireworld starlight of the same length.
 
gnd loop problem

Maybe someone can give me a help with a ground loop problem I encountered with WaveIO isolated I2S.
I attached a couple of schemes to understand the situation better.
Power supply grounds are not normally shared at ps level.

With non-isolated I2S everything is fine, free of hum.

With isolated I2S I get a quite annoying at medium-high volume hum noise from both channels.

I get rid of hum if:
- detach usb cable
- detach notebook AC plug (power from battery)
- share PS1 gnd with each other PS ground

PS2, PS3 and PS4 grounds are tied at dac level, so if I share PS1 gnd (that should be shared with usb gnd) with other PS grounds I lose the gnd isolation between usb and I2S.

What do you think?
 

Attachments

  • WaveIO power supply scheme - NON-ISOLATED_I2S.jpg
    WaveIO power supply scheme - NON-ISOLATED_I2S.jpg
    21.5 KB · Views: 574
  • WaveIO power supply scheme - ISOLATED_I2S.jpg
    WaveIO power supply scheme - ISOLATED_I2S.jpg
    22.6 KB · Views: 573
I'm working out how to wire it to my dual-mono Buffalo II but I'm uncertain how to do this. Is it essential to disable the on-board clocks on the Buffalo as per roll's post above?
No need to disable the on-board clocks on the buffaloII., that procedure is only necessary if one wants to use the master clocks of the WaveI/O card.

Many thanks for your helpful reply Reo.