XMOS-based Asynchronous USB to I2S interface

I usually leave things be but sadly I did this before and others member of this forum, who read latest posts of this thread and see my lack in reply may think the truth is in there.

Firstly I notice the attitude from Altor and I want to thank you for that! That says something about the user behind the nick name!

Regarding the previous post, I may add the following:
  • I'm as much of a "vendor" as my friend Doede Douma is with his DDDAC (and his other boards), as Ian from Canada is with his beautiful made PCBs, Andrea Mori with his clocks and new apps and as many, many other members on this forum. Using the logic listed there, I wonder if all this members are DIY-ers or vendors (or maybe both...). :)
  • A knowledge that is shared is not a private one anymore.
  • Regarding paid drivers, it may become extraordinary to some extent when one's paying for it and give them free of charge to others - some of them are respected members of this forum.

@ felupeunix
The discussion was strictly related to hacking Thesycon drivers. Other informations you provide are redundant and out of context.
Obviously that I don't understand why with all this polemic when you say that you're a Linux user while we are speaking about a Windows driver...
And the last thing: I'm not a Thesycon fan but please, please buy one of their drivers (link here) and then we can speak from your experience.
Thank you!
 
A knowledge that is shared is not a private one anymore.
Sharing information how to extract an archive and how to change USB IDs in an INF file is nothing private, it's a common knowledge. USB IDs are commonly changed for many devices, not only for audio soundcards, and described countless times on internet.

I am absolutely not saying to go ahead and modify Thesycon drivers customized for a different device and ship them with another device publicly. But I doubt it's legally preventable to do so for a personal use. Moreover there is no protection being circumvented (unlike e.g. when breaking Bluray/DVD encryption when ripping movies), no reverse engineering either.

I wonder how the drivers are universal, in other words to what extent they are customized internally for the given paying customer (whether only functionally-unimportant vendor/product strings/trivially-changeable USB IDs, or custom features). Custom features would prevent the driver from being used properly for a different device, even if the USB IDs were modified.

Also - if no DSD is required, let's support moving from ASIO (with many useless limitations) to WASAPI Exclusive, for which the stock MS UAC2 driver (also programmed by Thesycon, for MS) is perfectly OK.
 
Last edited:
Hi Everyone,

I am trying to use a waveIO board to replace a dead Twisted Pear OPUS USB Receiver module (no longer stocked), which is part of a OPUS DAC build. The DAC works fine with spdif inputs, the usb receiver bit the dust at some point.

First wanted to ask, with jumpers on waveIO set to BRD & USB, the board lights up green when connected to usb port of my laptop but does not show as a device. Is this normal? I have ASIO4ALL drivers loaded, running windows 11.

I would like to use it as powered by USB bus, as I don't have a 5v supply line in the DAC. Below is how I replaced the old boards outputs with the waveIO's, again trying to power with usb bus. Not certain I got this right..
I2S Data - DO
I2S LRCK - LRCK
I2S BCK - BCK
I2S MCK - SCK

Attached is the manual for the twisted pear usb input board. Any pointers in the right direction would be well appreciated :)
 

Attachments

  • usb_1.0_manual.pdf
    118 KB · Views: 51
regarding WaveIO:
J12 jumper alone is the one you'll need to switch between PSUs: if you want to power you card form USB bus then you have to place that J12 jumper on "USB" position. On the other side, J8 with switch between USB input and has nothing to do with power rails. If you lan to use on-boar USB connector then leave J8 on "BRD" position and forget about it. If all is okay then you laptop should see your WaveIO.
 
hi @Lorien, thanks for the tip on that. I have J12 jumper set to USB. Besides that the board is not connected to anything (besides USB) and not mounted in chassis. I am essentially holding it in my hand, with only usb cable connected to laptop. Green LED is on. ASIO4ALL drivers installed, rebooted, the laptop is not seeing the waveIO board. Is this normal?
 
Not really...
If both J12 and J8 jumpers are set on "USB" positions then your WaveIO should be seen by your laptop unless:
  • there's not enough current sourced by the USB port your WaveIO is plugged in. WaveIO needs around 0.3-0.4A and USB 2.0 should source max 0.5A but I've seen a couple of cases when that value was only on paper...
  • defective USB cable, maybe too long or poorly made (?)
  • used on-board USB connector (poor contacts).
  • BTW, if you have spares then please change the jumpers with new ones, especially the one for J12.
  • your WaveIO is defective. It is a new board or an old one?
  • driver problems / conflicts?
  • or anything else that I cannot see right now....
 
Thanks for the detailed response, @Lorien. Tonight I will try a different computer, different usb cable, also should have some spare jumpers. Though I tried it wish jumper removed and the green LED did not come on. For drivers I am using current ASIO4ALL driver, which I think should work with this device. I purchased the board secondhand in the user marketplace here, just a few weeks ago. Will let you know how testing turns out tonight.
 
@Lorien, tried a different computer with different usb cable and it did recognize the waveIO. So was simple as that. Now to see how I can use it. The connections between waveIO and OPUS are mostly similar, besides waveIO having MCLK and opus having SCLK, which I think are the same. I need to order some new cables, I think I am restricted to using unbalanced lines if I am connecting power using usb bus, in which case I need some ubnc cable with bare wire on other end. If anyone knows where to source this it would be helpful. The cable I have is unbc to unbc, which I guess I can cut in half, strip, and maybe solder on some wire to make it longer, but not sure if that would work for this purpose.
 
Normally a 16 bit DAC should just care for the 16MSB and ignore the rest as it cannot meaningfully interpret it anyways. Maybe such old chips as the TDA1543 is having trouble with non zero input after the 16MSB? you could try with camilladsp inbetween and set the ouput bit depth to 16bit.
 
Normally a 16 bit DAC should just care for the 16MSB and ignore the rest as it cannot meaningfully interpret it anyways. Maybe such old chips as the TDA1543 is having trouble with non zero input after the 16MSB? you could try with camilladsp inbetween and set the ouput bit depth to 16bit.
This XMOS system uses I2S to communicate with the DAC. My understanding is that I2S is a flexible communications format that can be configured for 24-bit or 16-bit, and even for multi-channel, 8-channel, or even 32-channel systems. If the TDA1543 expects 16-bit I2S, then it's going to get really confused if you format the data for 24 bits. I took a quick look at the data sheet for the TDA1543 and I didn't see any mention of support for 24-bit I2S. It does say "Dual" so I assume that it supports stereo I2S data. (Note that I've done some work with the XMOS processors, but I am not familiar with the particular project in this thread - perhaps some configuration is needed to ensure that the I2S data is formatted correctly for the TDA1543).