You know something is probably reaching the stage of over-hype when politicians try to climb on the bandwagon. Earlier in the year, at the CeBIT exhibition in Hannover, Germany, while standing alongside the German Chancellor Angela Merkel, the British Prime Minister David Cameron showed that he was ready to board the IoT bandwagon. In his speech, as well as boasting about British technology (and of course, the achievements of his government), Cameron suggested improved co-operation with Germany on, among other things, the IoT. He committed the British government to investing in the IoT, and went on to say:
“Take British ingenuity in software, services, and design, add German excellence in engineering and industrial manufacturing, and together we can lead in this new revolution.”
It would be unfair to interpret this, as one cynic has, as “The Germans will build things and the Brits will provide a website for them.”
What made Cameron’s speech interesting was that, as well as the flock of civil servants that inevitably accompany a politician away from base, there were some people who really understand technology, including Stan Boland, CEO of Neul, Sir Hossein Yassai, CEO of Imagination Technologies, and Eben Upton, a key player in the Raspberry Pi team.
Missing from that line-up was ARM, but I understand that there was ARM input to the discussions that surround such a speech.
I recently visited ARM to learn more about how they are making it easier for people to create the things for the IoT. Quick reminder – ARM designs processor core IP, which is licensed to the people who build chips. As an IP company, ARM is the biggest in the electronics industry – Gartner says that ARM has 40% of world revenues, which is more than the rest of the top ten put together. (My British boast – number three is also a British company- Imagination Technologies.) Last year, ARM’s customers shipped 10 billion ARM-based chips, bringing the cumulative total shipped to over 50 billion. Somewhere I have seen a statement that for every Intel processor installed there are at least 10 ARM-based processors, in microcontrollers and in SoCs. As a result, ARM has built an enormous eco-system. There are companies supporting the companies implementing chips using the cores. And there are companies supplying the tools to implement systems that use those chips.
While ARM has always held a leading position in low-power cores, the current Cortex family provides low power across a wide range of cores, with the Cortex-M products, in particular, very suitable for the heart of the Things that are at the edge of the IoT.
Just so that we all are aware of the context, Things are heating and ventilation machines, smart fridges, weather stations, industrial automation, cars, and even smart nappies (diapers) that are fitted with sensors and/or actuators, normally with some processing power that report back to, or are commanded by, some larger entity, perhaps the home command centre, perhaps a mobile phone, but increasingly some form of processing system in the cloud.
As part of their support for developers, ARM some years ago launched the mbed project. This has now grown into a significant community of suppliers and developers, many contributing to different aspects of the project.
The heart of mbed is the software development kit (SDK). This is a C/C++ software platform with start-up code and C runtime libraries. APIs for peripherals are provided, and the low-level Cortex Microcontroller Software Interface Standard (CMSIS) APIs can be used for bare metal programming. The mbed-rtos is an implementation of the CMSIS RTOS, and the mbed compiler is a lightweight C/C++ IDE available as a web app. There is a huge resource of code available to share, and the community is adding more.
All of this is designed to run on an mbed board, defined in the Hardware Development Kit (HDK). The HDK has the design files, including schematics, and the firmware to create development boards, or even products, for Cortex-M based controllers. There are currently 20 already completed mbed boards listed on the mbed site. These use devices from Freescale Semiconductor, STMicroelectronics, NXP Semiconductors, and Nordic Semiconductor. Some are produced by the device manufacturer, but others are from third parties. They are in a range of physical formats, but all communicate through USB. Other communications protocols may be on the board, or available through add-on boards.
The add-on boards are part of the component database of hardware and software. Software consists of reusable libraries for different hardware, middleware, and IoT services, which can be used as building blocks for quickly developing prototypes and products. The hardware supported includes sensors and actuators (basic elements of the IoT), storage, expansion boards, and display boards and other products.
The mbed web site (mbed.org) has a very active forum, with many thousands of members. When I was discussing this, I suggested that mbed was Raspberry Pi for grown-ups (after all, Raspberry Pi was originally intended for kids), but ARM didn’t feel that this was an absolutely accurate description.
What ARM has seen is that mbed is being used by people with interesting ideas for Things for the IoT who can explore those ideas quickly and cheaply, build prototypes for proof of concept, and even build low-volume-production products. One thing that was put to me is that with low-cost tools like mbed, people will be able to test weird and wonderful applications that would otherwise never see the light of day. These are the applications that the mainstream engineer doesn’t see, and they may turn out to be the applications that are mould-breaking.
We have said that the Cortex-M family is a good fit for the Things of the IoT. The other area where processing is needed is in the cloud, an area that has so far been dominated by the i86 architectures. Over the last few years, ARM has moved into the 64-bit arena with the ARMv8 architecture, which has so far been implemented as the Cortex-A53 and Cortex-A57 cores. These provide high performance and lower power, so much so that one of the targets for the Cortex-A53 is “thermally constrained racks”. These racks make up the server farms that carry out the big data operations within the cloud.
Providing the tool chains to exploit these processors in applications is the DS-5 Development Studio. This has recently been upgraded with a new version of the ARM Compiler tool chain – ARM Compiler 6. This tool chain is a complete break from previous versions, building on the open-source LLVM modular compiler infrastructure including the Clang C/C++ compiler front end. ARM has always devoted effort to supporting Clang, and also LLVM, as well as Eclipse, GNU, and other open-source activities. While the shipped versions of the ARM Compiler 6 will be closed-source binary, ARM anticipates that it will continue to devote considerable resources to the open-source effort alongside other collaborators. Somewhere, someone has said that the advantage of using a commercial release of an open-source product is that you get all the advantages of the input of the contributing community, but when you hit a snag you can pick up the phone and talk to the supplier, rather than having to hunt through a forum to see if anyone else has solved the same problem.
Now the conversation I had on mbed was with Simon Ford, the technical lead on mbed, whose title is Director of IoT platforms at ARM. So you would expect him to be enthusiastic about the IoT. But I have recently met Stephen Pattison, who is VP, Public Affairs at ARM. His job is to work with opinion formers, government people, and other heavy hitters for ARM’s benefit, and he, too, is a great enthusiast for the IoT. So ARM’s approach to the IoT is not just this week’s marketing gimmick but is a steady programme of investment in tools and support that if successful will help the company to maintain its top spot.
Has ARM got the answer to powering the Internet of Things?