The Limits of Open-Source Hardware

by Monican

If you're a hacker who has ever thought about a new way to integrate computers into the world around us, you've probably heard of the Raspberry Pi, the Arduino, or the BeagleBone.

These three extremely popular open-source hardware development boards are being used in nearly every project you read about on engineering blogs.  The fanciful names of these three boards hide the power that they offer the user by making it extremely easy to integrate hardware - and thus the physical world - into software projects by wiring up sensors to collect data, or to embed a powerful and energy efficient computer into an engineering or art project.

However, despite the term "open-source" being used to describe these devices, that phrase has a much different meaning than when we apply it to open-source software projects like the Linux OS or coding projects you'll find on code sharing sites like GitHub.

What do I mean?

Well, the best example is to look at the Raspberry Pi's restricted schematics.  Although the Raspberry Pi is widely used and supported in the open-source community, the developers have chosen to restrict the release of the schematic files.1

They claim this is to prevent copy-catting and sub-par rip-off boards that cause headaches for the official developers (i.e., if someone has a problem with their poorly made Chinese knockoff and complains to the actual Raspberry Pi developers, this wastes their time).  This is understandable, especially since the Arduino team has suffered from knockoffs,2 but at the same time it limits repairability and opportunities for learning.

One major difference between open-source software and hardware is that with software, you can literally examine your entire code stack if you're using an open-source OS, and running only open-source software in your development environment.

With hardware this isn't the case, because the intellectual property of the chip manufacturers is a closely guarded secret.  For example, Atmel makes the microcontrollers around which the Arduino system is built, but they are not an open-source company.  Neither is Texas Instruments (who make the AM335x CPU for the BeagleBone) or Broadcom (who makes the CPU for the Raspberry Pi).  So if you want to get down to the bare metal and help develop the most fundamental parts of these systems, you are restricted by nondisclosure agreements, which in some cases are unavailable for hobbyists.

What does this mean for the open-source projects being developed with these boards?

Well, if you can't see inside the hardware, you can't check it for glitches and you can't rule out intentional backdoors or forgotten debug modes that might compromise the security of your project.  Whoever controls the actual silicon can pull the rug out from under any software running on it, no matter how secure.

Just look at the discussion around Intel's random number generator after the NSA revelations came out: the developers of the FreeBSD operating system decided they couldn't trust the opaque hardware inside Intel's CPUs, so they have to program as if the hardware they're running on is hostile.3

You can check the chip's "silicon errata" datasheet to see what bugs people have found and reported, but those are usually updated very infrequently.  For example, the silicon errata for the BeagleBone Black's CPU was last updated in November of 2013.4

Take heart, though - there are some hackers out there who are pushing the limits to see just how open they can make their hardware.

Legendary hacker Bunnie Huang has created the Novena Laptop which - although it has specs that aren't that great and costs a lot when considering pure performance - is so open that he even x-rayed the hardware to demonstrate that there isn't anything hidden inside the metal housing.5

His team had to make some tough trade-offs with performance because they're only using hardware for which they have all the information you could possibly need to call it truly open.  There were very few parts to choose from that fit this bill and it shows the paucity of options since everything else is restricted by IP at the level of the hardware manufacturers.

With all of this said, the benefits of these systems far outweigh the problems I've outlined above.  These devices make embedded electronics accessible to people who aren't engineers, like artists and students, or even scientists and hobbyists who just need to rapidly prototype something.

This makes me very optimistic about the future, and I look forward to a day when any laptop or electronic gadget you buy will have a sticker saying "Certified XX% Open-Source Hardware."

Notes

  1. Interview: Eben Upton
  2. Send in the Clones
  3. FreeBSD Won't Use Intel & Via's Hardware Random Number Generators  Believes NSA has compromised them.
  4. AM335x Sitara Processors
  5. Novena in the X-Ray
Return to $2600 Index