I was reading through Phil's recent article profiling tons of different open source projects over at the Open Source hardware guide at Make Blog, and it got me thinking... what is open source, really? It reminded me of a recent conversation I had with Tom Igoe about why Open Source hardware is so much harder to define than software was and how he and the rest of the Arduino team wrestled with it. And that time I had dinner with Chris, Mike and Paul Badger , and talked about how Paul thinks about "Open Source" with his students.
Phil's article also reminded me of conversations I had with Karim Lakhani about the topic of open source collaboration, networks, and peer production. In the software world, it's relatively straightforward, because source code is infinitely replicable, easy to share, can be edited by almost anyone (willing to learn the programming language and owning a PC). But on the hardware side, it's not easy to define academically, which is no help to guys like me actually trying to make open source stuff!
Coincidentally, I just gave a presentation to some students up in Boston from MIT and Harvard (and a few stragglers) who were interested in Open Source hardware. The forum was dedicated to open source concepts and topics, and how to get started with your own open source project. I decided to meet with some professors ahead of time, to try to get a more theoretical approach to the problem. In those discussions, I got some interesting responses and of course some difficult questions I hadn't thought of before:
-Is hardware "open source" because you can change it, make it yourself, expand it, or customize it? What actions can I do with an open source device that I can't do with a proprietary one?
-What precisely about the hardware needs to be open? PCB traces? Etching chemicals and fiber boards? Transistors and gate arrays? How low down the hardware stack does it need to go before you call it open?
-How do you compare two different projects to each other? Can you ever say one project is more or less open than another? Is "open sourceness" a binary attribute, or can it be a spectrum?
-What is the goal of open source hardware, and why do we need more of it?
-Where does someone go to get started making their own open source hardware?
-If someone builds a project, what decisions do they make that leads them to open source vs. proprietary vs. closed?
-What the analogy of "source" mean to hardware? Is it figurative or literal? Is it the firmware, is it the logic inside a discrete IC? Is it the synthesized VHDL core in a microprocessor?
-Can something ever be open source if it includes proprietary, closed components like professionally built microprocessors? Is "open sourceness" in hardware a recursive attribute, like it is in GNU software?
So my first conclusion was: there's a lot more to think about here than I first thought - I knew it was hard, but this is a lot to bite off for one presentation. My second observation was: it's easy to overlook a lot of what makes something really feel "open". I think I went into the discussions thinking something could be either "open source" or not, but I left with the feeling that open source was more fuzzy than I'd originally thought. In fact, someone recommended that I read up on some of Richard Stallman's original posts on open source, where he ran into many of these same questions - maybe he'd have some answers.
In any case, I wrapped up all of my thoughts, and put together a presentation, which I've uploaded here for anyone to read through. I tried to capture the different opinions about open source hardware, and profiled a few projects I'm involved with, in order to propose a definition of what "open source hardware" really means. This it the first time I've used slideshare, so I hope it works!
Thanks a lot for all the feedback and ideas! And let me know if you want a copy of the presentation...