Home > USB AUDIO > DIYINHK Isolated XMOS USB Interface

DIYINHK Isolated XMOS USB Interface

January 24, 2014 Leave a comment Go to comments

DIYINHK has developed a new version of the XMOS-based USB to I2S Audio Interface. This version provides isolated I2S signal lines. Plus it uses superior oscillators.

You can read about the older version here [link]




The Isolator chip is the Silicon Labs 8661 Low Power 6-Channel Digital Isolator [link]. This is the newest device from Silicon Labs. It is based on RF coupling [link]. Apparently the Si-Labs isolators are the lowest cost ones [link]


Si86xx enhancements include:

  • Schmitt-triggered inputs for higher input noise immunity
  • Increased ESD protection
  • High noise rejection linear regulators to ensure quiet bias voltage
  • Lower power oscillators for greater operating efficiency and faster output buffers with tightened 50Ω source impedance for better matching
  • Compared to competing digital isolators, Si86xx products provide near zero EMI emissions
  • Industry’s highest data rate (150 Mbps) across the widest temperature range (-40 to 12​5 ºC) and low power operation of <1.6 mA per channel at 1 Mbps.

The “clean” side of the isolator requires a separate power supply which must be provided for proper functioning. You need to provide a 5-16V supply. This will be further regulated by a low noise regulator.



According to DIYINHK, this version uses NDK NZ2520SD Ultralow phase noise oscillators from Japan. There are 3 oscillators: the 48 MHz for the digital circuitry of the XMOS device, the 45.158MHz and 49.152 MHz for the audio frequencies.




NDK has some general information on their oscillators, including jitter data here: [link]. Below is the phase noise plot of the NDK oscillators. Note the phase noise curve of the “SD” models.


NDK’s NZ2520SD low-phase-noise crystal oscillator has phase noise characteristics superior to those of the general NZ2520SB model. The company’s high-accuracy crystal oscillator (OCXO) has even better phase noise characteristics near the reference frequency.

Here is the phase noise plot of the Xpresso oscillators used in the previous version


And here is the phase noise plot of the CCHD-957. Note the phase noise value of the CCHD-957 at 10 Hz (-97) vs the phase noise value of the NDK oscillator at 10 HZ (-113)



The Master Clock is available straight from the NDK oscillators or at the appropriate scaled-down frequency through the output pins.

Straight from the oscillators (45.158MHz and 49.152 MHz) through a U.FL socket:


Through the output pins (22.5792Mhz/24.576Mhz).

The “C7424Z” device is used as a clock divider to generate the 22.xx and 24.xx frequencies used by XMOS device and also used by the downstream device (the DAC). Seems the clock line to the XMOS device is also isolated in order to prevent any kind of noise leakage from the XMOS/USB side to the Clock/Clean side.


Note that there is no “re-clocking” of any of the I2S signals. However, Xout can be used to control an external re-clocking board for the I2S lines.


As we’ve seen, the “clock section” including the I2S signal lines is isolated from the “XMOS/USB section”. The master clock line generated by the local clocks that connects to the XMOS device is also isolated. The two sections are powered independently.

On the backside of the board, we can see that the ground planes are also separated between the “clean side” and the “dirty side”:



The XMOS side (or “dirty side”) is powered by USB by default. Just like in the earlier version, the USB power can be bypassed by removing the FB1 ferrite and external 5V power can be applied through the external power connectors.



For the advanced DIY’er, the XMOS device can be reprogrammed with different firmware. This can be accomplished through the CN6 connector (which is the JTAG interface for the XMOS chip):


The following device from XMOS, the xTAG-2 [link] can used to upload new firmware to the XMOS device (updating firmware through USB is not enabled in the default firmware). The xTAG-2 provides a high speed, low latency bridge between USB on the host and fast JTAG connection (up to 10Mbps) on the target.

JTAG enables the transfer of data into non-volatile device memory (uploading firmware).


There are 20 pins in this device because the device is also a debugger. The JTAG interface pins are specified in the hardware manual [link]

  1. Somek
    January 25, 2014 at 16:41

    Sooo, why i would choose this one instead of Amanero, or WaveIO?

    • BlgGear
      January 25, 2014 at 23:35

      You like to experiment with different interfaces? :-). This one exposes the jtag interface so you can burn your own firmware (or the version available from XMOS)

      • Somek
        January 26, 2014 at 00:34

        Good point, also this one is cheaper. Lets focus on I2S: had anybody compared them? I’d rather do some research, before spending lots(dollars are expensive here) of money 😉 Personally I have good memories with DIYINHK(CM6631A, ES9023).

  2. ylingf
    January 30, 2014 at 18:57

    So according to Silicon Labs datasheet for Si8661 (http://www.silabs.com/Support%20Documents/TechnicalDocs/Si866x.pdf), the eye diagram showed 350ps of jitter while fed by Anritsu (MP1763C)Pulse Pattern Generator (http://downloadfiles.anritsu.com/Files/en-AU/Manuals/Operation-Manual/MP1763C_W1848AE_opm_e_9_0.pdf).

    The pulse pattern generator has a spec of 20ps P-P jitter. Does this mean that the isolator added roughly 300ps of jitter? If true, it would totally negate the benefit of the good clocks on the board.

    • BlgGear
      January 31, 2014 at 18:05

      You are right about the jitter numbers of the isolator. Since they are period jitter, the phase noise jitter (the number quoted for clocks) is 300/10 or 30 psec. I don’t know whether the isolator would “totally negate the benefits”, but system wide, the clock part is totally isolated from the “USB/XMOS” part. I have used the IL isolator in the past and I did not find negative effects (in listening or in my crude “jitter measurement”).

  3. ylingf
    January 31, 2014 at 21:43

    Ah, thank you. The IL71x isolators does seem to have lower jitter number(100ps) spec. Also maybe I missed the point to begin with. If the I2S signal’s jitter is mostly defined by the two NDK clocks, how much impact does the isolator’s jitter have on the jitter of the final output? Can you shed some light on that?

  4. 2a3set
    February 7, 2014 at 16:34

    Thanks for recommending the NZ2520SD, it’s a step up from Si570 re-clocking the Amanero.

  5. HML
    February 16, 2014 at 19:02

    Bought one of these and I don’t think you need worry about the jitter from the isolator. The output from the Xmos chip has +-2.5nS jitter from the processor clock clocking out the I2S signals. So to get any reasonable results you need to re clock the I2S signals with the MCLK.

    I have been trying to re-program the board. Not too easy. I have found you need to run the jtag clock at a lower rate than standard to get the program to load. I am wanting to convert this to an input board rather that an output to use as an input from a Sabre32 ADC. Need a good input to make measurements. The jtag pin out I got from DiyInHK was not correct.

    • BlgGear
      February 17, 2014 at 00:39

      Thanks for sharing. At some point I would want to try programming this device as well. Do you have the correct jtag pin out?

      • HML
        February 17, 2014 at 08:55

        The pin out is
        Pin 1 Gnd
        Pin 2 MSel -> Pin 3 on XTAG
        Pin 3 TMS -> Pin 7
        Pin 4 TDI -> Pin 5
        Pin 5 TCK -> Pin 9
        Pin 6 RST -> Pin 15
        Pin 7 TDO -> Pin 13
        Pin 8 Debug -> Pin 11
        A couple of images can be found here
        If your interested in the Xmos code to reproduce the basic functioning of the board I will create a link to it.

      • BlgGear
        February 21, 2014 at 01:23

        Thanks… yes, I would be interested in the code.

      • Hex
        March 5, 2014 at 07:00

        Is the 2.5ns jitter still accurate for the latest XMOS chip that is implemented in this DIYINHK board? The latest measurements / information about this subject is more then 3 years old.

        Any information regarding this subject is welcome!

  6. HML
    March 5, 2014 at 08:26

    Yes, there is definitely 2.5nS jitter on all the outputs from the latest Xmos chips when the Xmos example program is used as the basis of the design. I have read in one of the Xmos documents that there is jitter on the outputs but cannot find the paragraph at the moment. The reason for the jitter is that the outputs are clocked by the main processor clock – 500MHz. There is no re-clocking or latching against the MCLK. This results in +/-2.5nS jitter. The Xmos processor data sheets suggest that it may be possible to use the MCLK for the clock source for the BCLK and LRCLK. This is not done in the reference design and not in the DIYINHK board. So to get good stable LRCLK BCLK and DATA they need to be routed through D type latches clocked by the MCLK.

    • luta
      April 27, 2014 at 10:08

      NDK looks interesting.. I’ve used cheap FOX 😦

      I think best way is XOs located close to DAC chip (after isolator, eg. IL717). Reclock of I2S should not be needed for oversampling delta-sigma DACs because they have internal reclock on I2S bus from MCLK

      for example my little diy dac have XOs close to PCM1794 http://luta.7u.cz/images/DAC2/PCMDAC3.jpg

    • gaza
      June 13, 2014 at 22:08

      Hello Hml i need to supply my dac uses Amanero driver which also has a dsd input over hdmi which goes straight to the dac chip. I want to build a compter with ssd or hdd drive to play files to the dac. I was thinking of using the OEM Combo384 Module – USB class 2 to I2S 32bit and DSD output Adapter then work my way back from there. I can not carry out this work myself although i have a tech guy who can build but has limited knowlege of building a computer specifically for audio.
      I am thinking of using audiophils optimizer which pretty much works in dos/linux.
      Any advice on build and software.

      Thanks Gary

      • BlgGear
        June 15, 2014 at 01:32

        My thinking is that through USB, It doesn’t matter much what is upstream 🙂

      • BlgGear
        June 19, 2014 at 17:52

        Unless there is something not bit-perfect with the s/w such as dropping data, re-sampling, volume control, etc.

  7. Hex
    March 5, 2014 at 19:17

    Hi HML, thank you for your great input ! Any extra information that you could provide me and the other blog readers, for the implementation of your suggestion would be much appreciated. If you know of any XMOS boards that got this kind of implementation, then please provide this blog-item with these examples. Thanks again!

  8. BlgGear
    March 5, 2014 at 20:22

    Here is a link with jitter measurements on the XMOS: http://www.fetaudio.com/archives/1440
    It shows jitter values of ~ 800 psec.

    I would expect that any clock signal going through some complex logic would result in several 100s psec of added jitter. 800 psec is kind of in the high end of added jitter; 2.5 nsec jitter is unexpected.

    I found the reference to the 2.5nsec: https://www.xmos.com/en/published/usb-audio-software-design-guide (p25)

    There it says that it is added to the SPDIF output when the master clock is “resampled” t the SDPIF clock domain (eg 44.1K, 96K, etc)

    in page 20, it talks about I2S:

    The L-Series device inputs MCLK and divides it down to generate BCLK and LRCLK.
    To achieve this, MCLK is input into the device using the 1-bit port p_mclk. This is attached to the clock block clk_audio_mclk, which is in turn used to clock the BCLK port, p_bclk. BCLK is used to clock the LRCLK (p_lrclk) and data signals SDIN (p_sdin) and SDOUT (p_sdout). Again, a clock block is used (clk_audio_bclk) which has p_bclk as its input and is used to clock the ports p_lrclk, p_sdin and p_sdout. The preceding diagram shows the connectivity of ports and clock blocks.

    This seems to imply that data is clocked by the derived clocks which are divided from the master clock. The expected added jitter from this kind of operation is “hundreds” of psec.

    However, there is a discussion of the added jitter to the I2S lines here [link].

    And according to this doc [link], the input clock (say the 24.576MHz clock) is sampled to the internal processor clock. Meaning that the external clock ticks (or transitions) are mapped to the processor clock ticks. This means that the worse “jitter” is when you just miss the external clock transition and must wait for the next internal clock tick. So the worse deviation from the actual frequency is the period of the processor frequency, thus for a 400MHz internal clock part, it is 2.5nS. This is the peak jitter. Thus the RMS number is 2.5/SQR(2)=700 psec

  9. dex-rex
    March 28, 2014 at 05:22

    Have you got a chance to compare this XMOS to previous interfaces sonically? I am very curious to hear your opinion what isolation brings to the table as there are so many vague claims out there. BTW such an amazing blog you have, a wealth of knowledge and broad competence, impressive stuff indeed..thanks!

    • BlgGear
      March 28, 2014 at 17:16

      I have not compared this XMOS specifically, but I’ve experimented with isolators before, and in my setup I did not detect much differences. Check this: https://hifiduino.wordpress.com/2012/04/01/experiments-with-nve-il715-isolator/. The DIYINHK isolation is a bit different: in addition to isolating the I2S signals, the clocks are also isolated. This could be a benefit if using the clocks downstream (for example, for a reclocker board). In all honesty, I don’t have the ears to distinguish this level of improvements, but there is satisfaction from the engineering/diy point of view in that the “ultimate” in noise/jitter reduction can be accomplished, and especially at a very affordable price.

  10. manudrz
    April 5, 2014 at 08:02

    Hi, I have a B3SE with the previous DIYinhk non isolated USB/i2s interface, powered up by a Placid HD supply. I’m actually wondering if the Anamero would be a better choice to feed my DAC ? The DIYinhk is nice but I’d like real DSD…
    On the other side the Anamero interface is an old design so I don’t know at all what to do… What do you think about that ? Thanks a lot

    • BlgGear
      April 8, 2014 at 01:11

      Yes, if you need to pass DSD, then use the Amanero. The Amanero is not an “older design”, just fully custom.

      • manudrz
        April 8, 2014 at 06:52

        OK thanks for your answer and your work, perhaps a aku384 would be the best for me. I’ll see later .

  11. Anonymous
    September 29, 2014 at 16:53

    What do you think of the latest Gustard U12 USB – uses the XMOS and crystal clocks. Just ordered one – very inexpensive. Nice PS filtering as well.


    • BlgGear
      September 29, 2014 at 17:30

      Looks nice. Make sure they have the proper drivers for your platform

  12. Sam5050
    September 29, 2014 at 19:40

    Hi this is Sam5050 -the fellow who did the ‘Reader Review’ of the Musilands. I posted above on the Gustard, it uses the generic XMOS Thesycon v1.6.1 ASIO drivers.
    Which should keep getting updated and stay current.

    Still love that Musiland 3.0 USB USD panel, and the drivers have been rock solid.

    I like the active crystal clocks on the Gustard. They look to be very high quality. Also separate AC ps, with heavy filtering. Started a thread on HeadFi (rb2013).

    They are cheap – I paid $159 shipped – off ebay.

    Thanks again for the great blog – I’ve been reading up on the XMOS here.

    • BlgGear
      September 29, 2014 at 20:13

      Hello and thanks for continuing to share your projects here. Yeah, I continue to like the Musiland interface. The driver is indeed pretty rock solid. The only thing I “worry” about the XMOS is the way the clock frequencies are derived as explained a few posts above

      • Sam5050
        September 29, 2014 at 23:03

        Any word on the new Musiland products? Using their custom DSPs.

  13. Sam5050
    September 29, 2014 at 19:42

    PS I’ll post my listening tests versus the Musiland 3.0 USD. Cheers!

  14. Sam5050
    September 30, 2014 at 14:32

    On the XMOS clocking issue, I believe you described the clock derivation issue as:
    “And according to this doc [link], the input clock (say the 24.576MHz clock) is sampled to the internal processor clock. Meaning that the external clock ticks (or transitions) are mapped to the processor clock ticks. This means that the worse “jitter” is when you just miss the external clock transition and must wait for the next internal clock tick. So the worse deviation from the actual frequency is the period of the processor frequency, thus for a 400MHz internal clock part, it is 2.5nS. This is the peak jitter. Thus the RMS number is 2.5/SQR(2)=700 psec””

    Was this just a implementation of the XMOS on this particular DIYINHK board using the C7424Z chip, or is it implicit to designing around the XMOS? Sounds that way.

    Although it was mentioned by HML that “The Xmos processor data sheets suggest that it may be possible to use the MCLK for the clock source for the BCLK and LRCLK. This is not done in the reference design and not in the DIYINHK board.”

    I will post closeups of the Gustard U12 board when I get it.

    • BlgGear
      October 7, 2014 at 17:52

      I don’t recall completely, but I think this is inherent in the XMOS chip.

      • Sam5050
        October 7, 2014 at 18:13


      • Sam5050
        October 7, 2014 at 18:16

        Just discovered this – a shootout of 15 USB interfaces. The Berkley Audio Design Alpha won – they implement the XMOS. But it looks like quite a bit differently then DIYINHK. If you get a chance to checkout the boards – you comments would be appreciated. Thanks again.


      • BlgGear
        October 7, 2014 at 22:24

        The Berkeley interface is an isolated interface. Looks similar in design to the diyinhk isolated interface (https://hifiduino.wordpress.com/2014/01/24/diyinhk-isolated-xmos-usb-interface/) where the audio clocks and digital out are isolated from the XMOS chip. The isolators chips are different and of course, layout and power generation are done by different chips. And there is the “ferrite gate” thing…

        In addition, the Berkeley interface outputs transformer isolated spdif signals whereas the diyinhk outputs I2S. There is a usb/spdif interface but non-isolated:

      • Sam5050
        October 7, 2014 at 23:33

        Thanks for the reply – well for $1800 I guess you should get something special. The reviewer speculates it a ADuM* isolator chip.

        But as far as the clocking – it looks to be similar to the Gustard with crystal clocks, slaved to the processor clock.

      • BlgGear
        October 8, 2014 at 06:22

        The Silicon Labs isolators are lower cost than the Adums. I think there are 4 different companies that build isolators all based on different technologies. If it is the Adum, which is based on magnetic coupling, then the “ferrite gate” gizmo probably acts to “absorb” stray magnetic fields to prevent affecting other components. The Silicon Labs device is based on capacitive coupling. Whether or not the XMOS clocks can be operated in different ways, it is most likely determined by the firmware.

  15. Sam5050
    October 13, 2014 at 16:15

    Recieved the Gustard U12. Sounds fantastic – better then the M2Tech Evo, Audiophilieo 2, or Musiland USB 3.0 USD.

    Very natural sound, deep detail, great tone. A real steal for the money. Swapped out the Philips 2,200uf 25v caps for Pana FCs to improve ps rippled filtering.

    • BlgGear
      October 13, 2014 at 17:57

      Good to hear. Looking at the photos, there is an Altera FPGA in addition to the XMOS. Do you happen to know what are the functions implemented in the FPGA?

      • Sam5050
        October 13, 2014 at 19:22

        Not completely sure but guess it for DSD processing

  16. Sam5050
    January 18, 2015 at 17:57

    The Gustard U12 (USB XMOS) is sounding amazing after some mods (upgraded ps caps and ERS shielding). For $155 a real bargain. I have a thread running – any mods you would suggest beyond that? Thanks for your blog – love reading it and have linked to it in my thread.

    • BlgGear
      January 19, 2015 at 00:42

      Yes, that is an “interesting device”. Would like to know whether the PFGA does reclocking. The XMOS is already capable of handling the USB side and in passing PCM and DSD data. The Musiland devices also use an FPGA, but they do not have an XMOS. I can see you’ve done extensive mods already…

      • BlgGear
        January 19, 2015 at 17:13

        In a way all devices that transfer data through USB do some sort of reclocking since the data coming through the USB has a different time domain. The Musiland reclocks the data with clocks generated by the FPGA clock management modules through clock division and multiplication and cascading. The XMOS reclocks the data by generating clocks based on its 400/500 MHz clock by “picking clock ticks that coincide with the external clock ticks”. It is possible that the Gustard uses the XMOS for its USB interface (and mature device driver) and the FPGA to reclock the data but based on simple clock division of external clocks rather than relying on its internal clock management circuitry. Based on most data sheets, the jitter originated from simple clock division is lower than the jitter originated from multiplication/division/cascading.

  17. Sam5050@comcast.net
    March 19, 2015 at 03:27

    Have you had a chance to checkout this USB interface? I don’t see the C7424Z chip and three NDK clocks. Thanks! http://www.diyinhk.com/shop/audio-kits/54-xmos-192khz-high-quality-usb-to-spdif-with-ultralow-noise-1uv-regulator-wauto-power-switch.html

    • BlgGear
      March 20, 2015 at 04:22

      Yeah the clocks are there next to the XMOS chip. But I have not used that interface. Seems similar design as the other ones except it enables spdif

  18. boogiefreak
    July 10, 2016 at 15:01

    hi, i’m new here and also not an electronic expert. Hope somebody can help me
    my usb interface (audio-gd NFB-1S) is broken (definitly). The manufacturer has discontinued selling usb interface (USB32, xmos or amanero) for my dac so i guess i got no other choice and deal with a diy solution.
    1st of all can this interface (reviewed on this page) work with my and if so, how can i make it work ?
    thanx, i’m stuck cannot listen to DSD and 384khz music

  19. September 14, 2016 at 16:46

    abercrombie fitch

  1. February 2, 2014 at 12:00

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s