advertisement


Buffalo II - Assembly for the Electronically Bewildered part III

Before dual mono I had all the dacs on the left side of the buffalo in parallel with jumpers under the board, like wise with the right hand side.

Just from my memory, when I went dual mono I made a jumper cable to connect the left side to the right side and set define dual mono, so both sides in phase.

I will have to check the code again Tony, i was messing arround with it quite a bit...
 
It will be in part II or part one of this thread if your feeling brave enough for clicking through.
Just looked at the beginning of this part III and I was already dual mono.

I was clicking like hours forth and back...couldnt find issue like this.
Will give it a go and click the second part through, side by side post by post :D
 
Thanks Tony!

it seems, looking at the jumpers, you have all 8 DACs in phase, connecting + to + and - to -

Will try to go the same way, using all dacs in-phase. Going skip the TPAPHASE and all that crossing

Best regards

Tomasz
 
there is no joy :/

I connected all DACs like they are in phase (not TPAPHASE), exactly the way you did Tony, but there is just no sound at all...nothing! I dont get it really!

In HiFiDuino code DACs are set to phase like this:

writeSabreReg(0x0D,0x00); // DAC in-phase
writeSabreReg(0x13,0x00); // DACB anti-phase

Here comes the question what DACB is?

and the description about possible settings:

Register 13 (0x0D) DAC polarity
In-phase: 0x00 (all 8 channels) (D)
Anti-phase: 0xFF (all 8 channels)

Register 19 (0x13) DACB polarity
In-phase: 0xFF (all 8 channels)
Anti-phase: 0x00 (all 8 channels) (D)
1256 In-Phase; 3478 Anti-Phase: 0x33
1256 Anti-Phase; 3478 In-Phase: 0xCC
 
I never had a need to mess with the code it just worked, other than I changed the screens for an 80 character display.

Change
//define DUALMONO
//define TPAPHASE //Reverse phase of even and odd DACs

To
define DUALMONO
//define TPAPHASE //Reverse phase of even and odd DACs

Set the jumper on the right channel Buffalo to use address 2
Common all the DACS on one each board, DACa's to DACa's and DACb's to DACb's
Likewise common the other Buffalo


Reboot the DAC and the Arduino,

Can't remember if there was a
Define STEREO which needed commenting out to
//Define STEREO
 
I just cant get the thing working :/

I have checked the code, and all is fine (like in original hifiduino code), but onece i put the 8 DACs together, there is no sound, just silence.

I can connect 4 even DACS and 4 odd DACS and they work fine. I can also swap red-yellow-blue to blue-yello-red...still working....but only with 4 DACS :/

im getting crezy

20150202_162744.jpg
 
OK were both missing something basic here, the penny will drop sooner or later.

So what we know.
1. The Buffalo does work.
2. Your Buffalo links look fine.
3. Buffalo left side or Buffalo right side side works.
4. Both sides connected together don't work.
5. Swapping red and blue links would make no difference other than both Buffaloes should be the same.

Makes me think the Arduino code is not setting the Buffalo registers to Dual mono, so one side cancels the other.

Can you post your Arduino code around the point where Dual mono is selected.

I have a suspicion your board is in stereo mode.

If it is you could check by clipping out the Buffalo yellow and green and connecting just one Buffalo to your Legato as a standard single Buffalo single Legato.
IE back to how it was but with what you think is Dual mono Arduino code, then see if you have stereo sound, which of course you shouldn’t.

Take your time, the Sabre is sensitive to cock-ups.
 
Tony, thanks a lot for your help, I appriciate that a lot.

So, i have made some more tests as you suggested.

1. I put one of the mono buffalo in standard way to check if its mono and just one channel was playing, so its fine.

2. I put two buffalos in dual mono way and have prooved again both boards.
- First i tested the left buffalo even dacs and it plays as mono left, then the same with odd dacs from left buffalo, it plays again as mono left.
- I have repeated the same for right buffalo, again even and odd dacs are playing as mono right.

So...
- the right buffalo is set correctly to the right channel and works as mono right
- the same left, all 8 dacs working correctly as mono left

-What i couldnt check is if the dacs of each buffalo are in phase or anti phase, BUT, as i said i gave tried to connect even and odd DACS either way, i.e.: + to +, - to -, and + to -, - to +. Neither way it works.
I have also tried to connect all briged DAC both ways to Legato...again, no joy!

Im getting crazy, i cannot see anything i could possibly made wrong, there are anyway limited possibilieties and i think i tried all of them.

Now, knowing that buffalos registries are correctly set to mono it makes me only think, that i could have the voltage offset on legato balanced out and my ncore doesnt accept it...muting the sound! Could that be?

Best regards

Tomasz
 
Just digesting as I had a little mither with a regulator and me heads smokin!

But it doeas look like the buffaloes are in mono, if its not gone true phase and stuck in tpa phase you could swap your green and yellow at one side only. I think you already tried this. I would actually worry about this right now in case it causes damage.

Could be a Legato thing in that case.

Just thinking aloud here, try 2 odd dacs in parallel with 2 even dacs so the current drive to the legato is the same as standard stereo.

We could sure use another voice here!
 
Hi Tony,
I was thinking of using 2+2 dacs as well, will try it at home.
Hope buffalo will survive all that tests

I will also measure the dc offset on balanced out.
Is there a way to proove the signal phase with no scope?

Best regards
Tomasz
 
I have made some test just as you suggested Tony,

Here is what i found out:
First, i put 2 odd and two even dacs together. It works, but in mode different than 6 bit true the sound is distorted

Well, at least i know all 8 dacs are in phase. Just to proove it i connected them in cross way, like tpa. Plus to minus, minus to plus and there ware no sound.

I have tried then working configuration and put 3 even and 3 odd dacs together. The sound was there but it was distored and noisy in the background in all quantitizer settings, 6bit to 9 bit.

I have put then all 8 dacs together and again no sound, no matter what settings.
I have measuered DC offset on balanced out and it was fine, like 2mV

So, i think that shows, the software is fine and all dacs are in phase.
I have my legato in mono mode, with no jumpers 1-4 and two power supplies. The headphone/single ended stage is not powerd on, i put the power supplies just on left and right balandpced stages...
Looks like this:

image.jpg


...no idea what can be wrong, both channels are actong the same way.

Tomasz
 
Just checking you did not mess with any of this
|1| | | | | | | | Mono Right (if set for MONO)
|0| | | | | | | | Mono Left (if set for MONO) (D)
| |1| | | | | | | OSF (Oversample filter) Bypass
| |0| | | | | | | Use OSF (D)
| | |1| | | | | | Relock Jitter Reduction
| | |0| | | | | | Normal Operation Jitter Reduction (D)
| | | |1| | | | | SPDIF: Auto deemph ON (D)
| | | |0| | | | | SPDIF: Auto deemph OFF
| | | | |1| | | | SPDIF Auto (Only if no I2S on pins) (D)
| | | | |0| | | | SPDIF Manual (Manually select SPDIF input format)
| | | | | |1| | | FIR: 28 coefficients (D)
| | | | | |0| | | FIR: 27 coefficients
| | | | | | |1| | FIR: Phase invert
| | | | | | |0| | FIR: Phase NO invert (D)
| | | | | | | |1| All MONO (Then select Mono L or R)
| | | | | | | |0| Eight channel (D)

You just moved one remark from one line to another?

Ill have a look at the Legato drawing tonight.
 
So, i think that shows, the software is fine and all dacs are in phase.
I have my legato in mono mode

This may not necessarily be a true statement as just one left (odd) DAC and one right (even) DAC should produce a good sound.

OK I’m clutching at a straw here but I would like to see the exact lines of code you changed.
 
Hi Tony,

you are probably right with the settings of register 17. I was actually checking it couple of times, but will have to see again.

I have also found similar issue on twistedpearaudio, where the solution seemed to be switches settings (which of course doesnt work in my case)

..."SW 2 - 3 set to off will only work when you are feeding it left justified. please set SW2 - 4 to OFF for dual mono selection. Unless your BIIIse is actually a BIII of course"
-----------------------------------------------
the reg17 is set to 0x9D which is 10011101 in binary notation (means SW 2 - 3 off)
---------------------------------------------
#ifdef DUALMONO
byte reg17R=0x9D; // Auto SPDIF, MONO RIGHT CHANNEL, other defaults. Used for reg 17 right only
#endif DUALMONO
--------------------------------------------
then at start, the bit 0 is set again to 1 (mono)
--------------------------------------------
#ifdef DUALMONO // DAC registers default to stereo. Set to MONO L/R for dual MONO
bitSet(reg17,0); // Set for MONO
writeSabreReg(0x11,reg17); // Sets both chips to MONO
#endif DUALMONO
-----------------------------------------------

Register 17 (0x11) (MC5)
|1| | | | | | | | Mono Right (if set for MONO)
|0| | | | | | | | Mono Left (if set for MONO) (D)
| |1| | | | | | | OSF (Oversample filter) Bypass
| |0| | | | | | | Use OSF (D)
| | |1| | | | | | Relock Jitter Reduction
| | |0| | | | | | Normal Operation Jitter Reduction (D)
| | | |1| | | | | SPDIF: Auto deemph ON (D)
| | | |0| | | | | SPDIF: Auto deemph OFF
| | | | |1| | | | SPDIF Auto (Only if no I2S on pins) (D)
| | | | |0| | | | SPDIF Manual (Manually select SPDIF input format)
| | | | | |1| | | FIR: 28 coefficients (D)
| | | | | |0| | | FIR: 27 coefficients
| | | | | | |1| | DPLL: Phase invert
| | | | | | |0| | DPLL: Phase NO invert (D)
| | | | | | | |1| All MONO (Then select Mono L or R)
| | | | | | | |0| Eight channel (D)

---------------------------------------------------
plus there are some another regs set at start
---------------------------------------------------
bitSet(reg10,0); // Set bit zero for reg 10: Mute DACs
writeSabreReg(0x0A,reg10); // Mute DACs. Earliest we can mute the DACs to avoid full volume
setSabreVolume(currAttnu); // Reg 0 to Reg 7 Set volume registers with startup volume level
writeSabreReg(0x0D,0x00); // DAC in-phase
writeSabreReg(0x13,0x00); // DACB anti-phase
writeSabreReg(0x25,0x00); // Use built in filter for stage 1 and stage 2
writeSabreReg(0x0E,reg14); // Reg 14: BuffII input map, trueDiff, normal IIR and Fast rolloff
// Reg 14: except BuffII input map setting, the others will be
// redefined.
---------------------------------------------------

So, basically my code for register settings is exactly like the original one of hifiduino. I was changing mostly user interface, but will check it again on weekend.

I will have to dig a bit in integration guide to see how to set that thing to work in mono properly.

I think you are right, that i was wrong with saing its not software ;) I just have to dig a bit deeper.

This stuff is crazy, I just wanted to get good DAC and all i am doing is soldering and coding all the time, not even using my stereo to hear the music, but computer and headphones :p ...at least i could get lately very good priced grado RS1, so i can enjoy the music properly.

Regards from Tomasz
 
i skipped this one

#ifdef DUALMONO
// If dual mono write also to the other chip.
writeSabreRightReg(regAddr, regVal);
// Set the right chip (addr 0x49) to be the right channel
reg17R=reg17;
writeSabreRightReg(0x11, bitSet(reg17R,7));
#endif DUALMONO

reg17, last bit set to 1 - ALL MONO
 
I did not touch any of the code you have listed,
You have changed some of that?

The change for dual mono is elsewhere.
 
Neeee...i have changed nothing in registry setting, just uncommented the

Define DUALMONO

But, im using buffalo III not the IIIse...hope it makes no difference
 


advertisement


Back
Top