Open Hardware 3 Years On

In 2005 I started working with Asterisk on the Blackfin. This led to the Free Telephony Project, and the idea of using open hardware techniques for telephony. The idea of open hardware (people collaborating to build free hardware designs just like open software) was a big experiment, especially when it came to commercial products.

Back in 2006 I posted my initial ideas on Open Hardware. Much has happened since then. Many people and companies are now working on Blackfin Asterisk projects. New projects, and even businesses have spun out of the project. Coolest of all – open hardware products are now in volume production, as real world, commercial products like the IP04. People are buying and using these products – often in preference to products developed using traditional closed development models. Open hardware works!

Open Hardware in Business

As the idea of Open Hardware matures a few patterns seem to be shaking out. The form of open hardware distributions seems to be the schematic. Companies are largely keeping the PCB designs and other tooling information closed. This gives them some sort of protection against direct copies hurting their business. At least that is the perception – I actually think the PCB is a small part of the total business picture.

Directly cloning open hardware designs doesn’t seem to work as a business model. The prototype IP04 design (schematic and PCB) is entirely open – all the CAD files are free for anyone to use. In theory this means you can give these files to your local surface mount assembly line, ask them to build 100 IP04s for you, and be in the IP04 business. I get 1-2 emails/month from companies intending to do this.

However in practice you need the skills to find small hardware faults, an understanding of the design, experience in building and flashing the firmware, testing, QA, support. Like many valuable things in life, these skills must be acquired, and can’t be copied. You need that hacker mindset to understand how the beast works. The IP04 hardware and software is rather complicated so you really need the support of the community. This requires a community outlook. Those interested only in $ don’t share these values, lose patience and move on.

The real power of open hardware seems to be providing a baseline for your product development. Take the hardware and tweak it. Add a different line interface, more ports, less ports, hardware rather than software echo. Add your software application to the baseline build system. Code up your own build system.

Open Hardware, Closed Tools

Most people are developing their open hardware with closed source schematic/PCB CAD tools. Bit of a pity, but ultimately hackers will use the best tools for the job, open or closed. That is why many hackers use open source software – it’s just better. Hopefully this gap in CAD tool performance will be filled soon.

Open Hardware is Software

Curiously, the “open hardware” projects are dominated by software complexity. The effort involved in the fun stuff (soldering, schematic and PCB design) is dwarfed by the effort involved in the software, e.g. maintaining build systems, porting applications, testing. The majority of my time on this project has been spent on build system work, then software, then the actual hardware. This is part of the general trend of hardware functionality shifting to software. The vast complexity of the software means a lot of time needs to be spent managing it with configuration control and build systems.

Open Hardware is Hard to Grok

Just like Open Software in 1992, the concept of Open Hardware is hard to understand. The ground rules are still being worked out. Full points to companies like Atcom for overcoming these concerns and embracing open hardware.

Some memes that are particularly tough:

  1. If it’s open won’t people just copy my product? Well, this doesn’t seem to be a big problem in practice. Many other factors are required for a successful business, as discussed throughout this post. Value tends to shift to other parts of the business, and the advantages of sharing and community outweigh closed development and secret sauce.
  2. For the open source community, re-flashing commodity hardware (e.g. OpenWRT on a WRT54) is now common practice. However moving from this to open hardware takes a big shift in mindset. Here is the dirty little secret of the hardware game: hardware products are 95% software. The man hours invested something like OpenWRT or Asterisk are orders of magnitude greater than those put into developing the WRT54 hardware or a PCI telephony card. And yet open software communities wait nervously for the next commodity hardware box, only to find it doesn’t have the feature they require, or goes out of production, or the manufacturer won’t release the internal data, or it doesn’t have enough flash etc. In the mean time the manufacturers and chip set vendors are having a great time making money from using your open software in their products.
  3. Open hardware is not that hard. The truth is that a modest community effort can develop and bring into production a full custom open hardware device (designed exactly to your specification), and arrange to have it volume manufactured at a reasonable price. We have done exactly this with the IP04.

Extreme Open Hardware

Some of the radical uses of Open Hardware I had hoped for haven’t happened yet. I am particularly interested in seeing Open Hardware being used to help people in developing countries. For example new business models like IP04 assembly in Africa for local markets, or volume manufacture at cost price (give 20,000 people telephones for $500,000). The Mesh Potato is part of a fresh new project where we are using open hardware and software to help bring telephony the developing world.

IPO Opportunity

I do this work largely as a volunteer (although I derive a modest income from IP04 sales and contract work), so like many hackers I choose to work in areas that interest me. This year I have been shifting my focus to telephony for the developing world. I am not personally motivated by the business side. So the IP04, while very usable, still requires an understanding of the Linux command line and Asterisk conf file skills (although the GUIs are steadily improving).

There are several companies working with open hardware Blackfin Asterisk technology. So far I see companies that are good at manufacturing, some that are good at build systems, and fewer still that are good at software optimisation, hardware and DSP. A big opportunity exists for a company that can combine strong technical skills with solid marketing and business skills to produce a bug free, feature complete turn-key appliance product. This has proven surprisingly difficult to do – even with all of the hardware and software available in open form. To me this drives the lesson home that a business is much more than just the technology.

You know as a community we bring all of the above technical and business skills together. So the project as a whole is thriving, just no one person or company has a monopoly on the intellectual property and profits. And that, I put to you, is a good thing.

Open Hardware for Hackers

Call me a geek, but the greatest reward for me is a bunch of people soldering tigether their own uClinux Blackfin Asterisk boards at home, and bringing up their very own uClinux IP-PBX. There is nothing quite like seeing the root prompt come up on a Linux board you soldered together yourself, or hearing that phone handset ring for the first time. Open hardware gives the hacker the remarkable power to build IP-PBX products that took large teams to develop just a few years ago.

Links

  1. An introduction to Open Hardware, written as the Free Telephony Project was just starting.
  2. See the amazing range of hardware and software in the Free Telephony Family Tree.
  3. Steve Song’s thoughts on Open Hardware for the Developing world.

16 thoughts on “Open Hardware 3 Years On”

  1. Thanks David :).

    I was hoping to find schematics for dual FXS and FXO modules and in particular the module pinout so I could just order the dual FXS and FXO modules and use them with a new FPGA product I am designing.

    Which also brings up the question about pinout differences between the original IP04 and current IP04 module pinout which I understand are different?

    Perhaps it is time for a spec.? It would be MOST helpful for me ;-).

    I like your points about open hardware VERY much.

    On an unrelated issue I wonder if you have tried KiCad PCB/schematic package. It looks pretty polished and IMHO is suitable for projects such as these. Unfortunately, the file formats do NOT seem to be the same.

    I have been playing with latest pic, pic32. I bet it could do some real comm. stuff, and its pretty cheap. I FINALLY figured out how to program it from Linux and dump ALL the proprietary tools. I just use a simple JTAG bit banger.

    warm regards,
    John

  2. Hi John,

    You can work out the module pin out from the IP08 schematic, it is identical to the IP04 except for an extra SPI chip select on one side and of course an extra line pair on the other side.

    The pinout of the prototype IP04 FXS/FXO modules and production modules is identical however the prototype FXO/FXS modules were a little longer so the physical location of the connectors was different. The production modules have an unused centre pin on the line side.

    No I haven’t tried KiCad, however good to see it’s coming along. The files I have released are in gEDA format. I have found Perl very useful for manipulating these, and might a be a useful tool to convert file formats.

    Yes PICs are fun, I did some work earlier this year with a 70 cent PIC.

    Cheers,

    David

  3. Studying your free fxs design and comparing it with what silabs has. Any reason why you have chosen to leave out the circuit protection elements near TIP and RING. Also, the device values are a little different.

  4. For the prototype Ip04 the protection components went of the 4fx motherboard so they would be closer to the line sockets.

  5. Hi David,

    Thanks for your reply.

    “You can work out the module pinout…” leaves me wondering if this
    is a “just a little bit” open hardware design :).

    It seems to me that a really open design certainly has the benefits you talk of. But maybe your manufacturers feel otherwise? How to you feel?

    At this point it looks like I need to redo the modules if I am going to make them available with my stuff? I REALLY didn’t want to do that!

    John

  6. Hi John,

    As I have mentioned several times, we are working out the rules of open hardware as we go along. Don’t expect it to have a 1:1 match with open software, or to meet every one of your specific needs.

    Re “You can work out the module pinout…”. Are you saying that you can’t determine the module pin out from a circuit diagram? Sorry – like open software we kinda expect a minimum level of skill and don’t claim to document our work to a degree to satisfy everyone. Sometimes I find myself peeking at the source of open software to resolve some question, well same with open hardware.

    I think the “Open Hardware in Business” section above might be worth re-reading for you. Direct cloning of open hardware designs does not appear to be where the strength of open hardware lies.

    The manufacturers we are working with are very happy. They have developed new product lines and accessed skill sets of developers that would have been impossible to do themselves. However they also understand that Open Hardware requires them to put into the community as well as drawing from it. This seems to be a key point, and not everyone gets it.

    However there are also some unhappy manufacturers. These people are dissapointed to find that simple cloning of our designs without doing a little work isn’t effective. They don’t really fit into our community and soon move on.

    Cheers,

    David

  7. The free/open philosophy eventually leads to the statement – “_ALL_ knowledge (intellectual property) in the past, present and future should be free/open and it belongs to the populace”

    Ideally, for free hardware, this is at least what I want:
    1. _ALL_ hardware sources – schematics, pcb layout, cad specs must be distributed under a GPL-like copyleft license
    2. _ALL_ sources must be prepared using _FREE_ tools like gEDA
    3. _ALL_ sources must be distributed with _EVERY_ hardware instance
    I personally believe there is much work to do in the “free/open” hardware licensing area.

    This argument can and must be extended to business processes as well, which instead of being competitive and secretive, one could argue for a more transparent and cooperative. Hence, the freedoms of “knowledge related to business processes”. Perhaps, a la. MBA hacking – “show me a business process so that I can learn from it, and perhaps hack and improve it”.

    Often, it is these business processes/philosophies that get in the way of freedoms and innovation. Even for a RedHat (so much for championing free/open source), there is a CentOS, mainly because their “business process” is closed and has different goals/philosophy.

    As a hacker, it is in my _SELFISH_ interest to assist/aid my fellow hackers with all my knowledge, because it speeds up their learning, and eventually, I will have access to their contributions sooner!!
    (David has been very patient/generous in this regard)

  8. Intellectual property will become like any other property, when product based economies become services based economies, which is currently happening. When there is critical mass, terms like “intellectual property, patents, capitalism (faux pas), etc” will become moot.

  9. Howdy,
    I have been looking for companies and projects that bring us closer to open hardware. I know that shipping hardware means that somewhere, money needs to change hands. In working with arduinos, I came across one company that is making a start. Seeed Studios will manufacture your boards and gives you a price break if you make the design open, so that other people can use it. I think they need to make several improvements, but it seems like a good start For example, I think there should be a way to keep track of feedback on the projects, so a visitor will know which ones seem to address peoples needs. Do you have any comments? Do you know companies doing anything similar? I have no commercial interest in the company. I just found them and it seemed to fit with what you are promoting.
    I am going to go listen to your talk from Linux Conf 09 now.
    Good day,

  10. I really do feel the frustration of closed hardware. Just before the transition to digital I bought a flatscreen tv. Shortly after I discovered what I’d call a bug. Perhaps its only a minor flaw but it bugs me. I can turn off the inputs so when I flip from one input to another with the remote it only goes to inputs that are enabled. That is any inputs “except” the antenna input which is pretty much useless.

    I know from my limited experience with flash ROM and firmware that this would be a simple firmware patch. If it were open hardware I could extract the firmware, do a little dissasembly, and ultimately do something about it. I don’t think the TV manufacturer has anything to fear from people cloning their set, so why keep it closed?

    Anyhow its nice to know there are people out there who are working to design hardware targeted to us “advanced” consumers. (hackers…)

  11. It is funny how some companies protect IP such as hardware designs.

    Even I²C protocols, they believe are sacred. For a device that they do not sell as a stand-alone product. In this case I wasn’t asking for the whole device firmware to be published, just enough of the protocol so that a Linux driver could go upstream to the kernel, or at least, made public, in the spirit of the GPL.

    I’ve done this with a driver for the TI TLV320AIC3204 … as it contained only information that TI provide in the datasheet on their website. Also some other bits and pieces for other peoples’ pieces of hardware, but I’m not sure how to tackle the problem of an in-house developed peripheral.

    As for the PCB design… Yes, there was effort made in producing said design, much of it was looking at the reference designs produced by the manufacturer’s parts. Had the manufacturers done the same, where would a lot of these companies be? Sometimes there seems to be more take than give.

Comments are closed.