This week, I’m blogging live from Arm TechCon, an event designed to connect the hardware and software communities. All of the industry pundits, engineers and makers here have been buzzing about ARM® mbed™, so I wanted to provide some insight.
You maybe wondering…what’s the deal? Is mbed hype or the next best thing? As an embedded engineer at Silicon Labs, I wanted to share my thoughts.
So, what is mbed?
First a little bit of background on mbed, which ARM created to simplify device development. In many ways, it’s similar to projects like Arduino. They both aim to simplify prototyping by giving you access to a library of hardware components and free, ready-made software. Additionally, mbed is compatible with all Cortex-M class processors.
Besides the tools created by ARM, mbed also has an awesome community of embedded enthusiasts that share code publically. The availability of these free snippets allows you to easily get started or expand your project. In the community, you can also find a free, fully-featured online IDE, tightly integrated with a revision control system.
All of the basic functionality outlined above is called ARM mbed 2.0. Recently, however, ARM launched mbed 3.0.
ARM mbed 3.0
The biggest difference between ARM mbed 2.0 and 3.0 is the amount of software integrated into it. With 3.0, ARM is also bringing technologies like Thread, TCP/IP and cloud connectivity directly to the user. mbed 3.0 also includes an operating system (OS), which is why the term “mbed OS” is often used interchangeably with ARM mbed 3.0. Since the OS-part is a defining facet of mbed 3.0, it can be found on https://www.mbed.com/en/ (note the change of .org -> .com at the end).
mbed OS contains unique features that enable it to be a basis for low-power systems, which is critical for IoT applications. It includes a scheduler for making sure that tasks get their appointed run-time. It also includes a hypervisor, called uVisor (micro-visor), to separate different task so that user-tasks cannot compromise the security of the complete system. This capability also opens the possibility of running user-generated, or insecure code on the devices, as the uVisior will make sure that it only takes the resources it is granted and cannot access secure information. It also protects against attacks. If you have a complicated RF stack and if someone breaks into it, they will find it very difficult to gain access to the rest of the system.
What’s in it for me?
Using mbed 3.0 gives you access to a good scheduler and an excellent framework to develop cloud-connected devices. Part of ARM’s mbed 3.0 offering is integrating a solution for you to easily manage your cloud-connected devices. You can easily see how they are performing, upgrade their software, and check their status. With mbed OS this is already integrated, allowing you to seamlessly transfer data from the device to the cloud and aggregate it using one of ARMs cloud partners.
So if you don’t want to spend time on all the nitty-gritty details of how to get your data from the device to the cloud or learn how to manage 10s of thousands of devices, ARM mbed is the way to go!
In related news, today at the conference, ARM also introduced its new wearables reference design featuring mbed OS. The design incorporates a lot of advanced power saving features, which is enhanced by the power-management APIs that my peers at Silicon Labs have co-developed with ARM. These low-power mbed APIs now provide a foundation for all peripheral interactions in mbed OS.
Want to get started?
To easily get you started, we’ve created a small-form-factor version board for developing both wearable design and IoT nodes with mbed OS. Called Thunderboard Wear, this demonstration board features our Giant Gecko MCU, Bluetooth Smart connectivity and myriad sensors, enabling you to evaluate optical heart rate monitoring and a lot of other fun stuff!
So, what are your thoughts about mbed? Please share in the comments below. I would like to hear from you.
Could you please dig into some of the pros/cons of using vs not-using mBed? For example, why wouldn't everyone who has access to mBed immediately start using it?
Is it suitable for mass production? Can it be easily tweaked for non-blocking IO, deep sleep states, etc? Or is it designed as a turnkey "this is good enough for most people" solution?