Jonathan Oxer is technical director of a Web application development company called Internet Vision Technologies and for the past couple of years has been president of the Linux Australia community group. At January's Linux.conf.au in Melbourne he presented a tutorial entitled Hardware / Software Hacking: Joining Second Life to the Real World. Computerworld recently spoke to Oxer about how he is knocking down the boundaries between the real and virtual world. Oxer also sheds light on his how his lifetime obsession with electronics has transformed his home-life into a software controlled environment. Why has hardware hacking really taken off in recent years?
I think there are a couple of reasons. One is that the toolkits have become a lot more accessible. One of the issues in the world of hardware is intellectual property -- the control of the development tool chain. In the open source software world we've become accustomed to an open source tool chain where we have GCC (GNU Compiler Connection), so you can write your code in C, you can compile it with an open source compiler, and you can then run it on an open or closed source OS. The various parts of the tool chain are there to allow you to do that. But in the hardware world that hasn't necessarily been the case and in a lot of development environments - because there is an actual cost to producing a hardware kit or development kit - you can't just download it off the Internet and run it for free.
There hasn't been so much incentive to open up the software that is associated with the hardware, it all just becomes bundled into one and the same, so hardware vendors typically haven't cared about giving access to the software components that go along with their hardware. And what we've seen over the past couple of years -- partly the commoditisation of hardware, but also hardware vendors realizing that they can make use of the open source community to save themselves some work. So instead of having to develop both the hardware and the software themselves, they can develop and manufacture the hardware and then publish all the specs; the open source community picks it up and then an ecosystem builds around that hardware and people will develop for it and create software. So where I am going with this is that this has resulted in a much more accessible environment.
I remember a couple of years ago if you wanted to play around with a small microcontroller, for example, one of the most popular choices was BASIC stamp manufactured by a company called Parallax. It was a very cool system, very small, cheap, very low power, had a number of digital I/O lines and you could talk to it with your computer, so it was very useful for linking physical devices into the software environment. But the problem was the development tool chain for it was all closed source and it would only run on the Windows platform initially, so it just wasn't accessible to the people that typically like to play around with this sort of stuff in their spare time. But now what we're seeing are things like the Arduino platform which is what I've been playing around with more recently.
What is the Arduino board and what was the motivation behind its development?
The Arduino board is an initiative that comes out of Italy, I think there are about four guys that have been working on it for a couple of years now. What they wanted to do was build a very small hardware platform that was open source not just in the software but the hardware as well. They had seen the success of the open source software community in allowing multiple people to work together to build something that was greater than anything anyone of them could have done individually. What they did was take the same approach and apply it to hardware. So they came up with this very simple design for a piece of hardware and they published the schematics for the design and released it under the Creative Commons license which allows anyone else to share it. So it's essentially like open source but for hardware. Anyone can go to the Arduino.cc Web site, download the schematics, manufacture and sell these boards if you want to - there is nothing stopping you from doing that and a number of companies are doing that. Essentially it has turned the hardware into a commodity as well.
How does open source hardware differ from open source software and can it work as a business model?
Obviously it's not as accessible as a piece of open source software that you can download and 30 seconds later you are running it. Obtaining and setting up hardware is inherently more difficult because of the logistical issues, but it still has that benefit of the synergy of multiple people working on it, and that was the intention of the Arduino board all along.
The interesting thing is that they have now built a viable business on selling hardware boards for a design that they give away to their competitors, which is essentially exactly how the open source software world works. The best service and meeting the needs of your customers are what wins, not necessarily whether you control the market to the exclusion of your competitors. It's a matter of whether you are beating the competition to meeting the needs of your customers. They are selling a vast number of these digital boards to people who, if they wanted to, could manufacture them themselves but for various reasons they don't.