In many hardware projects it would be nice to have the freedom to switch between vendors easily, mainly microprocessors and microcontrollers.

I can see many reasons for wanting to have this freedom, one of them being the ability to easily switch to a cheaper company if one company decided to jack their prices up. Another situation is when a designer decides to change the project in a direction that the old microcontroller just can't handle, I can see this happening within a company that is trying to reuse hardware modules.

Is there any way of designing hardware to be modular enough to easily switch out these core components? What are the issues with designing this way?

  • 2
    \$\begingroup\$ IMHO choosing hardware components for OSHW is analogous to choosing the programming language(s) to use for OSSW. You don't write your program to be independent of any programming language - you restrict it to the one it either works best in or you are best at programming in. For hardware you use the components that are most suited to the task and easily available. The "open" side of it is more to do with the sharing of ideas and giving other people the ability to take your designs and ideas and adapt them to their own ends. \$\endgroup\$
    – Majenko
    Aug 16, 2011 at 9:52
  • 1
    \$\begingroup\$ The multi-platform side of OSSW is merely a by-product of the software being "open". You mis-understand the meaning of "open". "Open" doens't mean it's able to run on any platform, or be built from generic parts from any vendor. "Open" means it can be shared, used and adapted by other people. It has nothing to do with the genericicity of the product. \$\endgroup\$
    – Majenko
    Aug 16, 2011 at 9:56
  • 1
    \$\begingroup\$ @Matt, I think you make a great point on what 'open' means, but IMO the hardware would be more open with second+ sources. \$\endgroup\$
    – kenny
    Aug 16, 2011 at 11:17
  • \$\begingroup\$ @kenny it wouldn't be any more open. It would be more "accessible", and more "generic" - more "flexible" maybe. Easier to implement, yes. Not more "open". That's like saying a box is "more open" because you haven't said what thickness the lid should be. Either it is open or it isn't. Yes, there are different levels of "open", but that is purely down to licensing - not down to what hardware you choose. \$\endgroup\$
    – Majenko
    Aug 16, 2011 at 11:44
  • \$\begingroup\$ I have edited the question a lot. I have removed the open-source aspects of it since they seemed to be causing some argument. I think the reworded question will hit at the same point just from a different approach. \$\endgroup\$
    – Kellenjb
    Aug 16, 2011 at 12:19

3 Answers 3


There is no formal or 'only right' answer to this, but sensible guidelines can be suggested. These are essentially the same as a designer would seek to comply with if developing a product intended to have a long lifetime, international multi country manufacture and a desire for no design changes.

I've gone beyond just silicon as if you want to make your product buildable anywhere on earth & long term there are more issues than just the silicon.

In all of this a good working crystal ball and perfect 20-20 hindsight helps.

There is some redundancy and even contradiction here. The aim are guidelines which are each considered on their merits rather that a set of hard and fast rules. For example - the first two suggestions have purposefully been chosen to somewhat contradict each other as an example. These are all "out of my head" and on the fly - if I think of more I'll add them. Criticism welcome via comment system.

  • Use only multiple vendor sourced parts.

    This would tend to eliminate anything from eg Maxim who make superb products but who are frequently the sole source. They are also far from reliable in supply to other than larger customers.

  • If using single sourced parts choose only vendors who have a solid history of maintaining old parts in stock for decades and/or who provide 100% backwards compatability between newer and legacy parts. Applies more to eg microcontrollers than AND gates.

    A supplier who does very well at this is Microchip. You can (probably) still buy 16C16's.

    A supplier who does badly at this is Atmel. This does not make them bad per se - just bad for this purpose. Old parts are taken out of production quite rapidly. Backwards compatability is not apparently a priority.

  • Consider avoiding parts which are or are likely to be restricted in availability by regulations. A notable example is USA's ITAR which effectively classifies various components as if they were munitions and regulates or prevents their export from the US. I am informed that some manufacturers of certain niche products (eg European satellite systems) make every effort to avoid componentry which is or may be ITAR entangled. If a consistent internationally produced product is required then this may involve using parts from eg European sources in the US.

  • Use parts which have potentially long lifetime families and which are part of formal or informal standards. eg the ARM processors offer a generic processor base which would allow a subset of parts to be chosen which have a good chance of being widely available and for a significant period,

  • Choose logic families which are liable to remain mainstream or to be likely to offer backwards compatible families.

  • For systems where it is not utterly essential that they be leading edge, highest performance, highest density, ... do not make them so. Today's leading edge gee whizz system can be tomorrow's bad idea. Cooling, reliability, longevity, quality, ... are not necessarily comfortable companions of the latest and greatest. But, they may be. Choose sensibly.

  • Use industry standards where applicable.

  • The following is more about longevity than long term buildability, but ...:

    Do due diligence diligently.

    Use reputable manufacturers who know their stuff, produce quality product invariably, provide good data sheets with accurate and detailed information.

    Identify component groups that have longevity issues and design accordingly. eg wet electrolytic aluminum caps.

    If you don't use Panasonics caps know why not.

    If you don't use LEDs made by or licensed via the 6 or so major makers know that you've got it wrong.

    Don't use tantalum capacitors (yes, I know).

    Be aware of potential issues of technologies. eg LiIon vent with flame and calendar life. Beryllium ceramics die in pain. Tin whiskering.

    When designing, understand maximum versus typical ratings (or minimum versus typical) - and realise that what usually works is not guaranteed to always work. Understand absolute max versus recommended max operating - and realise that what is guaranteed to survive is not guaranteed to operate. Design for manufacturers worst case specs. And then some.

    Never allow protection diodes to conduct more than a few microamps (if that) under normal operating conditions. Realise that allowing protection diodes to conduct may produce no observed bad results ever - but may cause heartache and problems beyond imagining just as easily.

    Buy batteries of any technology only from manufacturers and vendors whose capabilities, integrity and bona-fides are known beyond question. Test them anyway.

    Understand what aspects of electrostatic protection are marketing hype and which are necessary. Know that unprotected LEDs care more than almost anything.

    Understand solder.

  • 2
    \$\begingroup\$ "Do due diligence diligently." I love that line. \$\endgroup\$
    – Kellenjb
    Aug 16, 2011 at 13:15

For parts such as micro-controllers, CPLDs/FPGA, data converters, etc where different manufacturers produce similar but not drop-in-compatible offerings, you can try to limit the cost of changing by doing several things:

  • Try to compartmentalize the uniqueness to a portion of the board and just a few source files in the software that do low-level peripheral interaction (the later can be useful also if you want to build a version of your code for a desktop PC with simulated peripherals, something that's often extremely useful if your hardware is late or you need to let those who don't have it evaluate software ideas)

  • Avoid depending on really unique vendor-specific features and extensions - not just hardware but toolchain as well.

  • Document any unique properties on which you rely ("this chip has a Vih compatible with the lower voltage driver"), or any odd things you do to work around unique bugs, so that anyone making an adaptation to different chips can take this into account up front and not rediscover it after a week of putting head-level dents in a cubical wall.

Obviously, abstracting things out to generic interface and avoiding unique features does limit the degree to which you can optimize a design to take fullest advantage of a given chip. That's a judgment call based on the need for best performance vs. the likelihood of needing to change out one of the parts quickly.


These days it is very hard to find second source chips that are drop-in compatible.

CPUs: It used to be that various manufacturers had agreements with other mfgs to be a second source. That's how AMD got started back in the early 80's making Intel CPU's. This is not done today. You can find some ARM and 8052 CPU's made by several different companies but they are not usually drop-in compatible. Other than that, you're out of luck-- especially with the mainstream chips.

RAM: You can still find some pin compatible ones.

Flash: While rare, pin compatible flash chips do exist. It's harder with NOR flash than NAND, and easier with SPI flash that parallel flash. There will be small software differences for programming the flash.

CPLDs: There used to be pin compatible versions out there, but I haven't seen any in the past 10 years.

FPGAs: Forget it.

Voltage Regulators: You might find a second source for the simpler chips, but not so much for the more modern and complex chips.

  • 1
    \$\begingroup\$ I think you're being a bit pessimistic here. There are several vendors of pin-compatible ARM chips, RAM and FLASH have standard packages, and a lot of linear regulators also come in pin-compatible packages. You just have to be careful in your selection! \$\endgroup\$ Aug 16, 2011 at 14:11
  • 2
    \$\begingroup\$ @Kevin Vermeer I respectfully ask that you give examples of pin-compatible ARM chips from different manufacturers. I'm not saying that they don't exist, just that they are rare and probably not a chip you'd want to use anyway. I did say that there are 2nd sources for RAM, and some Flash. And I would categorize a linear regulator as a "simpler chip" that you can find 2nd sources for. \$\endgroup\$
    – user3624
    Aug 16, 2011 at 14:43
  • \$\begingroup\$ Initial checks indicate that most of what I remembered seeing was the same manufacturer with pin-compatible processors from different lines - Ex. AT91SAM7 <-> AT91SAM3 (Atmel's ARM7TDMI <-> Cortex-M3 lines) are compatible. This doesn't solve the problem at hand. Will keep looking \$\endgroup\$ Aug 16, 2011 at 18:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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