Access all areas

10/04/2008 13:23:31

INFORMATION AGE: Why has hardware hacking really taken off in recent years?

JONATHAN OXER: 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 realising 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.

IA: What is the Arduino board and what was the motivation behind its development?

JO: 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 any one 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.

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 they 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.

IA: How does open source hardware differ from open source software? Can it work as a business model?

JO: 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.

IA: Is the open sourcing of the Arduino board helping to broaden its appeal?

JO: There are lots of hobbyists and a lot of performance artists in particular who are using them for all sorts of unusual things, that's one of the things that has caused a lot of this to take off in recent years - people that don't necessarily come from the sort of background that you would expect to be into modifying hardware or doing software development are now able to benefit from these kinds of tools.

For example, those in the performing arts field or who do art installations. They need tools and building blocks in order to express themselves, and now these boards are quite cheap and easy to obtain and use. You buy an Arduino board for $40 or so, plug it in, copy and paste a few lines of code in and it just works. A couple of years ago that was totally beyond the reach of someone that didn't come from a technical background.

Now we're seeing people who don't come from a technical background using this basically as another tool, another part of the media they work with. If they are into sculpting they might learn to use a welder for metal sculpturing, and this Arduino board is just another tool to learn to use.

IA: Tell us about your recent Linux.conf.au tutorial, 'Hardware/Software hacking: Joining Second Life to the Real World', and how you can connect and control real-world objects from a virtual environment.

JO: Just some fanciful examples to start with, in the (Linux.con.au) tutorial I just finished one of the demonstrations that I did as a proof of concept was to connect an RFID reader that would typically be used for building access control or something like that. Upon reading the correct tag - in this case the one in my arm - it sends a signal into the computer, across the Internet and into the Second Life environment to trigger an event. In this case it was using a physical RFID card and reader to unlock a virtual door, and it can go the other way as well.

The other demonstration I used was to create some buttons inside Second Life. They are virtual buttons that you click while you are in the Second Life environment that send a signal that connects out to a Web server which was running a special little piece of code that then connected to a physical device, in this case I used a fan, and you could turn it on or off. So that means that from inside the virtual world you can turn on or off devices in the physical world, so we have this bi-directional communication.

IA: How does the RFID tag implanted in your arm unlock a door inside Second Life?

JO: It's actually a long chain of events. One of the things I am trying to demonstrate to people in my tutorial is that they really only need to learn a series of small building blocks and then they can use those blocks and join them together. It's very much like seeing the world as a big Lego set; you start thinking of the world as a whole lot of things you can rearrange to do what you want to do, and if you can break it down into small simple chunks then you can rearrange them in different ways.

In that particular demonstration I used a small implanted RFID tag typically used in cats and dogs, and an RFID reader. The reader interrogates the tag and gets its ID code that then talks through a USB connection into the computer. In this particular case the object was a representation of a door and the door was listening for messages, specifically telling it that it needs to unlock.

So the end result was that when the correct tag was swiped, the RFID reader sends the message up the USB connection, which then is converted to a network socket using a little script called ser2net, which is then read by the PHP script, which then connects to the Second Life gateway, and then connects to the object, which sends it the message, and then the object unlocks. It sounds like a house of cards and in some ways it is, it's a whole lot of small building blocks but the good thing is the building blocks themselves are very simple and you can rearrange them to do all sorts of things.

IA: What kinds of applications could this communication between the real and virtual world have?

JO: The interesting thing is that once these building blocks have been put in place, people start using them for all sorts of amazing things that you have never even thought of. One fairly well known example is the work that IBM has done over the last year or two with the virtual representation of the Wimbledon Centre Court inside Second Life. What they did was build a representation of Wimbledon Centre Court inside Second Life and linked it up to a system that acquires data from Hawkeye and various other on-the-ground systems and then have that data fed into Second Life to represent the actual physical event inside Second Life, so you can walk onto centre court at Wimbledon inside Second Life and watch a representation of the event that is taking place in the real world.

Another really interesting example: last year I was in the US doing a tutorial on hardware hacking inside Second Life and one of the tutorial participants came up to me afterwards and explained to me that he was a mining safety engineer. His idea was to use Second Life to build a complete representation of the mine environment that he works in and then acquire telemetry data such as positioning data from trucks, loaders and the various machinery inside the mine, and then feed that in real time back into the Second Life environment and have it as a real-time representation of what is going on in the mine. So as a mine safety engineer he could pull up a virtual representation of the mine on his computer and walk through it and as he is walking through it he will see representations of what is actually happening at that moment in time in the mine, so he could very quickly run through and see where all of the people are, and see exactly what is going on.

IA: Why is Second Life such a suitable platform to build on?

JO: Second Life is interesting because it was specifically built as a platform, not as an end product. If you look at any threedimensional environmental, like a game environment such as Quake or some of the newer 3D First Person Shooters, they are essentially virtual reality environments with lots of code running in the background. But what you are seeing is the end result of someone else putting everything in place - they have done the coding for you. It's not accessible; you are interacting with it on their terms. If they put an object in a place that is where it stays; you can't change it other than in a way that they have specified.

The clever approach of Second Life is that they built a tool kit, and they seeded the environment by building some things, but then they have relied on end users to do all of the creation. So it allows people to be very creative. If you download the Second Life viewer and you are logged in as a Second Life user all the tools are built right into the software that you are using already. There is no extra step to take, all you have to do is use it, and that is a very deliberate move. What that means is that the Second Life environment is almost entirely managed by end users, not by Linden Labs who create the tools, and that has brought out a lot of creativity in people.

IA: What are some other examples of out of the ordinary communities or projects that Linden Labs may never have expected Second Life to be used for?

JO: There are historical re-creationists, there are science fiction enthusiasts, there are people doing modelling of complex systems, for example there is one island in Second Life that is deliberately set up as an entire ecology with autonomous animals including predators and prey. There is a whole food chain and the system is basically just allowed to run and the various animal populations reach a state of equilibrium because they behave in a certain way, they follow certain rules. That sort of modelling has traditionally been quite hard to do.

There is another project that is really interesting, which is [work by] a friend of mine named Matt Biddulph, who's a UK-based developer. A little while ago he was hired to create a system to represent molecular structures inside Second Life. Researchers who were working on molecular structures typically use proprietary software that runs on their local machine and it shows them what the particular chemical looks like and they can rotate it, for example. But there is not much collaboration involved, and what they wanted to do was have multiple researchers in different labs be able to look at a model simultaneously and discuss it, move it around.

So what they did was set up a system that allows a molecule to be represented in an enormous size inside Second Life, and allows anybody to fly around it, look at it and manipulate it. That is one application that I am sure Linden Labs never thought of when they were originally putting the tools together, but it's a really cool example of how, if you build these toolkits, people will use them in crazy and imaginative ways.


[ Printer Friendly Version ]

[ Other stories about Equilibrium, Socket, Island, Gateway, Linux, IBM, Creative ]