I am designing a stack of identical boards that each generate an analog signal. What I am trying to do is take the signal from the board above, mix it with the signal from this board, and then send it down to the next board.

The problem is that the board-to-board connectors need to be through-hole for mechanical support, which means that the output from one amplifier would be connected to the output of the next amplifier if they are all identical designs.

I need a way to alternate the connector pinout from one board to the next, but I would prefer not to design two versions of the board. Is there an elegant way to do that?

  • \$\begingroup\$ Make the two symmetrical board connectors (one for input, one for output), and alternate the boards orientation? \$\endgroup\$ – Eugene Sh. Feb 27 '15 at 22:14
  • \$\begingroup\$ The board connectors also have I2C lines, power, etc. Those connections would then have to snake back and forth along the surface of each board, and each board would have an unpopulated connector for all of those things. It would work, but it seems a little sub-optimal. \$\endgroup\$ – Lombard Feb 27 '15 at 22:18
  • \$\begingroup\$ How are you going to get the connectors on the top and bottom to line up with a through hole connector? You won't be able to put the same pin in the same hole from both sides of the board at the same time. \$\endgroup\$ – alex.forencich Feb 27 '15 at 22:46
  • \$\begingroup\$ Jumpers on the board? Analogue switch ICs to pick which pins to use, configured over i2c? \$\endgroup\$ – pjc50 Feb 27 '15 at 22:55

What kind of analog signal?

One technique that works well is to convert the analog signal to current. You use current sources on each of your boards (a proper current source has very high output impedance) and simply sum all of your currents together onto a common bus.

You receive the sum of all those currents at one location. The receiver can be a proper current-to-voltage converter or a simple resistor.

For what it's worth, most professional audio intercom systems work this way. You can have a hundred or more users on a single intercom line and adding or removing users does not affect the audio level significantly.

The current source that is used for audio intercom systems is usually some variation of the Howland Current Pump (also known as a Howland Current Source). There are many resources available on the web to show you what it is and how to use it.

I first saw this circuit described many years ago in a National Semiconductor app note where it was called a "bilateral current source". I promptly adopted it for the intercom system that I was building for myself at the time. It was quite some time later that I learned of the proper name for the circuit.

The advantage of this system is that the input pin is electrically connected to the output pin. That means that you can stack boards on top of each other and use the same pin to collect the signals from all the boards.

  • \$\begingroup\$ Nice tip! The analog signal is audio; this is definitely be something to look into. I would upvote but I need some more rep! \$\endgroup\$ – Lombard Feb 28 '15 at 2:02

The use of a pair of smd headers would easily solve your issue, as the would be no connection between the layers of the board or connectors. These can be used in conjunction with through hole headers used for the rest of the board.

Alternatively, a 4 pin block of jumpers to allow rerouting of two pins, and alternating a blank pin (breaking or cutting short) on the connector would work as well.

In either case a single board is designed, the change is done in assembly.


All of your suggestions helped me come up with the solution I will use. Since it is highly preferable that the boards are not physically different from each other, and because I want to avoid stress on surface mount connectors (there will potentially be a lot of plugging and unplugging), here is my hybrid solution:

board stack design


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.