XMOS-based Asynchronous USB to I2S interface

You are very right Suffolk, I modified the Placid just a bit in order to produce more juice and less pulp (in twispear-terminology :D ) ... seriously, I re-touched it to provide 750 miliamps and that is more thank enough to power de WaveIO in my humble opinion.

cheers
Pepe
 
perhaps it's related to USB descriptors that WaveIO is reporting due enumeration process. Even if I didn't dig too much into XMOS firmware, I remember seeing somewhere that there was one value (or more?) that is/are telling to host the amount of current needed for the device plugged into USB port to function properly. Being a hungry one, WaveIO reports 500mA which I suppose it's too much for iPad (a battery powered device) to give it a shot.
Anyway, thank you for telling me! I'll look into the firmware and on next revision I'll set descriptos accordingly!

Edit: I know that it's too early (given the fact that you received your WaveIO recently) but if I'll find those values and make the changes accordingly, you could send card back to rewrite the firmware hoping that you can use WaveIO with iPad too. Anyway, if those values will be changed, there's no going back to power WaveIO through USB Bus because less than 500mA is a no go for it :)
The USB Specifications say that a device that can work with both self-power and bus-power should change descriptors accordingly. Such a device needs an input pin on the processor that can detect the source of power. For example, if external power is detected, the Descriptors should indicate self-power, but if external power is missing then the Descriptors should indicate bus-power.

You should also measure the actual current used under bus power and report that instead of just using the maximum of 500 mA, although I suppose that could be difficult to measure if some people are using bus power for the DAC, since that would be unknown because it is different for every chip.

There is no reason to say "there's no going back," because this sort of problem has been solved with many USB Devices.
 
Placid HD-WaveIO

You are very right Suffolk, I modified the Placid just a bit in order to produce more juice and less pulp (in twispear-terminology :D ) ... seriously, I re-touched it to provide 750 miliamps and that is more thank enough to power de WaveIO in my humble opinion.

cheers
Pepe

Hi Pepe,

Could you share your changes to the standard Placid HD to get the 750mA?
Thanks in advance,
Ed
 
@rsdio: I was thinking for future revisions to reserve a pin to change USB descriptors accordingly but in lindamar's case I do want to preserve its WaveIO PCB in actual form (without cutting traces/adding wires or changing the layout in any other possible way) since I hate to do this kind of jobs. What I said before was meant only in lindamar's case (knowing that he is already using external PSU). Anyway, thank you for your help... now I know that what I was thinking off before is confirmed!
Kind regards,
L
 
@rsdio: I was thinking for future revisions to reserve a pin to change USB descriptors accordingly but in lindamar's case I do want to preserve its WaveIO PCB in actual form (without cutting traces/adding wires or changing the layout in any other possible way) since I hate to do this kind of jobs. What I said before was meant only in lindamar's case (knowing that he is already using external PSU). Anyway, thank you for your help... now I know that what I was thinking off before is confirmed!
Ah, yes, existing boards might be difficult to fix.

As for future revisions, you have at least three options:

1) Detect USB power, using diodes to protect against external power reaching the I/O pin. Then, if USB power is missing, but the processor is running, then there must be external power, so the Descriptor should indicate self power.

2) Detect External power, again using diodes to protect again USB power reaching that I/O pin. If external power is missing, then report Descriptors showing bus power with the appropriate current.

3) Just have a simple I/O pin with a logic input, set by something as simple as jumpers. This allows for user error, but it would be fairly easy to have a pair of jumpers to select power source and Descriptor variation.

Note that many of the Application Notes for USB processors have example circuits for the self-power versus bus-power detection.
 
Hi Lucian,

Board arrived last week, it is a fantastic piece of engineering and works very well. Thanks for your work on an excellent value product.


Hi,
Wave I0 + Alix 3d2 + voyage mpd + 24/192 files
Is it a good idea?? Work well?

Yes it does, sounding excellent with my Buffalo 2 DAC at 24/192 Khz.

Just waiting for the FIFO GB 2 to finish my setup now!

Best Regards,

James.
 

Attachments

  • Wave IO.JPG
    Wave IO.JPG
    114.8 KB · Views: 605
Today i tried hooking the WaveIO to my old 1794 dac. The dac had an AD1896 asrc in front so initially the WaveIO I2S output was connected to the asrc. Worked fine. Removed the 1896 and connected the I2S signal straight to the 1794 and this time also used the WaveIO master clock output. All was fine @24.576 MHz but at sample rates based on 22.5792 MHz there was only noise and distortion. The 1794 is supposed to autodetect the master clock frequency but something isn't working. Am i doing something wrong? Even went as far as checking if the WaveIO is indeed changing the MCLK frequency :). It is.
Any ideas?
 
A little help please..

Hi Lucian, please disregard my PM...

I had totally forgotten to power the isolator with a 3.3V source for the I2S output...

Now I have another problem and maybe someone can shed some light...

I'm getting sound but with extremely high scratching noise when and only when music is playing. At first I thought the USB port might not have been supplying enough current so I plugged in a regulator. Checked the voltage and it was not dropping. 5.08V steady... 3.3V on isolator is also fed by another reg which has its ground connected to the isolated ground and the +V pin.

Could the USB cable length be an issue? If yes, What is the maximum length?

I'm also using JRiver 17 with WASAPI, WASAPI event style and ASIO and they all do the same thing.

Anything you can suggest I test?

Thanks
Do
 
I had problems with a 5m usb cable, then switched to a 2m one and it worked fine.

A little help please..

Hi Lucian, please disregard my PM...

I had totally forgotten to power the isolator with a 3.3V source for the I2S output...

Now I have another problem and maybe someone can shed some light...

I'm getting sound but with extremely high scratching noise when and only when music is playing. At first I thought the USB port might not have been supplying enough current so I plugged in a regulator. Checked the voltage and it was not dropping. 5.08V steady... 3.3V on isolator is also fed by another reg which has its ground connected to the isolated ground and the +V pin.

Could the USB cable length be an issue? If yes, What is the maximum length?

I'm also using JRiver 17 with WASAPI, WASAPI event style and ASIO and they all do the same thing.

Anything you can suggest I test?

Thanks
Do
 
Hi Pepe,

Could you share your changes to the standard Placid HD to get the 750mA?
Thanks in advance,
Ed

Ed,

The placid I have is the 2.0 version, no the HD. I just replaced the VR2 pot with a bigger value one (if I recall correctly) and the unit is able to provide 750miliamps without any problem.

There is a thread in the Twistedpear support forum talking about the HD and if my memory serves me well, Russ said that you won´t have any problem on getting 750 miliamps with the HD as long as you provide the right trafo and maybe doubling the primaries. Make sure of providing bigger heat sinks though.

best regards
Pepe
 
@ pinnocchio & analog_sa:
Like ENSen said, try to use a short USB cable! There could also be a problem if you use isolated I2S port and vreg used to power it is at a considerable distance from the NVE chip. I do not get into technical details of what "considerable distance" might be I simply suggest to place that 3.3V reg as close to the V+ and "Isol.GND" pins as possible. In addition, you could add few bypassing caps as well, it's obviously that C6 cap is simply NOT enough...

@ analog_sa: I do not contest that 22.5792 MHz oscillator could be defective... still, it's hardly for me to believe. My testing procedures implies using a PCM1794-based DAC board which uses Isolated I2S outputs and an oscilloscope. Tests are run by playing the same song (at each sample rate from 44.1 to 192 kHz) and while I listen the music, I check the signals with my scope. ALL the I2S signals. In parallel, my scope shows up the peak-to-peak voltages and freq of I2S periodic signals (including I2S Master Clock Signal which depends on incoming sample rate: 22.5792 MHz or 24.576MHz).
If all is okay then I leave the board playing a song for over two hours, continuously, searching for anything that is not "music".
I would suggest you to try and move closer your external 3.3V PSU used to power up the isolator (if you're using Isolated I2S output) If there are still problems with your card then please send it back to see what's wrong with it. Just let me know and I'll send my addres in a PM.

Kind regards,
L
 
Last edited:
@ analog_sa: I do not contest that 22.5792 MHz oscillator could be defective... still, it's hardly for me to believe.

And you are most likely correct. For some reason getting this to work with the 9018 took five minutes and i have already spent a day messing with an old 1794 board... must be cursed. First it was the 5cm extension between the usb header and panel mounted usb connector. Learnt the hard way that those 5cm better be screened.

Clock switching now seems to be working. There is an oscillator on the 1794 board @24.576MHz. Its output wasn't connected any more but now i've cut power to it and all seems fine. Not sure if some such interference is at all possible, or it was something random. Will redo carefully all wiring and especially the MCLK.

On the plus side, sound with the 1794 is very good indeed and considerably better than when the asrc was in use.

Thanks for the fast reply and sorry for the disturbance.
 
Interestingly, i haven't seen much discussion here about the driver settings. On my PC there is a very pronounced difference in sound when driver is set for minimum latency. Unfortunately wireless then has to be switched off but the sound gets remarkably better, nearly approaching that of Exa. I guess a fully optimised PC source will be even better.
 
Hi Pepe,
Thanks for your reply. I myself have a HD version. No problem to get as high as about 600! Did not try higher though! The only problem is the heat than. At lower res. the WaveIO takes a lot less current. Three to four hundred. That includes a rather high shunting. So bigger heatsinks should be the right solution indeed, in my case as well,
Ed
 
Last edited:
Hi,

Someone can give me the reference of the femelle connector to plug an usb cable to the 1x5 male header on thee board please ? I search on radiospare but I have difficulty to search for this specific connector, what is the name ? Or better, if someone has a ref for the usb cable withe this connector (I found someting in computer shop but it is 40cm, a bit long for my dac).

Thanks.
 
Interestingly, i haven't seen much discussion here about the driver settings. On my PC there is a very pronounced difference in sound when driver is set for minimum latency. Unfortunately wireless then has to be switched off but the sound gets remarkably better, nearly approaching that of Exa. I guess a fully optimised PC source will be even better.

Yep. That's a pity. Even though XMOS is one of the newest designs it doesn't manage to suppress PC induced timing variations. (noise should be covered by the Wave-IO isolator - and signals are locked !?!?)

EXA with its proprietary driver might have those issues a little better under control.

I'm wondering if Ian's reclocker hooked up to the WAVE-IO, would make "the difference". Anybody tried that???

The Tenor chip + DSP reclocker of my Audio-GD DI makes a difference.

The ultimate goal should be to achieve the same sound with whatever PC setup as long as signal is locked and no XRUNS occur.

I'm still looking for such a design. Perhaps Wave-IO V2 gets a bit closer.
 
I have the Wave now and am in GBII, so will find out soon enough!
I am running Linux which wlowes who was running cmp2 is now running and he says the Linux is a step up in sq.
Looking to isolate the source as well so they reduce/remove relevance.

Will keep in touch soundcheck and advise findings.
 
I have the Wave now and am in GBII, so will find out soon enough!
I am running Linux which wlowes who was running cmp2 is now running and he says the Linux is a step up in sq.
Looking to isolate the source as well so they reduce/remove relevance.

Will keep in touch soundcheck and advise findings.

Hi.

I opened a thread over here in 2007 called "Linux Audio the way to go". I always claimed that my setups sounded better then Cics Cplay/CMP2
setups. Cics was not the one who has been starting the whole run btw.
It told him 20 times that he'd bet on the wrong system.

However.

When it comes to PC transports, the SB Touch is a Linux system with real time kernel asf. IMO better then a CMP2 from a HW perspective.
By using the EDO plugin you can run nicely USB DACs up 192khz with it.
Try to get an "audiophile" PC up'n running at 250$. No way.

However. After all those years there's not much progress in the audio interface area. I'm not aware of any commercial device which wouldn't
respond to transport related optimizations.That's pretty frustrating.

What we've seen so far is that tweaking the transport will never end.

Unless somebody builds an audio interface that does the job right.

Cheers