Buffalo III DAC

With all kinds of digital music files available one could not do without a DAC anymore. These days more and more people are using desktops, laptops, tablets PC's or even mobile phone to listen to there music, but very often the sound quality leave a lot of room for improvements. Here comes in a good quality DAC. Not only computer playback could benefit from it, also a lot of CD players, DVD players or simple media players could turn into good sounding devices by connecting their digital outputs to a good DAC! Therefore I conclude that nowadays a good quality DAC has become indispensable for any High-End audio setup, no matter what playback device one uses. 


The Buffalo III Digital-to-Analog Converter

I choose this DAC mainly because of it good specifications.

  • It is based on the ESS Sabre32 reference (ES9018) DAC chip.
  • It can be used in a dual mono, stereo or even 8-channel output setup.
  • Lots of different input configuration possibilities, like up to 8 S/PDIF inputs or up to 8-channels of PCM/DSD input. All supporting up to 32bit/192 kHz.
  • Very low noise add-on shunting regulators for all digital parts.

There are a lot more features that contributed to my choice, most of them can be found at the Buffalo DAC page at the Twisted Pear Audio website. Another reason why I choose for the DAC is the possibility to control it via I2C communication protocol using an Arduino or a similar platform. The HiFiDUINO website makes it fairly easy to implement it all. The author of the website and code has done a great job here!


My Buffalo III

My Buffalo III 

My Buffalo DAC consists of the following modules:

Building it was fairly easy. Almost SMD parts are already soldered to the boards, so one only needs to able to solder the larger components. Another skill one needs to build it is the skill to read. When one closely follows the instructions from the Buffalo-III integration guide and other available manuals it should all go well, but this is where a lot of people fail. Including myself at some points. Luckily there is always the TPA support forum when one needs help.


Buffalo III + trident regulators  Back

The BIII board has almost all parts soldered to it, except for the connectors, trident regulators and some SMD jumpers. The SMD jumpers are there to set the board up for mono, stereo or 8-channel output. They turned out be quite difficult to solder without any SMD soldering experience! The trident regulators are very easy to solder to the BIII board, but they need to be placed to the right spot. There are two different tridents for powering the digital sections of the DAC. One trident has an out voltage of 1.2V and the other two have an output voltage of 3.3V. When placed in the spot the DAC won't work.


The AVCC dual shunt regulator can be mounted by using the supplied connectors. This also has to be placed in the right direction for it to work. Furthermore I choose to solder the digital input connector to the board to be able to use the supplied ribbon cable for the connection between the sidecar en BIII board. The sidecar could also be soldered directly to the BIII board, but I choose not to do this. It would be a really difficult to remove it when not using a hot air gun. The ribbon cable is kept as short as possible to keep the signal path to the minimum. I choose to use a dedicated power supply just for the BIII board. This supply is the Placid HD.


IVY-III I/V stage Back

The buffalo DAC is a current (I) output DAC, so the current output needs to be converted to a voltage (V) output. This is done by a so called “I/V stage”. TPA sells two different I/V stages, namely the “Legato I/V stage”and “IVY-III I/V stage”. I choose for the IVY-III because of two reasons. According to the integration manual it measures a bit better and has zero DC on its outputs. On the contrary to the IVY-III the Legato needs to be adjusted to to have zero DC on its outputs. My DAC is connected directly to my Hypex Ncore400 power amps. These amps have no input capacitors, so it's crucial to have zero DC on the DAC's outputs! I love my speakers and do not want to ruin them because I accidentally forgot to adjust the I/V stage output to zero! This I/V stage is not that difficult to build. All components can easily be soldered to the board. I replaced the original 100uF Nichicon capacitors for Nichicon's 100 uF “Fine Gold” type capacitors, which I had lying around. These are somewhat larger and I soon discovered that when using these the IVY-III wouldn't fit underneath the DAC board. For that reason I took them off again and used the original 100uF capacitors instead. The IVY-III is power by the Placid HD BP – bipolar shunt regulated power supply.


Sidecar S/PDIF / PCM switch module Back

After the Metronome this is easiest module to build. Solder three relays, a resistor, transistor and the connectors to it and you're ready to go! The module is used to switch between S/PDIF and PCM signals. In order to make this possible it is placed between the 4-Channel S/PDIF converter, the PCM source and the DAC. The switching can be achieved by pulling input “B” HIGH (5V) or LOW (0V). The 5V applied to input “B” is coming from the Arduino when the source is set to “I2S/DSD”. The 4-Channel S/PDIF converter is connected to it with the ribbon cable. The ribbon cable is kept as short as possible. The Metronome is also connected to it, but I soldered some cables between them for a better connection. The connection to the DAC is made via the ribbon cable. The Sidecar is being powered by the σ11 ("sigma 11") linear regulated power supply, but with a voltage regulator between it to lower the voltage from 5 to 4.2V. I will explain why at the 4-Channel S/PDIF level converter chapter.



4-Channel S/PDIF level converter Back

The BIII will only take TTL-level S/PDIF signals, while most consumers and diy digital sources output consumer-level S/PDIF. In order to use these S/PDIF signals one needs the S/DIF level converter to convert them from consumer-level to TTL-level. I choose for the 4-Channel S/PDIF level converter because I want to be able to connected multiple S/PDIF sources to my DAC.

Building it is quite easy. There are no SMD parts and by looking at the values on the boards it becomes a child-play to solder the components to the right places. The 1:1 pulse transformers a bi-directional, so there there is no way of installing them the wrong way around. The only SMD part is the high speed quad-comparator for the actual TTL-level shifting from consumer-level S/PDIF or AES/EBU signals, but no worries here. It comes already soldered to the board. The board can be setup for S/PDIF as well for AES/EBU. This is done by choosing the right resistor values. For S/PDIF one 75Ω resistor and one 0Ω resistor are needed and for AES/EBU a one 68Ω resistor and one 43Ω resistor. I have configured it for three S/PDIF inputs and one AES/EBU input. Each input is connected to some descent Neutrik chassis connectors. For S/PDIF I used RCA connectors and for AES/EBU a female XLR connector.

4-Channel S/PDIF board

Getting the board to work properly was however a whole different story. When I first tested it I connected just one source to the first input. When I was sure it worked well I connected it to the second input and so on. Convinced that it was working properly I went on finishing the DAC. When the build was more or less finished I connected the source again, but with one difference made. I had also connected another source. This is where I found out that it was impossible to to get a proper lock onto the signal when only one of both sources was powered. I needed to power them both in order to get a proper lock. This was of course not desired, but I could not fix it. No matter what I tried. I re-soldered it all, changed the power supply, changed the toroidal transformer, changed the chassis connectors, connected the “-IN” input to ground. I turned to the TPA support forum where TPA was not able to help me out here, simply because they could not replicate this problems. The forum is where I found out that I was not the only one experiencing this problems. Some others also had reported the same problems, so that is where we started looking for a link between our lock problems. The only link found was that all users experiencing this problems have mains power of 220/230V at 50 Hz. This is not something that can be changed so there was still no solution until somebody posted a message that lowering the supply voltage for the 4-Channel S/PDIF level converter kit improved the amounts of unlocks in his setup. This was worth a shot, so I used a voltage regulator to lower the voltage. I started at 3.3V, but at this voltage the board did not work. It started working at 3.7V and now I could connect multiple sources to it without the need to power them all. So this was the solution, but because I'm am powering the 4-Channel S/PDIF level converter board via the Sidecar the relays on the Sidecar where not switched properly at this low voltage. Therefore I tried to how high I could raise the voltage without getting the unlock problems again. With the voltage set to 4.2V the relays on the Sidecar are still switching alright and multiple sources can be connected without the need to power them all to get a proper lock.


Metronome ASRC module Back

The Metronome is used for re-clocking the I2S data stream. This is needed for my CD-Pro2 based CD transport. The CD-pro2 outputs a sample frequency of 48fs, but the BIII is requires a sample frequency of 64fs. Therefore the signal needs to be re-clocked. The Metronome uses a Texas Instruments SRC4192 Asynchronous Sample Rate Converter chip and a Crystek high-precision oscillator (24.576mHz, 25ppm) to achieve this. An additional advantage of re-clocking the I2S data stream is the removal of jitter.

The only things that need to be soldered to the board are its connectors. All other parts are already soldered to the board, making it really easy to use. I soldered all incoming and outgoing signal lines directly to the board and the outgoing lines are also soldered to the Sidecar. This ensures a good transmission of the I2S data stream. The dip switches allows one to set the output to 48kHz, 96Khz or 192kHz. I choose to output 192kHz because this sounds the best to my ears. The Metronome is powered by the σ11 ("sigma 11") single-rail linear regulated power supply at 5V.

Metronome ASRC module


Teleporter digital transceiver Back

This module is a LVDS transceiver making it possible to send I2S data streams over long distances without hardly any losses. There is not much space left inside my DAC, so this is a perfect solution for me to take the I2S data stream from my CD-Pro2 and WaveIO and send it over to my DAC. I soldered an small piece of a Cat.6 cable directly to the board to ensure good transmissions. The other end of the cable connects via a RJ45 plug to a RJ45 feed-through chassis receptor from Neutrik. The Teleporter is powered by the σ11 ("sigma 11") single-rail linear regulated power supply at 5V.

Teleporter digital transceiver


OTTO-II 2:1 digital switch module (to be added) Back

The OTTO-II is going to be used to switch between both Teleporters. The switching will be done by using 3.3V logic converted from the Arduino 5V logic. It will also be powered by the σ11 ("sigma 11") single-rail linear regulated power supply at 5V. More will follow when I build it into my DAC.


Arduino Uno Back

A very important add-on, because it allows me to control my DAC! I used the code from HiFiDUINO, but changed some parts and added a lot of code to suit my needs. It is used to control the following functions. 

  • Input selection (click here for the code).
  • Volume control.
  • Input format (S/PDIF or I2S/DSD).
  • FIR filter.
  • IIR filter.
  • DPLL setting.
  • Quantizer.
  • Notch delay.
  • DPLL mode.
  • Backlight brightness adjustment (click here for the code).
  • Temperature monitoring, fan on/off (click here for the code).
  • Display format to show only input and volume or show all settings (click here for the code).
  • Standby function (to be added in the future).

The next image shows the protoshield onto where I added the MCP42010 digital potentiometer and the logic level converter. The Arduino and LCD display are situated underneath it. I designed the Buffalo shield to replace the protoshield, but as I'm writing this I'm still waiting for it to be shipped.

Arduino protoshield

The arduino is powered by the LM317 regulated power supply. At the back panel of the DAC is a USB chassis connector mounted and from there a cable runs to the Arduino. This allows me to upload the code to the Arduino without having to open the chassis.


LCD display HD44780 4x20 black, negative backlight Back

At first I used an white LCD with blue characters, but I was not to happy about the amount of light coming from it. When the DAC was turned on I could turn off all lights in the living room and still be able to see everything! I had been looking for VFD displays to replace the LCD display. They look very nice, but they are way too expensive in my opinion. On ebay I found an LCD with a negative backlight or monochrome display. This means that that background is black and the characters are white. This is perfect for not lighting my whole living room Smile. It also gives the DAC a more professional appearance.

The temperature monitoring function shows some odd behaviour in this video. This was caused by not connecting the temperature sensors to the Arduino. When they are connected a normal temperature reading is shown.


LCD I2C extra IO Back

The LCD is connected to the Arduino via the “LCD I2C extra IO” from “electroFUN”. This little add-on module is soldered directly to the LCD and frees up all Arduino's digital output pins that otherwise would be used for the LCD display. It is basically an IO extender, but with the Arduino library they wrote it can also control an HD44780 LCD display using the I2C communication protocol. It has it's own unique I2C address, but the address can be changed by removing some jumpers on the board. Because it uses the I2C communication protocol it is connected to analogue pins A4 and A5. The connection of the backlight pin is made by putting a MCP42010 digital potentiometer in between. This allows me to adjust brightness of the LED by using the remote control via the Arduino code. There is a little potentiometer on the "LCD I2C extra IO” to adjust the contrast of the LCD display.

I2C LCD extra IOI2C LCD extra IO connection to Arduino


Placid HD – shunt regulated power supply Back

In my setup this power supply powers only the DAC board. My believes are that having dedicated power supplies of each section will improve the overall performance of the DAC. It is set to output 5.25V DC and shunt about 50mA, just like TPA advises. The heatsink from QN1 (FJPF5200OTU) tends to get quite hot. At first I was a bit frightened that it would run too hot, so I stuck a temperature sensor to the heatsink. It turns out that it won't get any hotter then 53°C on a real hot summer day. According to its maximum rating it can handle much higher temperatures, so there is really nothing to worry about. The Placid HD is powered by a Avel Lindberg 9V (15VA) toroidal transformer. I used the option to run parallel by combining the Black and Orange, and Red and Yellow secondaries to the respective inputs on the power supply.


Placid HD BP – bipolar shunt regulated power supply Back

The Placid HD BP is the same as the Placid HD, with one difference. It is bipolar, meaning that it has one positive and one negative rail. It is set to output +15V DC and -15V DC, both positive and negative sides are shunting about 50mA. The IVY-III consumes less power then the DAC board, so its heatsinks run warm but certainly not anything near 50°C. The Placid HD BP is powered by the Avel Lindberg 15V (30VA) toroidal transformer.

Left: Placid HD BP --- Right: Placid HD


σ11 ("sigma 11") single-rail linear regulated power supply Back

Because of my believes that having dedicated power supplies of each section will improve the overall performance of the DAC I needed another power supply to power all other modules that need 5V to run. For this I choose the “σ11”. It is a beautiful designed very low noise power supply. To set its output voltage you need to know the following: The voltage gain of its error amplifier is determined by the ratio of two resistors (R8 and R10). This gain, multiplied by a zener diode (D5), determines the output voltage of its regulator. I choose to set it to output 5V by not installing R10 and using the LM336BZ-5.0V voltage reference diode. For information on this visit the AMB website. The σ11 is powered by the Amplimo 9V (30VA) toroidal transformer.

σ11 ("sigma 11") single-rail linear regulated power supply


LM317 regulated power supply Back

There is really nothing special about this power small power supply. I didn't even build it myself. It was bought from ebay. It is set to output 7.5V DC for the Arduino and the fan. 

LM317 regulated power supply 

The transformers Back

I won't get into details about the transformer other then I choose the Avel Lindberg transformers because it was easy to order them along with my DAC and they are quite cheap. If I would go for more quality I'd better bought all Amplimo toroidal transformers.


What about that metal sheet?  Back

The copper colored metal sheet that floats above the modules that carry digital signals is acting as a shield against any unwanted effects from outside. I don't have the gear to measure if it serves its function, but if it doesn't it won't do no harm either. It also serves another function. It takes over a lot of heat from the Placid HDs heatsinks and transports it away from them. I noticed that when leaving the metal sheet out the heatsinks run notably hotter.



The fan Back

Logic Fan SwitchAt the back panel I mounted a so called ultra silent fan from Noiseblocker, which is indeed very silent. It can't be heard from half a meter away. The fan is only switched on when the temperature inside the chassis exceeds 40°C, but this has never happened so far. When the temperature exceeds 40°C one of the Arduino's digital output pins go high. This pin is connected to a very small PCB I designed myself. This PCB contains a transistor that is used as a switch for the fan. The fan is powered by the LM317 regulated power supply at 7.5V, just like the Arduino. It can handle up to 12V, but at 12V the fan is rotating at full speed and can most certainly can be heard.

Ultra silent fan 


All very nice, but how does it sound? Back

I don't like to talk to much about how it sounds, because the perception of sound is very subjective. I can only say that it sounds great. I wouldn't write such a large article about this DAC if it sounded like #@%$#!!!


Buffalo III - Inputs/Outputs 


Future plans Back

If somebody would ask me if the build is already finished I could only answer that it is working for now, but it is never finished! There is always room for improvement, so I listed my future plans.

  • Buffalo shield for the Arduino
  • New front plate (CNC machine build)
  • Replace the rotary encoder for push buttons (not entirely sure about this)
  • Ethernet control via PC or Mobile phone
  • Auto standby function after 15 minutes of no music
  • Design my own LCD/DAC control module to get rid of the Arduino




0 #4 Marco 2012-10-31 22:51
Hi Corpius,

Excellent build. If you want and you`re ready, contact me about the controller for the es9018. I`m very interested getting it in a great product...


0 #3 corpius 2012-10-22 23:12
Thank you both!

Your post has been added today because non-registered users where not able to post replies automatically, but I changed that. Now it is possible :-)
0 #2 gwikse 2012-10-20 00:57
Great write up and congrats on a very nice DAC. I hope you can enjoy the music as well every now and then ;)
David Quayle
0 #1 David Quayle 2012-10-10 11:11
Excellent work well done

You have no rights to post comments

You are here: Home My Projects DAC Buffalo III DAC