What is Open Source Hardware?
ptorrone writes "In their piece 'What is open source hardware?', MAKE magazine divides up electronic hardware into layers, each of which has different document types and licensing concerns: Hardware (mechanical) diagrams, schematics & circuit diagrams, layout diagrams, core/firmware, software/API — each layer has an example provided and links to many of the open source hardware projects currently being worked on."
The preferred document formats don't make sense. Distributing a schematic diagram as an image (pdf, png, etc.) is like distributing a program as an object file. In both cases modifying the item is nearly impossible. Schematic diagrams should be distributed in a format which a schematic editor, such as geda, can read. This is the electronic equivalent of source code. The same thing goes for printed circuit board layouts: just the image is not sufficient.
there's no limit to what you can open source. At some point, it ceases to be worthwhile. For instance, I could build the occasional part for my hot rod. In theory there's nothing to stop me from digging and smelting my own ore and really building a car from scratch. Obviously it isn't going to happen though. There are practical limits on what it's worthwhile to open source. Yes you can open source any design but if nobody builds that design then, what's the point?
Whatever, I have geek passion, I just don't have all-consuming geek passion. My job is a perfect outlet for the geek passion -- I get to be a geek all day. Then in my off-time I can hang out with friends, listen to music, dance, cook, whatever other hobbies I'm currently pursuing.
I'm pretty sure that if I worked in sales or management I'd have to work on electronics or write code when I got home. I sure did when I was going to school.
Rank the following tasks in order of complexity:
- gate-level design of a modern CPU
- gate-level design of a modern GPU
- gate-level design of a modern northbridge
- gate-level design of a modern southbridge
- gate-level design of a modern audio controller
- gate-level design of a modern ethernet controller
- gate-level design of a modern wifi chip
- gate-level design of a modern usb controller
- the linux kernel
my understanding is that there is a lot of really, really badly made hardware out there. the software people are clever enough to reverse engineer the hardware and write drivers. Why not put a few of them to work forward engineering the hardware?
Which peices of a modern computing system cannot run acceptably off of re-flashable firmware, or better yet, re-flashable FPGAs?
At this point, are (some) resources better spent trying to create F/OSS reference designs for every essential component to build a fully open computer platform?
I like the idea of being able to have a 100% open computer, where each of the components is well understood and discussed out in the open, and people aren't wasting a lot of time supporting badly made hardware. Some de-facto standardization around reference open source implementations of the hardware could be a pretty good thing.
It's actually not stuff like the CPU that i care about.. its more like.. all of the other things that make it onto a motherboard. There's no reason to put up with noisy audio, non-functional s/pdif outputs, buggy "hardware" raid, crappy bios, etc. The only value-add in these components is when they manage to live up to their as-advertised specs reliably.
My opinions are my own, and do not necessarily represent those of my employer.
"It's not that there is a lack of talent. Rather, apathy is fatal to open source. And we need to come to terms with the fact that the overwhelming majority of those with the knowledge to do something disruptive, to use their skill to change their world for the better, choose just to go home at night and watch tv."
Well I have the skill and talent however my education wasn't "open-source" and therefore I spend a lot of time at work paying for it, and when I get home the last thing I want to be bothered with is "my job".
The lack of people who do this stuff for fun is frustrating. I program for a living and for fun, http://code.google.com/p/crylib/wiki/CryLib The problem is that in order for people to be excited about working after hours as a hobby, they have to have a motive or project that really excites them. Programming for most people is a means to an end. If the end is exciting or liberating in some way (an OS kernel is a good example) then more people will join in.
In my case I'm interested in A.I. and decided that I needed a framework to build some of my ideas around, so I started working on my library. Several years later, I'm still working on my library and only have a couple of A.I. things in it. But the library is getting kinda cool, so I guess it's taking over.