17
\$\begingroup\$

I'm working on a development board, and need to let users set some configurations.

It will be used by students and engineers who are trying to build circuits on a breadboard; I'm not dealing with consumers. Usually, the settings will stay the same, but it's possible that every new project could use a different configuration.

I will be dedicating some pins to interfaces like USB and Ethernet, but I'd like to give users the option of using those pins for a different purpose. Some kind of configuration will be required. The options I've considered so far are:

Solder bridges:

0-ohm resistor
Either 0603 resistor packages to allow 0-ohm resistors to be used, or nearby pads for a solder blob.
Pros:

  • Cheapest option possible
  • Smallest PCB area required
  • No accidental changes
  • Customizable by soldering directly to pad

Cons:

  • Requires soldering iron to make changes
  • Possible to damage board with repeated soldering/desoldering
  • 0-ohm resistors require having those parts on hand.

DIP switches:

alt text
Tiny mechanical switches in an IC package.

Pros:

  • Easiest to change
  • Fairly durable

Cons:

  • Most expensive option by far
  • Might be changed by accident
  • Large area on PCB
  • Lowest current of the options
  • Hard to make changes to PCB

Pin Jumpers

pin jumper for IDE hard drive
Removable Jumpers for .1" headers like those found on PC motherboards and drives.

Pros:

  • Less expensive than DIP switches
  • Easy to make changes to PCB
  • Good balance between easy-to-change and semi-permanent
  • Easy to see configuration

Cons:

  • Large PCB area required
  • Tallest profile; usually .5" or so required vertically
  • Jumpers might be lost

Electronic Bus Switching

TI SN74CBT3384ADBQR
Use FETs or a bus switching IC like the TI 74CBT series, and control with an EEPROM/microcontroller. Suggested by Brian Carlton.

Pros:

  • Small PCB area
  • Configurable in software
  • Can put both to High-Z or connected

Cons:

  • Requires another couple ICs; medium cost.
  • Less current than other options
  • Has real resistance
  • Can now confuse hardware bugs with software bugs and vice versa

The solder bridge option makes me worry about weakening the pad with repeated resoldering and delaminating it from the PCB. How many times can a good soldering tech change a part on 1-ounce copper with an ENIG finish? Would covering the edges of the pad with soldermask and adding thermal reliefs (for adhesion, not heatsinking) on several sides of the pad increase the durability?

Am I missing anything? What configuration methods do you like to use on a dev board?

\$\endgroup\$
  • \$\begingroup\$ Aren't jumpers 0.1" by 0.2", and DIP switches 0.1" by 0.4"? The one advantage that DIP switches might have is that it's probably more convenient to use SMT versus TH. \$\endgroup\$ – Nick T Jan 4 '11 at 19:16
  • 1
    \$\begingroup\$ With proper technique, you can change a part on a circuit board unlimited times. With poor technique (iron too cold) you can't change it once without damage. \$\endgroup\$ – markrages Jan 4 '11 at 19:24
  • \$\begingroup\$ Unlimited times? Hmm, maybe I have to turn my iron up. Is 375C adequate for most jobs? \$\endgroup\$ – Kevin Vermeer Jan 4 '11 at 19:28
  • 1
    \$\begingroup\$ @Mark - The same way water dissolves sugar; it's just slower and only happens at high temperatures. ENIG boards loose their gold coating after as little as 3-4 soldering/braid cycles. \$\endgroup\$ – Kevin Vermeer Jan 4 '11 at 20:38
  • 1
    \$\begingroup\$ don't forget signal integrity. You mentioned ethernet/USB so some signals may be high speed and the various options will impact the trace's characteristic impedance which may cause problems. \$\endgroup\$ – Mark Jan 4 '11 at 23:08
14
\$\begingroup\$

For straight-up development boards (for your internal use), I go with a solder jumper or put two back-to-back (3 pads) to make an SPDT switch (here's a footprint I use). If it's small enough, it's fast to both close and open with a touch of solder or desolder braid. Using an actual resistor makes it much more difficult to rework with a standard iron.

If this is a product (as in, the Atmel STK500 development board is a product), you should use something like jumpers or DIP switches, because you don't want some dumb user poking around your board with a 1000°F iron. I'd tend towards DIP switches if you have more options or you are going to put it in an enclosure, otherwise jumpers would be cheaper.

The main question should be "is this something that will be changed as part of normal use?" If the answer is yes, requiring a soldering iron and skills is inappropriate. If it's something that an end user might modify 1-5 times (or preferably someone skilled, e.g. a lab tech), a solder jumper might be OK.

\$\endgroup\$
  • 1
    \$\begingroup\$ This is a development board; it will be used by students and engineers. That doesn't mean that they're all good with a soldering iron, though. How many times can you flip that solder-blob SPDT switch before the pad comes up? \$\endgroup\$ – Kevin Vermeer Jan 4 '11 at 19:26
  • 1
    \$\begingroup\$ @reem, I think you bring up the main point; if changing this is something that is going to be expected as part of normal use, a solder blob is inappropriate. Updated my answer. \$\endgroup\$ – Nick T Jan 4 '11 at 19:38
  • \$\begingroup\$ If it's for students purpose, leave it at jumpers. I think you can expect those people are qualified enough to figure out how to place the jumper, where, etc. I think a DIP switch is too fancy/expensive. Soldering is inpractical. If you want to change a setting you 'should' unplug the board and rework it in the solder lab. For me: Solder for one time configuration, jumper settings for adjustment in a particular testcase, DIP switches if it requires some user interfacing. \$\endgroup\$ – Hans Jan 4 '11 at 19:51
  • \$\begingroup\$ You had the best answer overall, so I gave you the check, but I actually am going to use Brian Carlton's answer for the configuration stuff and 5016 resistor networks for the configuration (since I want a few dozen ohms anyways to slow down the edges and stop ESD events) \$\endgroup\$ – Kevin Vermeer Jan 6 '11 at 0:18
6
\$\begingroup\$

I've grappled with this question a few times myself. Clearly, there is a time and a place for all of these techniques. That being said, there are no hard and fast rules or conventions I know of that are standardized (or even necessarily broadly agreed upon). My take is:

  • The solder-bridge/0-ohm technique is appropriate for building in an "option" into a board that is "supported" but not the typical use case. This is often called a "population option" so the idea is generally you either add the bridge once or not at all. It's not typically used for settings that change more than a couple times. An example might be an alternative signal routing through an optionally populated transceiver.
  • The jumper/header technique is appropriate for situations where you want to be able to "break-in" to a signal, or for a very few "this-or-that" type settings. Also, think of using this when the setting changes infrequently. Example maybe a current probe break-in point or a "voltage select" setting.
  • The DIP switch technique is appropriate for configuration settings that may change often and require a beefy/permanent user interface. Example maybe "address bits" for an IC.

Again, not an authorative answer, but my opinion / rules of thumb.

\$\endgroup\$
3
\$\begingroup\$

How often will it be changed? If only very occasionally or even just once then a solder pad is fine. If you expect it to be changed often I would go with the dip Switch. The jumpers are somewhere in between.

\$\endgroup\$
  • 1
    \$\begingroup\$ It will be changed about one time for every project or breadboard job (assuming no mistakes are made). New source code has to be written, and new circuits built on the breadboard before you'd want a new design. \$\endgroup\$ – Kevin Vermeer Jan 4 '11 at 20:40
3
\$\begingroup\$

Don't use DIP switches for something going out of house. Users will change them.

I would put solder holes for jumpers, but only install them on the prototype if you are changing them frequently. But for what you describe (i.e. board variants) I would go with putting the settings in your EEPROM -> can set in software, less area.

\$\endgroup\$
  • 1
    \$\begingroup\$ Sorry, maybe I wasn't clear enough. It is going to other engineers and developers, so changes are good. \$\endgroup\$ – Kevin Vermeer Jan 4 '11 at 22:42
  • \$\begingroup\$ I like the EEPROM idea; maybe connect something like this bus FET switch from TI? I've added it to my list, thanks for the idea! \$\endgroup\$ – Kevin Vermeer Jan 4 '11 at 22:53
3
\$\begingroup\$

Solder pads are out. Just say NO. You absolutely do not want to force anyone to use a soldering iron in order to be able to use your board, EVEN IF they are good with a soldering iron.

The EEPROM/FET idea is also not a good idea, because it is not readily observable. What is the state of that FET? You need a SW suite to find out, and maybe that is not enough: what if something funky happened between what you told SW you wanted and what actually happened at the FET?

So your choices are DIP switches or pins and jumpers. You could also do pins with a wire wrap gun. I would slightly prefer the DIP, but take your pick. Any of these three is miles better than solder/SW.

\$\endgroup\$
  • 2
    \$\begingroup\$ I understand your points, but I think you're ignoring opposite arguments (size and cost). There are always tradeoffs. \$\endgroup\$ – Kevin Vermeer Jun 16 '11 at 21:10
2
\$\begingroup\$

For things which only need to be changed "one way" [i.e. changed once but not changed back], I've sometimes seen boards with a physical wire soldered between two points and marked for cutting. That's may only work well for through-hold boards, but with the right placement equipment it might work with reflow. (I've seen through-hole resistors reflowed by using a cutout under the resistor body so the leads would sit flat on the board; if the jumper wire would stay in place during reflow I wouldn't see any reason it couldn't work).

\$\endgroup\$
  • \$\begingroup\$ also break-off tabs, and drill-out vias are zero-part options for single-use configuration switches. \$\endgroup\$ – Jasen Nov 18 '18 at 0:55

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.