Open Hardware at CERN

Last week I took the opportunity to visit Oxford’s Hackspace and see a talk by Javier Serrano of CERN.  Serrano has been working together with Moorcrofts, an Oxford-based legal firm, on the latest version of CERN’s Open Hardware Licence (OHL).

CERN’s systems have unique requirements in terms of scale, synchronisation and geographic distribution.  As a result, a lot of their hardware is produced to bespoke specifications.

4251257693_14fca303ba

Serrano spoke about the models available when considering closed/open and commercial/non-commercial licensing.  Due to the long lifespan and iterative nature of CERN’s systems, a commercial proprietary solution would create vendor lock-in which isn’t acceptable for their requirements.  An open solution without commercialisation wouldn’t be sustainable.  He concluded that an open, commercialised solution provides “the best of both worlds” in terms of sustainable support and sharing of knowledge, which is one of CERN’s core goals.

The licence itself takes inspiration from the GNU GPL for software, with modifications to make it more applicable to hardware.  The licence is designed to cover the documentation for the hardware (such as CAD files and bills of materials), allowing the documents to be distributed, modified, and used to manufacture products given that the documentation is made accessible to those receiving the products.

Serrano described the licence as “weak-copyleft”.  It is designed to ensure that modifications to the design, used complete or in part, are shared back to the community.  However, it does not attempt to stipulate that the designs of other products that are integrated or linked with the OHL products also have their designs shared.

Similarly, the licence contains a patent grant to any patents owned by the designer, but it doesn’t attempt to make this reciprocal – the licensee isn’t required to license their own patents back to the licensor.

A final notable feature of the licence is the stipulation that alongside any trademarks and copyright notices, any references to the location of the documentation must not be removed from the designs.  This means, for example, that a URL to access the documentation could be included in the top copper layer of a PCB – this would ensure than anyone receiving the board would have access to the designs.

Serrano finished by introducing White Rabbit – a network time protocol which improves on the Precise Time Protocol standard to synchronise networked nodes with tolerance of under a nanosecond. The documentation for the hardware implementing White Rabbit is released under the CERN OHL.

A big thanks to Oxhack for hosting the event, and Moorcrofts for sponsoring it.

Image Credit: Large Hadron Detail (Fred Benson) by Michael Maniberg

BBC creates HTML5 TV appliance

The BBC R&D labs have recently been busy working on a TV prototyping appliance called the egBox. The idea behind it is to create a minimum viable product of a HTML5-based TV as the base platform for experimenting with new features.

The appliance uses HTML 5, the WebM video codec, runs services using Node.js, and is being used as the basis for various technology experiments at the BBC. The  set of components used by the egBox is one that many developers will be familiar with – node, redis, socket.io, backbone.js – on top of which the developers are working on areas such as TV authentication.

What is interesting is that, while the idea is to create a minimum viable TV product as the basis of other prototypes, the nature of the egBox stack suggests lots of interesting ways to extend it. For example, as it uses Node.js, you might make use of the Webinos platform to offer apps.

At the time of writing the egBox code is not open source; however, that is the eventual plan.

The usual sticking point for any foray into TV using open source is actually working with TV services themselves. The “Smart TV” space not only has a whole raft of competing and conflicting standards, but most of the consortia operate on a paid membership basis, some even requiring signing NDAs to read the documentation; this is something I covered in a post a few years ago.

Things have improved since then, but there is still a long way to go. Ironically, a W3C standard for encrypted media content might actually be a good thing – or at least, a less-bad-thing – for open source TV, as W3C standards are royalty-free and publicly available unlike many of the specifications developed within the TV industry.

The upshot is that any open source project looking to work with a good range of TV services is likely to have to pony up some membership fees, and potentially keep some important parts of the codebase closed source to avoid issues with partners and consortia.

Still, its going to be interesting to see whats possible with the egBox.

You can find out more on the egBox over at the BBC’s R&D blog.

How “open source” is the Minnowboard?

This week, Intel announced the Minnowboard, a small embedded development board akin to the RaspberryPi, BeagleBoard and similar devices. The point that grabbed my attention is that it’s being touted as an “open source computer”. The device is shipped running Ångström and is compatible with the Yocto project for building custom embedded Linux systems, but while there are many devices available that run Linux, the term “open source computer” is seldom bandied about. So just how “open source” is the Minnowboard?

The minnowboard viewed from above, with labelled external interfaces

The Minnowboard from above

For a start, the board uses Intel chips, which is usually a good sign that the drivers required will be open source, without requiring any binary blobs in the Linux kernel. Furthermore, the UEFI system is open source. This is the code which executes when the computer first powers up and launches the operating system’s boot loader, and making this open source allows hackers to write their own pre-OS applications and utilities for the Intel platform, an opportunity we don’t often see on consumer devices.

Update: Scott Garman’s comment below clarifies the situation regarding graphics drivers and initialisation code.  A proprietary driver is required for hardware accelerated graphics.

However, moving away from the software, there’s a clear message that the Minnowboard is meant to be “open source hardware”. There are of course competing definitions from groups like OHANDA and OSHWA as to what qualifies as “open hardware” and “open source hardware” – one we heard at Open Source Junction included that all components should be available from multiple sources which is never going to be the case here – but a reasonable metric in this case would be, “is one free to modify the design and make a similar device?”.

The language on the site certainly seems to suggest that this is the intention. The Minnowboard Design Goals page clearly states:

Our goal was to create a customizable developer board that uses Intel® Architecture and can be easily replicated. It is a simple board layout that lends itself to customization. The hardware design is open. We used open source software as much as possible. We used standard (not cutting edge) components that are in stock and affordable, to keep the cost down.

Also, the introductory video explicitly says that the technical documentation will be available under Creative Commons licenses allowing people to modify the designs without signing an NDA.
That said, this documentation isn’t currently on the website, the only reference is a notice saying that “By August 2013 we will post all board documentation, software releases, links to Google Group forums, where to buy, and information of interest to the community.” We’ll just have to be patient.

Update: The schematics, design files and bill of materials are now available on the Technical Features page of the Minnowboard website.

Minnowboard with a type-C lure expansion template attached.

There are 3 formats for “lure” expansion boards – the Type C template here shows the smallest.

Another vector to openness for the Minnowboard is the opportunity to create daughter boards dubbed lures. These are akin to Arudino shields and allow additional components to be plugged in to the main board to expand its capabilities. There’s already several designs taking shape, and there’s certainly the potential for a community to arise around creation of these lures.

What Intel have produced is an open platform with standard components and interfaces for prototyping and developing embedded systems. Unlike the RaspberryPi which is designed as a learning device, the Minnowboard’s design (once released) could represent a starting point for both hobbyist projects and commercial products, without any royalties to be paid to its original designers (except, of course, that you’ll need to buy your chips from Intel). From Intel’s point of view, this is clearly a move to gain traction in the ARM-dominated market of embedded systems. As far as calling it an “open source computer” goes, once the designs are published, I think they’ll have done a pretty good job to justify the term.

Images from Minnowboard Wiki users Jayneil and Prpplague, used under CC-BY-SA.

Ubuntu Edge – Crowdfunding the Formula 1 of phones

Today Canonical announced the next step in their project to bring Ubuntu to the phone.  A new potentially record-breaking IndieGoGo crowd-funding campaign has been launched for the “Ubuntu Edge” – a device which seeks to bring together all the latest developments in mobile technology into a limited-run consumer device… that will run Ubuntu, of course.

In the campaign’s promotional video, Canonical’s founder Mark Shuttleworth reveals that consumer mobile devices dont benefit from the newest existing technologies as phone companies won’t use them until they’re already being produced at scale.  Shuttleworth goes on to describe the Ubuntu Edge phone with the latest and greatest technology – a Sapphire Crystal screen (which wont scratch unless you’ve got diamonds in your pocket), a Silicon-anode battery, high-spec CPU, RAM and storage, plus a camera and screen that focus on the features that apply to common usage, rather than just high pixel density.

The phone will be running the latest version of the open source Ubuntu OS for phones (commonly called “Ubuntu Touch”), which is seeking to provide full device convergence – essentially allowing your phone to be your PC when connected to peripherals – and with the specs on offer, that certainly seems realistic.

The phone will also be able to run Android, the currently market leader and competing open source offering.  In fact, the IndieGoGo page touts the Ubuntu Edge as an “Open Device”, designed to allow users to tinker with it and run their own software.  However this is probably a move to placate those who have fears about switching to a platform with a relatively young ecosystem – there’s a wealth developers producing apps for Android, but not so many for Ubuntu Touch.

There’s a feeling that Canonical are going for broke with this campaign.  The goal is set at a whopping $32,000,000 (yes, that’s thirty-two million dollars) which is far more than even the most successful crowd-funded projects in the past, and the price for actually getting your hands on a device is $830 (£540) or $600 (£390) if you back during the first 24 hours.  If the campaign doesn’t reach its goal, Canonical will focus solely on “consumer phones” using current technologies, where it will have a battle with the established players.

This could be a huge breakthrough in what companies supported by a community of users can achieve through crowd-funding campaigns, or it could be an embarrassing failure for Canonical and vicariously the Ubuntu community.  Ubuntu Touch has been a rocky road for community relations as the company’s goals have been seen by some to drive decisions at the expense of community consultation.  The success or failure of Ubuntu Touch could be a tipping point either way in this relationship.

Comment on this story by the open source community has only just started, and there’s already plenty being said for and against the campaign.  I’ll look back in a month and we can see how it went!

Build a village – or rebuild civilization – using Open Source

While researching projects for our upcoming event on Open Source Hardware I came across the amazing Open Source Ecology project. OSE features openly-licensed designs for tractors, generators, cultivators as part of its Global Village Construction Set – a set of 50 industrial and agricultural machines with which you can set up a create a small rural cooperative, or start rebuilding civilization after a zombie apocalypse or catastrophic socio-economic collapse.

Open Source Bulldozer from the OSE project

Open Source Bulldozer from the OSE project

You can keep track of the progress on each design via the OSE wiki, as each machine is developed, prototyped, documented and released.

(If the idea of building an open source industrial base sounds overly ambitious, its also worth remembering just how complex the challenge of creating a completely open source PC operating system was.)

Unclouding the issue

You can’t do anything with software at the moment, Open Source or otherwise, without the word “cloud” being thrown about.  If you’re looking at options for software you might want to use, it can be hard to see through the hype of this term, and understand what product you’re actually talking about.  This article is going to look at one area of the “cloud” ecosystem and the relevance to Open Source Software.

You might hear someone speak about “cloud servers” or “servers in the cloud”.  What’s probably being spoken about here is a product called Infrastructure-as-a-Service (IaaS).

Traditionally, if you wanted a server, you had the option of buying or renting physical machines and either hosting them in house, or in a data centre through a co-location service.  More recently, we’ve seen these physical machines replaced with virtual machines, allowing several server systems to be run on the same piece of hardware. Again, these can be hosted internally or externally.

IaaS takes this to the next level, abstracting away the underlying hardware from the customer. An IaaS service is typically housed in a large data centre, where servers’ resources are pooled into a cluster.  Virtual servers can then be provisioned on-demand, with underlying software taking care of which hardware is actually doing the work.

This model provides excellent flexibility and scalability, as new virtual servers can be provisioned and resources allocated to meet the demands of the services they are running.  It also holds the potential for cost saving – different types of customers will have different peaks in demand, which can be balanced across the shared infrastructure.  This can lower the overall computing capacity required, in turn lowering costs.

Set-ups like this are one of the reasons we use the term “cloud” – the blurring of division between pieces of hardware to make one ubiquitous “blob” of computing resource.

The best known example of IaaS is without a doubt Amazon’s Elastic Computing Cloud, or EC2.  Amazon owns several data centres across the globe.  When renting a server from EC2, you simply specify the resources you require and the location.  The system takes care of the rest and presents you with a remote login to your server.  EC2 is used by sites like Reddit and Foursquare to give them the ability to scale in line with demand.

Of Course EC2 isn’t the only player in the space.  There are 2 high-profile examples of Open Source platforms that can be used to provide IaaS: OpenStack and CloudStack.  OpenStack is produced by the OpenStack Foundation, originally founded by NASA and RackSpace but now comprising a sector-spanning group of technology companies.  Several companies in the Foundation run public cloud services on the OpenStack platform, in competition with EC2.  CloudStack was originally developed by Cloud.com, who were bought out by desktop vitrtualisation giant Citrix. Citrix subsequently open sourced the CloudStack system through the Apache Foundation.  CloudStack is used by big name brands such as BT and GoDaddy, as well as some smaller ones.

If your infrastructure is being provided as a service, it might not be immediately apparent why it matters if the underlying technology is Open Source. Your primary concern is likely to be what software you’re running on the servers that you’re renting.  However, it certainly warrants some consideration.

The first aspect to look at is the choice it affords you.  If you want a solution running on OpenStack, there’s numerous companies  for you to choose from, while knowing you’re getting the same product backed by the same group of vendors.  These companies will still want to compete between themselves, be it on price, the types of server they offer, or the management tools they provide.  Also, as the underlying system is the same across vendors, you avoid lock-in.

Another factor that shouldn’t be overlooked is that you don’t have to use OpenStack or CloudStack as a service from someone else.  If you’ve got a datacenter in your organisation, you can run your own, private IaaS system.  This isn’t for everyone, and does rather muddy the “as-a-Service” term, but you can still think of it as a service provided internally.  Rather than having to provision VMs in response to individual requests, running a private IaaS system would allow users to scale solutions to meet their needs at any given time.

Private IaaS systems can have a disadvantage: systems running on a private cloud are likely to have similar peaks in demand, reducing the potential for cost savings.

This isn’t the end of the cloud story.  There’s other “as-a-Service” products that are marketed under the “cloud” banner, and there’s Open Source to be found in all of them.  We’ll be looking at them in future articles.

What is Open Source Hardware?

As 3D Printing starts to take off and hit the mainstream, the Open Source Hardware movement is also stepping up a gear.

Open Source Hardware applies largely the same model of innovation to hardware that FOSS brings to software. With Open Source Hardware, designers openly license the digital artefacts needed to create objects – for example, design files in formats that allow editing such as CAD programs – so that anyone may:

study, modify, distribute, make, and sell the design or hardware based on that design

- Open Source Hardware (OSHW) Statement of Principles 1.0

The Open Source Hardware Association have also produced this rather nice introductory video:

YouTube Preview Image

This means that its possible to operate a business model of making and selling physical products based on the design, or selling modified designs (depending on the license), or designing and selling closed-source add-ons and accessories. One obvious business model is the “print shop” one – when designs are open and readily available, the resource bottleneck is fabrication. We may see existing printing outlets turn into fabrication shops too. Or we may even see 3D printing turning up in vending machine format.

However, we’ve already seen the potential problems that may emerge with this model, with the recent controversy over 3D-printed handguns (fulfilling Bruce Sterling’s prophetic statement that the technology would only start receiving media attention once people started printing weapons). If universities do start including 3D printing facilities in libraries, or installing 3D printers as vending machines in hallways, will we need new acceptable use policies to avoid hitting the headlines?

Alternatively, Open Source Hardware designs may fuel a market for 3D printers for home and small office use; prices are certainly coming down, for example with the commercialisation of the Replicator 2;  there are also new entrants to the market, such as the Form 1 kickstarter project.

For researchers, Open Source Hardware, when combined with 3D printing, offers a route to reducing the cost of specialized equipment – for example, researchers have created low cost micromanipulators and centrifuges. Open Source Hardware  also opens up new avenues for teaching and learning technology, manufacturing and engineering, with the potential to create a generation of technology creators instead of consumers; for example, according to Catarina Mota:

But to me, the major benefit [of Open Source Hardware] is education. More and more, devices are becoming black boxes. People used to understand computers and think of them as tools because they understood how they worked, and now we don’t. Whether we like it or not, technology shapes the way we think, the way we communicate, the way we act, the way we learn. So if we buy a computer or phone and we can’t modify or even understand how they work, our thoughts and actions are dictated by this interface design that we have nothing to do with. We need to understand the objects we use because if we can’t shape them, they will shape us. There are already so many things in our lives that we’ve changed to adapt to the technology we have available.

As with Open Source Software, the key to making this work are the legal and technical foundations for sharing and using open source hardware designs. Organisations such as the Open Source Hardware Association (OSHWA) are starting to pull together principles, definitions and licenses necessary. Communities have also formed such as the Open Source Hardware User Group, where early adopters can get together and share designs and ideas. Likewise, our events such as Open Source Junction have started to include Open Source Hardware as well as software.

There is also the interaction between Open Source Hardware and Open Source Software to consider: its all very well having an open design for a device, but what if it needs proprietary firmware or software to actually work? This is something considered in the Open Source Hardware definition:

3. Necessary Software
If the licensed design requires software, embedded or otherwise, to operate properly and fulfill its essential functions, then the license may require that one of the following conditions are met:
a) The interfaces are sufficiently documented such that it could reasonably be considered straightforward to write open source software that allows the device to operate properly and fulfill its essential functions. For example, this may include the use of detailed signal timing diagrams or pseudocode to clearly illustrate the interface in operation.
b) The necessary software is released under an OSI-approved open source license.

Overall, Open Source Hardware is a major emerging area for innovation, and something we’re very interested in here at OSS Watch (or should that now be OSSH Watch?)

(Oh, and here is one last link for Minecraft fans)