Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

Open Source Hardware and why you should care

Pete Brown - 24 February 2012

As software developers, we hear a lot about Open Source Software. I'm a big fan of OSS, and think it's one of the single most impactful things that has added to the collective knowledge of the developer community. Microsoft has several larger open source projects and software. For example, ASP.NET MVC is open source software, and the .NET Micro Framework is a full apache-license and community contributed open source project (you can use our free Visual Studio tools, or free and open source tools like Monodevelop to code for it). Microsoft is a huge company; there are actually a number of OSS projects going on and more every day.

Open Source means different things to different people, and not everyone expect the same result of benefits from it. Phil Haack, late of Microsoft, had a great post on the difference between Open Source Software and an Open Source Project and an excellent follow-up post on the spirit of open source.

On thing software developers are often not aware of, however, is Open Source Hardware. It is to hardware as OSS is to software.

image

What is Open Source Hardware?

I have a few hobbies that center around making things. Some are mostly physical/mechanical, like CNC machines. Others are mostly electronic, like MIDI interfaces, synthesizers, MIDI to CV converters, and whatnot. Most of these have code, firmware, which is (or will be) released under Open Source licenses. But what about the actual plans, schematics, and the board designs? How can you license and categorize those?

That's something the Open Source Hardware movement is trying to define and make easier.

From the wiki: (emphasis mine)

Open source hardware is hardware whose design is made publicly available so that anyone can study, modify, distribute, make, and sell the design or hardware based on that design. The hardware's source, the design from which it is made, is available in the preferred format for making modifications to it. Ideally, open source hardware uses readily-available components and materials, standard processes, open infrastructure, unrestricted content, and open-source design tools to maximize the ability of individuals to make and use hardware. Open source hardware gives people the freedom to control their technology while sharing knowledge and encouraging commerce through the open exchange of designs.

Essentially, if you release something as Open Source Hardware, you're enabling other people to make their own versions of it, or to improve it. There's more to it, though. Read on.

My most recent project is a simple MIDI interface for the .NET Gadgeteer. I developed it in the open, with the advice of many others on the forums. I've sent out for some prototype boards, and once it looks like it'll work, I'll then publish the schematic and board files officially. Developing it in the open allowed me to get feedback and make the board better. It was also incredibly motivating: I've had way too many projects just sit around and collect dust because I got bored with them. That didn't happen here; I credit the OSH approach and license for a big part of that.

image

The version I sent out has vector fonts instead of proportional fonts, slight board shrink down to 32mm high, and a slight increase in clearance between the ground plane and traces, but is otherwise the same. Notice the dimensions on the board: it's pretty tiny. That SOT23-5 SMD logic chip is SMALL. Final schematics coming when the board shows up (WIP stuff is linked to in that thread)

Recently, my friend and fellow Microsoftie Andrew Duthie went through a similar process (before I did) in designing his own .NET Gadgeteer LED Array module. He also went through the very public process of designing the prototype and folding in feedback and working publicly on the API. His prototype doesn't have the OSH logo on it anywhere, but it's OSH in process and (assuming he releases the schematic and board design files) OSH in result.

The product is much better for it, and everyone, including the designer, benefits.

Free doesn't mean you can't make money

If you're working on a piece of hardware, consider making it Open Source Hardware. This doesn't mean you can't make money off of it. You can certainly manufacture the hardware yourself, or sell kits, or whatever, and turn a profit doing so. OSH and commercial work are not incompatible. Companies like Secret Labs and GHI have entire branches dedicated to creating open source hardware and software. They still manage to stay in business and actively create cool stuff :)

Of course, many companies make money off the most popular of all open source microcontroller platforms: the Arduino. In fact, I can't think of any other OSH project which better exemplifies the benefits of OSH. You can buy an official Arduino, build an Arduino yourself either from a kit or on a breadboard, or you can use any number of third-part versions of the Arduino, some with extra features, some with smaller footprints or other enhancements. Other people have taken the Arduino schematic and adapted it to create Arduino-compatible robot platforms.

Part of the reason companies can make money doing this is because the barrier to entry for physical devices tends to be higher than with code. Hardware design tools aren't as collaboration-friendly as software tools in many cases. You'll have some people who will take the design and go and manufacture themselves, but you won't usually see as many contributions or forks as you would with Open Source Software. Instead, you'll tend to see more advice and contribution going back to the original designer/manufacturer. Similarly, not everyone has the required metal cutting tools to make the required parts for their own OSH CNC machines or 3d Printers at home, and so they must rely on others for those. A whole cottage industry has been built around providing the harder to make parts for 3d printers like the Rep Rap.

Want to see something cool? Head over to kickstarter and enter "open source" for the search term. Open source (particularly hardware) projects abound on this crowdfunding site.

Why should you care?

By creating your work in the public and releasing as OSH, you contribute to the community and to knowledge everywhere. You also get back from the community ideas on how you could change the board to make it better. Even better, you'll have people in the community who take your design and augment to do things you probably never even considered. Those designs must also remain OSH, so you benefit from them as well.

Lots of great ideas simply die because the inventor didn't have the means to manufacture them. Had they released it as OSH, it very well would have been picked up (if a good idea) and made available. Instead, they stay locked up in a vault on an off chance that the inventor can figure out a way to manufacture them and maybe make a few bucks in the future.

Now, you can definitely create Open Source Hardware without using the logo and without associating yourself with OSH. However, falling under a known framework will make it easier for everyone else to understand exactly what your intentions are with regard to rights.

Next time you make something, or start to make something, be unambiguous and develop it in the open and with an OSH license. It's fun. It's motivating. It's good for developers and makers everywhere, and your product will almost certainly be better for it.

                 
posted by Pete Brown on Friday, February 24, 2012
filed under:                  

6 comments for “Open Source Hardware and why you should care”

  1. CMikesays:
    Shouldn't it be called "Open Specification" or something other than source as there isn't "source code" for material objects?

    Open Source Automobile: that will be an achievement of note (pun intended -- I'm not a musician and don't have use for midi interfaces). Would be nice, when needed, to be able to instruct the fuel management computer to adjust from maximum efficiency to maximum power or any setting in between... perhaps interface it with a GPS and have it alter it's fuel mixture settings based on the fact I'm entering the mountains or have the system alert me that fuel blend in my tank isn't appropriate for driving at elevation and that I should top off with a local high octane blend at the gas station 1.5 kilometers ahead on my left. Simply being able to access and review logs from such a car computer system would be nice too.

    Different topic: I seem to recall Sun released the specs on their UltraSPARC T1 and T2 CPUs under GPL as "OpenSPARC" -- http://en.wikipedia.org/wiki/OpenSPARC -- though I'm curious if anyone else decided to make CPUs based on that.
  2. Petesays:
    @CMike

    If you consider the schematic and board layout files the "source" then it all makes sense. The analogy between bits and the physical world isn't 1:1, but it's the intent that counts, IMHO.

    Cool idea for the car. Yes, imagine if all that stuff was easily and legally hackable. FWIW, you can access some of that information now with an interface, but it's not supported and I'm not sure about the legality of it.

    Pete
  3. HSsays:
    Nice article, thanks. There was one point in the article that caught my eye. It's the difference in the development process between open source software projects and open source hardware projects. It's probably true that contributions in hardware projects are more likely feedback than forks. This is partly related to the tool and manufacturing costs of electronics; especially even half-decent EDA tools are terribly expensive.

    But that's only half the truth. Another issue is that - I dare to say - most open source hardware projects are of horrible quality. Don't take me wrong, I'm not stating that you shouldn't publish your schematic if it cannot pass the review of six grizzly-bearded engineering professionals. No, I'm actually stating the opposite: if you can barely make it to the state that it looks like it'll work, I would encourage you to publish the design and ask for improvements. As the design improves over some iterations in the community, every contributor will probably learn something. The maturity of the design should always be stated clearly so that no one expects an early tinkering prototype to work in the real world.

    The real-world performance, especially in terms of product safety issues, is of a concern of mine partly because my explorations in the OSH world began with the open source electric vehicle movement. Just the mere idea of omitting most if not all protective measures in a 30 kW, 400 V electrical system that propels a car on public roads and is exposed to water (with road salt), heavy vibrations, temperature extremes etc. is stunning. Still, I have never sayed one shouldn't develop one's own battery management system. What I'm saying is that one should make it clear that the system is in early development stage and it should not be replicated for general use. Better yet if the originator asks the community for improvements.
  4. Harley Pebleysays:
    CMike, I've thought for years a control system like you describe would be really nice. I believe the start of what you talk about can be done with the MegaSquirt: http://www.megasquirt.info/. It's an EFI control unit apparently developed under OSH principles, although it predates the OSH movement by a number of years. You can either get the schematics and PCB layout to make it yourself (with a BOM from Digi-Key supplied) or in kit form or assembled. It does only control EFI at the moment, so you'd have to roll your own ignition control to do everything you're talking about. And of course all the higher level functions are also simply SMOP (small matter of programming :-).

    Regarding "open source hardware," I'd certainly call all the gerber files for PCB manufacture, schemaitcs, g-code for CNC machines, 3D models, BOM and so forth "source code" for the hardware.

    Cheers.

Comment on this Post

Remember me