• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Reference ABX hardware design and implementation

I can feel your pain ;-) Just spent the last two days on board setup and floor planning, rough placing, also some sub-section routing on this baby (evaluation prototype):
1787174394940.png

.... and that's just (most of) the analog stuff (supplies, analog I/O and ADC&DAC), digital (on the left side) is still missing.
 
Last edited:
There isn't a universal way to connect a balanced output to an unbalanced input with just a cable, as has been discussed at length in several threads. If you don't know the details of the DUT's output stage then the only safe and reliable way is a balanced to unbalanced converter. That could be a transformer (distortion penalty, especially for more affordable transformers) or an active converter before the unbalanced input, which would perform worse than having the same converter as the input.
This is technically true but in practice 99% of gear is going to work just fine (ground issues excepted) so long as pin3/ring is left unconnected. The few exceptions like transformer coupled outputs won't be harmed.
 
This is technically true but in practice 99% of gear is going to work just fine (ground issues excepted) so long as pin3/ring is left unconnected. The few exceptions like transformer coupled outputs won't be harmed.
Well, there are some devices like the Topping D10b balanced DAC which are stripped down to the bone and you need a true balanced input with proper subtraction. Using only one leg gives a lot (~20dB IIRC) of extra distortion, and DC offset.
 
Well, there are some devices like the Topping D10b balanced DAC which are stripped down to the bone and you need a true balanced input with proper subtraction. Using only one leg gives a lot (~20dB IIRC) of extra distortion, and DC offset.
True! But you're not going to fry it. 99% might be an overstatement given the number of SINAD-chasing stripped down outputs these days. Since I own a D10 balanced I should have remembered that!
 
And btw, the multichannel features of KiCAD are killer, on par if not better than Altium's. As are the design block features.
As ever with KiCAD (especially v9 and v10), the features are remarkably solid. On the other hand it suffers from confusing naming, partial or misleading documentation, and baffling UX. FreeCAD's the same! Once you've learned how to drive it it does work though!
 
I can feel your pain ;-) Just spent the last two days on board setup and floor planning, rough placing, also some sub-section routing on this baby (evaluation prototype):

.... and that's just (most of) the analog stuff (supplies, analog I/O and ADC&DAC), digital (on the left side) is still missing.
I see you're using IDC box headers. I"ve been going back and forth between them and JSTs. There are no critical signals passing across the cables for the ABX switcher, just power, digital, GPIO, and non-critical analog (i.e. speaker level sense connections, ASG). Single row JSTs make routing a bit easier, but they are fiddlier to make/procure.
 
I'm slightly torn here. On one hand a single ended output is only a few passives and a connector away from an impedance balanced output. On the other an impedance balanced output won't work fully with a subset of amps with a 'balanced' input like the bridged Schiit Vidar or the Topping B100 as only one side of their bridge will be driven. Would it be viable to design for all three, leaving it up to the builder whether or not to populate for either of the balanced options depending on need?
What I can't do is provide a true balanced output. So strike 1/3

The Vidar specifically bridges its two amplifier channels for mono and relies on the upstream source to provide the normal and inverted inputs. Unless we provide a second, inverted output, not gonna happen. It'll still work, just at roughly one-quarter of rated mono power. Strike 2/3

The B100 is interesting, and @pma reviewed it and found the same thing when driving it from an SE source. The reasons are different though - the B100 is chasing absolute SINAD and makes compromises to get there, while the Vidar is a dual mono design with a questionably cheap input arrangement. Strike 3/3

What I can maybe do—no promises!—is put a matching ~190 ohm resistor before each RCA output sleeve, selectable by a jumper or switch. In principle, that would allow you to use a cable that connected RCA centre to pin 2/tip and RCA sleeve to pin 3/ring for a pseudo-balanced output. The resistor won't be a perfect match but would be within 2 ohms, giving a likely 40dB improvement of common-mode interference rejection for the cases where it works. The compromise would be that it would send traces a long way for a rare use case.

Whether that's an improvement over the usual way of connecting RCA centre to pin 2/tip and RCA sleeve to pin 3/ring and pin 1/sleeve (i.e. a normal RCA-to-TS cable) is dependent on the devices under test, but it is a valid option. It does create a bit more user effort and risk around people selecting the wrong cables, but for the main use of testing a lot of different components I can see the utility.

I'm going to lock in the copper tomorrow, so @KSTR @pma @Armand and others, please provide feedback on this before I do.
 
What I can maybe do—no promises!—is put a matching ~190 ohm resistor before each RCA output sleeve, selectable by a jumper or switch. In principle, that would allow you to use a cable that connected RCA centre to pin 2/tip and RCA sleeve to pin 3/ring for a pseudo-balanced output. The resistor won't be a perfect match but would be within 2 ohms, giving a likely 40dB improvement of common-mode interference rejection for the cases where it works. The compromise would be that it would send traces a long way for a rare use case.
In that case it's probably better for those that need it to put the matching resistor in the cable.
 
I see you're using IDC box headers. I"ve been going back and forth between them and JSTs. There are no critical signals passing across the cables for the ABX switcher, just power, digital, GPIO, and non-critical analog (i.e. speaker level sense connections, ASG). Single row JSTs make routing a bit easier, but they are fiddlier to make/procure.
0.1" dual row IDC shrouded headers + 0.05" ribbon cable is cheap, simple and reliable. I tend to make ever other contact being GND, that allows for a) good GND connection in general and b) provides proper transmission lines for fast digital. You can also plug in since-conductor test/patch cables. If space or height is restricted in production versions I often use MicroMatch.

JST (PH, typically) is nice in special cases when you to want to be able to patch things like flipping lines or fanning out from one connector on one end and two smaller ones on the other but in general I tend to avoid them. It is unusable for high speed digital. The crimping failure rate, even with JSTs official crimp tool, is quite high, many things can go wrong.
 
0.1" dual row IDC shrouded headers + 0.05" ribbon cable is cheap, simple and reliable. I tend to make ever other contact being GND, that allows for a) good GND connection in general and b) provides proper transmission lines for fast digital. You can also plug in since-conductor test/patch cables. If space or height is restricted in production versions I often use MicroMatch.

JST (PH, typically) is nice in special cases when you to want to be able to patch things like flipping lines or fanning out from one connector on one end and two smaller ones on the other but in general I tend to avoid them. It is unusable for high speed digital. The crimping failure rate, even with JSTs official crimp tool, is quite high, many things can go wrong.
This digital isn’t fast, but totally agree on the crimping. I’ll switch back to IDC
 
In that case it's probably better for those that need it to put the matching resistor in the cable.
Oh good point, much better solution. I’ll document the exact value after validation, but should be ~190 ohms
 
As ever with KiCAD (especially v9 and v10), the features are remarkably solid. On the other hand it suffers from confusing naming, partial or misleading documentation, and baffling UX. FreeCAD's the same! Once you've learned how to drive it it does work though!
FreeCad UX and workflow always gives me major PITA. KiCAD, on the other hand, I find conceptually nice to use, and UX is, while not perfect, absolutely OK. I'v spent more than a decade in Altium's ecosystem which is, by now, sort of lagging behind KiCAD in many ways, but still way leading in others. No free lunch, as always.

All PCB CAD packages have the issue of describing connections by name, so choose your names wisely. KiCAD took until version 10 to allow local names for everything, to make building blocks save and reusable.
The point is how good a package is with regard to support tools for naming-related tasks. Since KiCAD has text file format for everything, I often use script-based automated batch replace but the list panel (called "search" for some reason) makes things feasible in KiCAD. Altium has better, more orthogonal capabilites in this regard.
 
What I can't do is provide a true balanced output.
Why? The simple solution with one inverter (tapped from before the breakout resistor) should be easy to do. No-one needs or expects servo-balanced outputs (and they are tough to design when SOTA specs are required).
 
I'm going to lock in the copper tomorrow, so @KSTR @pma @Armand and others, please provide feedback on this before I do.
Uhm, I'm on a busy road trip from tomorrow morning until Sunday night, so I won't be able to check and comment.
 
The B100 is interesting, and @pma reviewed it and found the same thing when driving it from an SE source. The reasons are different though - the B100 is chasing absolute SINAD and makes compromises to get there, while the Vidar is a dual mono design with a questionably cheap input arrangement. Strike 3/3
My tests are here

and here

The later shows that XLR input is in fact not balanced, it uses 2 identical paths to drive the bridged amplifier circuit. When it is driven to one half as in case of RCA-XLR adapter, it gives only 1/4 maximum output power. Such design is heavily compromised and non-standard.
 
What I can maybe do—no promises!—is put a matching ~190 ohm resistor before each RCA output sleeve, selectable by a jumper or switch. In principle, that would allow you to use a cable that connected RCA centre to pin 2/tip and RCA sleeve to pin 3/ring for a pseudo-balanced output.
I never liked that "solution" and it didn't work as expected in many cases.
With that scheme you are at high risk of creating a large common-mode voltage the receiver has to handle, and when the receiver is designed to have large common-mode input impedance (via bootstrapping) you may end up maxing out the common-mode range.
Much better is to use a proper RCA to XLR adapter at the source end, so that the shield is not part of the signal path and any shield current does not cause any harm. Then you also almost never need the impedance-balancing resistor because there is so little common-mode voltage. It still good to have it, but no deal breaker when not using it.
With the other scheme the matching of this resistor is uber-critical. Just think of the bridge circuit that is formed and assume large CM voltage (as the current induced by the CM voltage has no other way to flow than through the input resistors).
The downside is the stronger GND connection that may now create some higher shield current on the unbalanced inputs, creating more hum/buzz there.
 
Why? The simple solution with one inverter (tapped from before the breakout resistor) should be easy to do. No-one needs or expects servo-balanced outputs (and they are tough to design when SOTA specs are required).
I didn’t mean it was technically difficult, just not reasonable to implement given the already invested effort in the current single ended board from a layout POV. I’d rather meet the SE design goals first.
 
Adding to previous post. There is only one type of circuit that handles all cases gracefully. It's input (and input circuitry supply reference) comes from the input GND, and likewise the output (and output circuitry supply reference) comes form the output. The CM voltage difference is handled internally where there is full control over the situation. In the extreme case one may use a good transformer for that, for fully galvanic isolation. But a precision diff (using the resistors from the INA1620) is the next best solution.
 
I didn’t mean it was technically difficult, just not reasonable to implement given the already invested effort in the current single ended board from a layout POV. I’d rather meet the SE design goals first.
Agreed. One could provide means for installing a small piggy-back extension PCB for this, though. A 2x4 pin-header socket or similar.
 
Back
Top Bottom