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:
Either 0603 resistor packages to allow 0-ohm resistors to be used, or nearby pads for a solder blob.
- Cheapest option possible
- Smallest PCB area required
- No accidental changes
- Customizable by soldering directly to pad
- Requires soldering iron to make changes
- Possible to damage board with repeated soldering/desoldering
- 0-ohm resistors require having those parts on hand.
Tiny mechanical switches in an IC package.
- Easiest to change
- Fairly durable
- 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
Removable Jumpers for .1" headers like those found on PC motherboards and drives.
- Less expensive than DIP switches
- Easy to make changes to PCB
- Good balance between easy-to-change and semi-permanent
- Easy to see configuration
- Large PCB area required
- Tallest profile; usually .5" or so required vertically
- Jumpers might be lost
Electronic Bus Switching
Use FETs or a bus switching IC like the TI 74CBT series, and control with an EEPROM/microcontroller. Suggested by Brian Carlton.
- Small PCB area
- Configurable in software
- Can put both to High-Z or connected
- 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?