Home > Arduino, Code > HIFIDUINO for DUAL MONO


NEW (8/26/11) Update in the code section

My first version of the dual mono code did not conform to TPAs dual mono output phase (but works well), where in each mono board the phase of one (side) output is in anti-phase configuration with the other (side) output. My second attempt to be compatible with TPA dual mono configuration did not work either (this version did not work at all).

I think I have fixed the problem in the latest version (v B09g) which should be functionally equivalent to the TPA firmware

Version B09g supports (with simple code commenting/uncommenting):

  • 80MHz and 100 MHz clocks (require for accurate display of sample rate)
  • Stereo configuration
  • DUAL MONO -Official TPA
  • DUAL MONO -In-phase

The code has been tested in stereo configuration and MONO LEFT  (since I only have one BII :-)) and 80 MHz oscillator. I tested both “in-phase” and TPA’s “anti-phase” configuration with a single MONO board. Let me know if there are any bugs since I cannot fully test all the supported configurations.

Why “DUAL MONO In-phase”?

Just as DUAL MONO one-side is in-phase and other-side is anti-phase( TPA configuration) facilitates hooking up two output stages in the official configuration, the DUAL MONO In-phase output configuration facilitates hooking up to “non official” implementations for example:

  • DUAL MONO Single IVY/Legato:  sum up (+ to + and – to -) the outputs of both sides of left MONO board and connect to left channel of output stage and do the same for the right MONO board
  • DUAL MONO Active two way: for each MONO channel board: connect normally with one IVY/Legato.  One channel of the output fees high frequency and the other channel feeds low frequency.


  1. Branko
    August 26, 2011 at 20:09

    Thank you again for building this dual mono version. Due to a water disaster in our bathroom i was nor able yet to test it. But I have seen there are selectable inputs you can name. Does this mean i can use it with a mx to select the inputs (and a how would i connect it?) or have i to change inputs manually?


    • BlogGeanDo
      August 26, 2011 at 22:21

      Yes, you can can control the mux from the code. When you select a particular input, the code sets values for that input and also prints the name of that input. In the code it is a case statement like this:
      switch (value){
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:

      You could for example turn on a pin in arduino that controls a relay.

  2. September 14, 2016 at 16:15

    web design company

  1. No trackbacks yet.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s