Home > Arduino, Code, DIY HiFi > Buffalo III “Smart” Stereo Input Configuration

Buffalo III “Smart” Stereo Input Configuration

November 15, 2012 Leave a comment Go to comments

Here is a “smart” input configuration for the Buffalo III DAC, where you can use an interface like the Amanero USB that can pass both I2S and DSD and also connect 3 other SDPIF sources without any external switching device. This configuration leverages the Serial format auto-detect capability of the Sabre32 DAC and its built-in SPDIF MUX. It also requires an external controller such as HIFIDUINO.

In essence, it replicates the input configuration of the Buffalo II DAC and frees up 3 input ports for SPDIF.


Notice that in the Buffalo II DAC,  Data 3, Data 7 and Data 8 are connected to GND. In contrast,  all the input lines are configurable in the Buffalo III DAC. The idea here is to replicate the “D1” and the “D2” connections of the Buffalo II DAC and have Data 3, Data 7 and Data 8 available for SPDIF input.

Also notice that the input to the 8 internal DACs are remapped so that only inputs to 4 DACs are required. This remapping is accomplished through the appropriate register (register 14). The integration manual for BIII also specifies input remapping for the “default” stereo configuration.

With this input configuration the DAC automatically switches between a PCM (I2S) stream and a DSD stream. This behavior has been tested with the Amanero board, and it should work with other boards such as the EXA device. [link]


Here is the input pins for the BIII DAC board (top and bottom).

According to the Buffalo III Integration guide by Leon van Bommel (54 pages worth of excellent documentation). The jumper settings is as such:

The table implies separate input configuration for PCM and DSD. The rest of the guide also instructs the installation and removal of jumpers and dip switch settings depending on the input format (SPDIF, DSD or PCM).


Without going further, let me say that this only works for stereo configuration.

By comparing the jumper setting table for BIII with the BII wiring diagram above, we notice that in order to replicate the BII input wiring on the BIII DAC we can do the following:

Use JDSD1 and JDSD2 and then find a way to wire D4 to D2 or to D6. This can be done by using JPCM2 and JPCM3 (and we loose the use of D3). This can also be done by installing an external jumper from D4 to D6 or from D4 to D2. D3, D7 and D8 are made available for SPDIF inputs.

The complete wiring would look like this:


Combining the above configuration with an external controller such as HIFIDUINO, and the appropriate interface (for example Amanero USB) you will be able to enjoy the convenience of switching between PCM, DSD and 3 external SPDIF sources without making any changes in the jumpers or dip switches of the board.

The current version of the code supports does (not yet) have support for actuating the built in SPDIF MUX, but a simple change is described by Mr. Corpius here: [link]


I do not have a BIII, but I have done testing on my BII where I had both SPDIF and I2S signals connected and live at the same time. I was able to switch from I2S to SPDIF by just switching the signal on one pin (D1). You can read more in the Sabre32 tab. Look for “LEVERAGING INTERNAL SOURCE SELECTION”. However, Russ (from TPA) just commented on this post, and expects this configuration to work. You can read his comments in the comments section.

UPDATE (11/17/12)

The DSD channels are swapped with respect to the PCM channels [link] and both channel arrangements are “standard”. This means that this “automatic” switching works, but the DSD channels (or PCM channels) need to be swapped. The wiring can obviously be swapped with a relay, but then it is not “automatic” anymore, and you now have a relay in the signal path.

The solution is to swap the DSD channels in the foobar player. I’ve documented the procedure here: [link]

UPDATE (11/20/12)

Bunpei recommended this wiring configuration a while back [link]

  1. Anonymous
    November 15, 2012 at 15:41

    Have you tested this with a SPDIF signal and PCM signal present at the same time? 🙂

    • BlgGear
      November 15, 2012 at 16:45

      Since I do not have the BIII, I have not tested the above configuration. But I have tested having both SPDIF and I2S signals and switching in both hardware and s/w (only switching one pin which in the BII is data one and is shared by I2S and SPDIF). Having both I2S and SPDIF live at all times, I was able to switch the source (with a combo h/w-s/w approach). In BIII the spdif can be separated from the I2S and thus the h/w switch is unnecessary.

  2. November 15, 2012 at 15:55

    I got really excited, and then I read “works for stereo only.” 😦
    My BIII is configured to use 8-channel mode for multi-channel files. No worries though; it’s not a lot of problem to switch using the controller knob!

    • BlgGear
      November 15, 2012 at 16:41

      Yeah, for 8-channel there is no way to this “automatic” switching. Look at the DAC wiring configuration and you will understand why.

  3. Anonymous
    November 15, 2012 at 19:55

    Actually the switching is absolutely necessary because if there is a live signal at D1 (the bit clock) then the DAC will always try to lock the PCM signal. So you must switch out PCM/DSD before attempting to lock SPDIF – no matter which channel of SPDIF you are referring to. This is why there is a sidecar module for BIII. 🙂

    • BlgGear
      November 15, 2012 at 22:22

      As I indicated, I have not tested this configuration because I don’t have a BIII to test. But if you use manual SPDIF/Serial switching and tell it to lock to say SPDIF #8 (at D8), common sense would imply that it would not attempt to lock at SPDIF #1 (at D1). If I have two live sources of SDPIF one at D1 and one at D8, I think I can switch between SPDIF 1 and SPDIF 8 in s/w. Otherwise it is not a MUX at all.

      • Russ White.
        November 15, 2012 at 22:35

        I have tested it. 🙂

        If you have a PCM/DSD signal present it will override SPDIF. You must switch it out (or turn it off) before you can lock on any SPDIF channel.

        The MUX selection only indicates which SPDIF input the DAC will attempt to Lock. If the DAC detects a PCM/DSD input signal it ignores the SPDIF MUX register since the PCM mode detection overrides the SPDIF mode.

        I tested this very early on when designing the B32 and later the BII and BIII. Indeed – this is why there is a sidecar module for BIII, and why the B-IIISE input scheme is different from the BII.

        The sidecar module does the switching out of the PCM/DSD as it switches in the SPDIF.

        I have a much better version now though. The way the BIISE is much more elegant.


      • BlgGear
        November 16, 2012 at 01:06

        Hi Russ, thanks for stopping by and thanks for clarifying the behavior of the DAC.
        There is a manual SPDIF/I2S-DSD register, I guess is not really manual at all then.
        When I tested this in BII, I only had to switch out D1 (since I didn’t really have a choice because SPDIF is connected to D1 :-))

  4. Anonymous
    November 15, 2012 at 19:59

    Sorry I misspoke. I meant if there is a signal at DCK. Which is the bit clock.

  5. Anonymous
    November 15, 2012 at 20:01

    Sorry I misspoke. I meant DCK the combination of DCK and D1. Bit clock and word clock.

  6. Russ White.
    November 15, 2012 at 22:47

    BTW, you can’t do 8 channel with SPDIF input period. 🙂 Only stereo or mono. That is the way the device itself is designed.

    • BlgGear
      November 16, 2012 at 05:04

      That I know 🙂

    • November 16, 2012 at 17:45

      I knew this too; all multi-channel audio will be coming via I2S through a USB to I2S converter, which will use up D1-D5. I will have three S/PDIF inputs available from D6-D8.
      I haven’t yet looked into auto-switching, and I’m reading here that you need to manually switch between PCM and S/PDIF. Not really a problem for me as the interface I’m programming will have the ability to change all registry settings/switch inputs on-the-fly.

      • BlgGear
        November 16, 2012 at 18:50

        There are two types of “auto-switching”

        PCM – SERiAL (PCM/DSD) auto swtiching. This should be disabled in order to use the SPDIF MUXing capability of the DAC

        and PCM – DSD auto-switching. This is always the case

  7. K Y Chan
    November 16, 2012 at 01:23

    Is there any way to connect the Amanero USB to the SPDIF input of the Sidecar? I’ve connected Ian’s FIFO to the DSD/PCM.

    • BlgGear
      November 16, 2012 at 05:08

      Should be able to, it is just a relay…

  8. Russ White.
    November 16, 2012 at 02:03

    Yes, you should be able to clear register 8:7 and 17:3 and force SPDIF mode exclusively.

    I only meant that if you wish to retain PCM/DSD auto-detection you must switch out the PCM.

    Also you must still supply TTL level SPDIF – so you will need to level shift in any case.

    A better solution IMO is to switch signals prior to the level shift – so as to limit the number of high speed TTL signals running close together. This is a lesson learned from Buf III.

    You approach should indeed work – so long as you use those two(8:7 and 17:3) registers in your firmware when switching from PCM/DSD to SPDIF.

    Good luck!


    • BlgGear
      November 16, 2012 at 05:00

      Russ, thanks again for your contribution.
      Yes, that is how I programmed the registers. The way it is now, SPDIF or PCM/DSD must be explicitly selected. And once you program the register to be only PCM/DSD, it automatically detects whether the source is PCM or DSD. Obviously you need to switch-out one source and switch-in the other but using something like the Amanero USB board, there is no need to do any hardware switching because the wiring for PCM and DSD (coming from the Amanero) are the same and compatible with the BII/BIII DACs.

      This approach does require that the signals be TTL level. And in order to limit the number of TTL signals running around, any sensible audiophile would turn the unused signals off 🙂

  9. K Y Chan
    November 20, 2012 at 00:50

    Sorry, may be my question is not clear, can I connect the I2S output of Amanero USB to the SPDIF input of the sideCar? Which pins should I connect the I2S to the SideCar DIO?

  10. K Y Chan
    November 22, 2012 at 04:05

    Thanks for your reply. I’ve checked the schematic before. S1.3 connects the BCLK to I2S input when the relay energized but is not connecting to any SPDIF input pin in default state. May be I have to modify the PCB if I want to use it for switching 2 I2S sources.

    • BlgGear
      November 22, 2012 at 04:49

      I see. If it is not connected to the ribbon connector on the spdif side, then you will have to jumper it in the PCB.

  11. November 24, 2012 at 17:58

    Thank you very much for these info about the PCM/DSD configuration, I will use it in the my project for DIY
    I have modified the original image but there is the reference to your article.

    • BlgGear
      November 25, 2012 at 08:33

      No Problem. Let me know how it goes, since I have a BII and cannot test the multiple spdif selection. Nice DAC setup you have there…

  12. September 14, 2016 at 15:42

    in home pet sitter

  13. September 14, 2016 at 16:40

    Contemporary lighting

  14. September 14, 2016 at 18:30

    house eviction

  15. September 14, 2016 at 18:50


  1. February 27, 2013 at 05:21
  2. October 26, 2017 at 12:47
  3. October 18, 2018 at 05:59

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