Thoughts on Open-Source Hardware
As open-source hardware (OSHW) has become more prominent over the past five years or so, I have heard questions about where I or Pololu stand on the subject. Most recently, I got into a bit of a discussion with Phillip Torrone of Make and Adafruit on one of his blog posts, and his questions and subsequent interview pushed me to try to organize some of my thoughts about OSHW. Because there are many aspects to OSHW, I don’t have a simple conclusion like, “It’s great!” or “It’s the future!” or “Pololu will never release an OSHW product.”. I am skeptical of some of the claims by OSHW proponents and of the significance of the more organized aspects of the OSHW movement. However, what is going on is very significant to me because it affects Pololu’s business and involves issues I care about a lot, such as freedom, creating things, and education.
Since I will be making claims and speculating about the motives of others, I should start by giving you some idea of my background so you can better judge my biases and honesty. Without any significance to the order, here is some information about me and Pololu in three general categories: my knowledge of OSHW, business and OSHW interaction, and personal philosophy.
Knowledge of OSHW issues
- I have not followed the OSHW movement carefully. Now and then, I read some article about it and look at the comments.
- Most of my impression of OSHW comes from a few companies that are involved and that are similar to Pololu, such as Sparkfun, Adafruit, and Parallax.
- I have read only a few OSHW licenses or definitions, and I do not know whether they were initial proposals or are widely used and accepted.
- I know little about copyright, patent, and other intellectual property law, especially outside the US.
- I do not know much about open-source software.
Business-related conflicts of interest
- Pololu products are used in several OSHW projects.
- Several OSHW products compete with Pololu products.
- OSHW-related companies like the ones I listed above tend to be Pololu competitors, suppliers, and distributors. I am sometimes annoyed or disappointed in some details of how they do things, but I think they make the world better and are operated by hard-working people with good intentions. Plus, I prefer to be on good terms with them, so I am less inclined to criticize them publicly.
- I have very little knowledge of Pololu customers and what they do; I know anecdotally that some Pololu customers like OSHW and some dislike it. I have no clue about what any particular stance on OSHW will do to customers’ impression of Pololu. I prefer for them to think Pololu is great.
Personal beliefs and biases
- My work and my life should not be separate and both should be a manifestation of my personal values.
- After working on understanding and presenting my values for most of my life, I’m still working on it. The most important things to me are, in order: truth, the human individual, and beauty. For the purposes of this discussion, valuing truth leads to valuing dissemination of knowledge, valuing truth and the human individual require valuing personal freedom and justice, and valuing the human individual and beauty imply valuing creation.
- I want to be awesome. I want to make the world a better place. I want to earn the admiration of people who know me, but I do not necessarily want a lot of people to know me. I would rather be in a cool world where I can contribute little or get little credit than to contribute a lot or get a lot of credit in a crappy world.
- I want to make stuff for $10 that I can sell you for $100 that will have $1000 of value to you.
- Very few creations succeed because of a great idea; most great creations depend on many good ideas and attention to many details.
- Intellectual property is not a morally valid construct. This is a big topic of its own, but I’ll try to briefly present my perspective. My father escaped from communist Czechoslovakia when he was eighteen; he instilled in me a love of freedom. I think a lot of the problems in the world come from people thinking it’s okay to force others to do things, especially when that force is coming from a democratic society. Physical property must be protected since exclusivity is inherent in physical things (I no longer have something if you take it from me) and the rights to the result of your own work are fundamental to basic freedom. That is not the case with intellectual property: the primary purpose of that construct is to forcibly prevent people from doing things. If I invent a wheel, of course I would rather you give me something in exchange for my making you one, but it is not right for me to go beat you up or destroy your wheel if you make one yourself. Besides being immoral, intellectual property is also empirically bad for society; however, that should not really be relevant to the discussion, just as consideration of economic costs should be irrelevant when considering the morality of slavery.
Initial reaction to OSHW and its organizers: what is their motive?
With those general biases out in the open, I will move on to more specific biases that are likely to turn up when topics related to OSHW come up. I am skeptical, as are many others, whenever claims are made about things being free or almost free. “What’s the catch?” or “it must not be worth much if it’s free” might be the initial response to anything unexpectedly free or open, not just OSHW designs. My skepticism goes up even more when people try to control something that seems almost free. Why is it so difficult to give things away?
I think I get the basic motivation. Some people are happy just to let others use their ideas, and it’s easier to contribute to a project if you think your work will benefit a general, open community rather than a restrictive organization. And, as people become aware of the possibility of getting design files for hardware they buy, the “open-source hardware” term becomes a marketing point that unscrupulous organizations might abuse to sucker in new customers. So, it helps to come up with some standard of what OSHW is:
The problem with even this simple view is that different entities have different motivations when it comes to making OSHW designs. The meaning of any particular OSHW definition is diluted if every organization uses a different definition, so there will be pressure on a “the” OSHW definition to accommodate more organizations by relaxing the standard to a point where membership is large enough to be meaningful. Purists will want to pull the line as much to the open side as possible, and those wanting the benefits of an OSHW label without wanting to give up control of their product will want to pull the line to the restricted side.
Of course, there is no simple “openness” axis. Things get much more complicated if we expand our view to just two axes, say, how restricted use of the design is (e.g. non-commercial only, for educational institutions only, etc.) and how restricted understanding of the design is (e.g. all the component identifications are scratched off, schematic is provided, all source files and an explanation of operation is provided):
The red Xs show where a few kinds of designs might be: a patented design should give full disclosure of how it works, but uses the power of the government to restrict the use of the design; at the other extreme, a design might use a commonly-understood circuit but hide what circuit is being used. The task of the OSHW definers becomes more difficult the more axes are considered because different organizations will want to pull each spot along the boundary in different directions. Pololu sells products out where the Xs are, and given that we have not specifically tried to release open-source hardware products, it’s no surprise that we are well outside the OSHW line. But if we do move toward an OSHW release of a non-trivial design, chances are that we will move toward the line gradually, rather than jumping completely across it, so it is important to know where it is.
Of course, that’s if we care about “the” definition of OSHW, which brings me back to the basic motivation question; the more difficult it is to define this notion of OSHW meaningfully, the more I wonder why people are trying to do it. As I see it, there are three main types of interested parties: non-commercial consumers and contributors, the standard-setting organization(s), and commercial consumers and contributors.
Non-commercial consumers and contributors
By non-commercial, I mean those who are not really financially involved, who are not trying to make money in any way related to OSHW. They might buy the OSHW products they use, and the openness aspect might influence their purchase, but ultimately, they’re in it for fun or to learn something. By consumer, I am imagining someone who uses the OSHW product in a separate (possibly non-OSHW) project, whose interaction with the product might not be different than if it were a closed-source product. By contributors, I mean those for whom the OSHW project is their project; these people want to specifically advance the project. Of course, someone who initially starts out being just a consumer might get drawn into the project and contribute to it, and a contributor could be the sole creator of the project.
For the non-commercial consumer, OSHW makes complete sense. All else being equal, having access to the source documents only gives the user more options. I like knowing how things work and how some designer chose to do something. I am happy that my pick-and-place machines came with schematic diagrams. However, as I will get to later, all else is usually not equal, so I do not think automatically giving priority to OSHW designs is wise.
The non-commercial contributor is the one to whom I would most unequivocally advocate OSHW. If you are designing something for fun or to better yourself, sharing your work is a great way to go. Presenting your design to others usually forces you to consider more aspects of your design more analytically and lets you get more feedback about your work. Some people think that they might be giving up control of some great idea, but as I said earlier, I think that it is extremely rare for just an idea or even an initial design to be worth much. If you are just doing a project for fun or personal satisfaction, think of how rewarding it will be to see others get something out of your work. People also tend to have the reaction that they are getting gypped if someone else makes money off of their idea instead of them, but the reality is that the other person still has to put a lot of effort into making money off your work, and you still would not have gotten anything out of it if you had kept your work to yourself.
The standard-setting organizations
This is the role I can relate to or understand the least, at least for those who are in it purely out of principle. It’s easier to understand the participation of the commercial organizations, and I’ll get to them in the next section. I am automatically wary of those who profess their unsolicited representation of others; they make me think of politicians and class-action lawyers. I guess I would be more comfortable if the advocacy organization said, “Here are our values, come stand with us.”; the impression I get is that it’s more of a, “We represent you guys, what should our values be?” sort of thing. But some amount of asking for feedback about one’s values is reasonable, so maybe my impression is wrong.
One other point with an advocacy organization is that if they advocate for something I don’t support, they only make the world worse. This is unlike a company that produces things but has views I disagree with; the negative is offset by their contributing value to the world. With something like the newly formed OSHWA, I’ll have to wait and see what they do. I would support efforts to reduce axiomatic acceptance of intellectual property as a good construct; but, I am afraid that other, anti-freedom messages might get mixed in. For instance, I routinely get an anti-capitalist vibe when looking into OSHW stuff. Then again, people might think my anti-intellectual property stance is anti-capitalist.
Commercial consumers and contributors
Commercial participation is crucial to making the OSHW movement relevant. People whose livelihoods are at stake are in general going to be more serious and dedicated than those who are involved as a hobby, but with hardware in particular, significant financial commitments are necessary to actually make the end product. But what kind of company would want to give away their designs?
While a cynical answer might be, “a company whose designs aren’t worth anything”, the general answer is: a company whose primary means of making money is something other than creating the designs. The companies that most push for the free proliferation of the designs are those that offer complementary products or services; common examples are companies whose primary business is manufacturing the OSHW designs and companies that make proprietary components in those designs. There’s nothing wrong with that, and it’s also not new: integrated circuit manufacturers have long supplied application notes and reference designs showing how to use their products.
Watching the emergence of some OSHW companies, I suspect that it’s fairly common to somewhat unintentionally evolve from contributor to consumer along this path:
- An individual or small group designs some project as a non-commercial pursuit.
- The project gains traction, and encouraged by its popularity, the primary designers invest in manufacturing of the product. This might start out as minimally as ordering a batch of PCBs and giving extra copies away.
- The initial investment further propels the project, and the designer starts getting some money out of the project. He cannot just keep giving away the PCBs, so he charges some nominal fee to cover his expenses.
- With money coming in, it’s easier to justify more investment. Maybe the designer might buy a batch of parts to get a quantity discount or even get some boards assembled. If there is a group of initial designers involved, they might register themselves as a legal organization to separate personal finances from those of the project. It’s fun: their baby is taking off, the project is paying for itself, and an appreciative community wishes them well.
- And just like that, the initial designer is in the business of manufacturing the OSHW product. There is enough of a community that occasional design improvements get made, but the initial designer is primarily involved with the logistics of manufacturing and supporting the product. Although he is manufacturing a product, he has gone from contributor to consumer of the design.
And that’s where the open-source motivations stop being so pure. If the product is popular enough, others will want to produce it without contributing to the design, and they might be better at manufacturing than the original designer. If the original creator wants to stay involved, he has to invest even more in manufacturing to get an edge there or try to gain some kind of control over the design. Things I have seen on that front include moves toward less-open licenses (e.g. non-commercial) and embracing branding and trademarks to stake out ownership of a project. While there’s nothing wrong with that if the designers are up front about it, I wonder what effect seeing projects get more restrictive will have on the enthusiasm of future independent contributors.
The other kind of OSHW-supporting manufacturer is one that makes many not-particularly-notable designs. Sparkfun and Adafruit probably fit in that category, and that’s probably where Pololu would be if our products were open-source. While there might be varying levels of design effort and competence from company to company and even product to product, the underlying acknowledgment is that there is not all that much advanced design to the product. The products might also incorporate components that the company has an advantage in sourcing.
There might also be a viable business model in becoming a good contract manufacturer to the OSHW community (and maybe that’s what some of the aforementioned companies are trying to do). A company could develop a good low-volume, flexible manufacturing system, and then seed a bunch of products with minimal designs that work well with the company’s manufacturing processes. The company’s design and engineering staff would focus on transferring new independent open projects into formats that work well for the company. It seems like it could be a win-win, with independent designers getting to do the fun part of designing, and the manufacturing company not really having to invest a lot in design. But, the company would still be doing contract manufacturing, which I think is a tough business, and I am skeptical that there are enough benefits to open-source hardware to give the company a competitive edge.
Before I move on to address potential benefits of OSHW, I want to throw out one other thought about motivation. I think people just like being good at stuff, and that relates to open source in two ways. The basic one is that releasing source documents can be a way of showing the world the glory of your design. I think some also have the hubristic desire to show exactly what they’re doing and still do it better than anyone else. I have heard smart people claim that it’s fine to release all their designs because they would only be of use to those that are behind them, anyway. I doubt that they will all always be one step ahead of everyone else.
It is awesome that a composer and pianist like Franz Liszt could write down his creations and 150 years later, people still devote themselves to replicating (“interpreting”, say the professionals) his pieces and probably cannot perform them as well as he did. Magic tricks are kind of like that, too, in that they blow me away the most when the illusionist tells me exactly what impossible thing he’s about to do before doing it. Of course, we know the magician is usually cheating a bit, in the sense that he’s actually not doing exactly what he’s saying; I think OSHW companies have to be careful about not doing what they say, too.
Benefits of open-source hardware
Some basic, immediate benefits of open-source hardware are obvious. Anyone who interacts with an OSHW-related project or product always has the option of ignoring the extra information that would not be available in a closed-source equivalent, so any extra benefit, no matter how small, would give the overall edge to the OSHW alternative. I don’t think there’s much controversy regarding the basic benefits, but I’ll list them here for completeness (and maybe someone can point out ones I’m missing):
- The source documents are the ultimate documentation of what a design actually is (and good documentation is an important part of a good product).
- Open source allows more people to scrutinize a design and catch mistakes, again leading to better products.
- Making a product open-source puts pressure on the price to be low: if someone starts charging too much for it, others can step in and make it available cheaper.
- Open-source products put competitive pressure on proprietary products.
- Open-source products give users confidence that a design will be available even if the original manufacturer ceases production, increasing use of the product.
- If a manufacturer actually does cease production, customers counting on continued availability aren’t as screwed if the product is open-source.
- Open-source products enable more customization and therefore use of a design. For instance, I might want $1,000 to add a special feature for you to one of Pololu’s servo controllers; that price might not be worth it to you. If the design were public, you might find someone that can do the modification for you for $500.
- Open-source products allow original designers and manufacturers to benefit from their customers’ enthusiasm and effectively get cheap design work, testing, consultation, etc..
- If there is a vocal open-source community, making your design open could help with spreading the word about a product. (Though that benefit will get diluted the more mainstream OSHW becomes.)
- There is educational value to seeing how a design really works. Open-source design makes people more aware and appreciative of how things work, which is good for society.
- If an idea or design is good, maximizing its proliferation and minimizing barriers to its use will maximize society’s benefit.
I started drifting away from immediate benefits to more theoretical, philosophical benefits toward the end there. And I think the main problem skeptics have with OSHW is that the immediate reality does not match the optimistic claims (and it’s not clear that that will change any time soon). In my mentions of the open-source alternative being a no-brainer for a consumer, I qualified them with phrases like “equivalent” and “all else being equal”. But from what I’ve seen, OSHW products tend to have more mistakes, worse engineering in general, worse documentation, worse availability, and not necessarily better pricing than similar proprietary products.
I see two main reasons OSHW does not live up to its claimed potential: the source documents tend to have little value as a starting point for anything other than very minor changes, and there are other large barriers to meaningful participation. These issues are especially important because they distinguish open-source hardware from open-source software, which I think many OSHW proponents look to as evidence of feasibility.
Barriers to meaningful participation
A common criticism of OSHW is that it’s really not that open because it’s based on proprietary components and uses proprietary software. Of course, that does not have to be the case, but it’s very relevant to anything Pololu might release. All of our PCB designs are done in Altium Designer, which right now costs around $5,500 per seat. We have paid Altium tens of thousands of dollars over the years because we really think it’s much better than cheap or free alternatives. If we wanted to be open-source, we would have to decide whether to dumb down our internal development by switching to inferior software or to release documents that are not really that accessible. (I realize that in itself is not an argument for not releasing what we have, but it substantially weakens the motivation for doing so.)
But something like accessibility of the software to look at the source is not the main problem, which is that because we are talking about physical things, you actually have to have stuff and spend a lot of money to participate; knowledge and understanding are not enough. For example, in the open-source software world, if there is a flaw in an application you are using, and no one else cares about it enough, all you need is understanding of the software to fix it yourself. You can (almost) immediately verify if your modification worked and then use the new and improved application. In contrast, with hardware, you cannot immediately go from fixing the design in the abstract to having the fixed real product. To get the benefit of your fix, you also have to go through all of production, from ordering new PCBs and components to assembling the device. For anything but the most basic designs with basic technology, that just isn’t feasible.
Thermal image of the top side of the dual VNH5019 motor driver shield during one of our current tests.
When you do get your hands on a physical copy of the device being developed, validation and troubleshooting of advanced products is still expensive and beyond the means of most individuals. Even for relatively basic products, we use tens of thousands of dollars’ worth of equipment like oscilloscopes, current probes, and thermal imagers to make sure our products work. If we made the designs open, most users would not have the means to contribute at the level necessary to be meaningful, and if a more advanced organization were to improve on the design (maybe using X-ray analysis, EMI testing, whatever), we would no longer be able to contribute much, either. In other words, contributors need to be peers or approximately equals in resources or capabilities to be able to contribute meaningfully; however, with hardware, dissemination of information alone is not sufficient to make them equals. I suspect that any decently advanced OSHW product that sees meaningful advancement or improvement will evolve into a less and less accessible design.
Difficulty in merging branches
The other major shortcoming I see in the OSHW vision is that specific hardware implementations are difficult to merge. With that software fix example I used earlier, getting the modification back into some main version of the software is probably relatively simple. (I’m not talking about changes that might cause subtle problems elsewhere; that kind of problem can show up in hardware, too.) With appropriately designed software, you can tack on huge modules because the connections are logical. With hardware, it’s not enough to put two designs side-by-side and say, “these nets should be connected”; you will almost certainly have to reroute all kinds of other connections to make it possible. Therefore, the source documents are very limited starting points for derivative works.
This is not just hypothetical; it’s the reality even for our own designs where we obviously have all of the source information available. For instance, we have simple carrier boards for a compass chip and a gyro chip:
When we then took the obvious next step of putting both chips on one board for a 9-axis IMU, the source documents for the first two boards were basically irrelevant. There was not too much to the schematic in the first place, but once we decided what we wanted the circuit to be, it was easier to just make a new project from scratch. Things could maybe be a little different if there were a really capable autoplacer and autorouter that could just lay out the PCB for us once we gave it the concept of the design, but I don’t think any existing software could make anything close to our human design:
As with the barriers to participation problem, this limited usefulness of the source files for anything more than trivial changes is not in itself a reason not to release our designs, but it severely undercuts the motivation for doing so.
So, what is Pololu going to do as far as open-source hardware? I don’t really know. One of the subjects I have not directly addressed is whether it would be bad for Pololu to switch to an open-source approach. Even though I listed a bunch of benefits to OSHW, it’s obviously better for our customers to have the option to buy our closed-source products than not to have the products exist at all because we went out of business. I know that if we went out of business, I would want to release everything so that it would continue to exist and to give some last benefit to the customers that have supported us over the years.
Ultimately, I don’t have a good way of judging what open-sourcing our products would do to our business, and it seems like a difficult decision to take back. If you’ve read this far, I’d like to hear what you think. How does making or not making our products open affect your relationship with Pololu, even if you don’t expect to use the source documents (i.e. just on principle)? If you think you would use our work, what specific products would you want access to, what would you do with them, and how would opening those products affect Pololu? Is there some existing open-source project you would like us to get involved in?