mbed Blog

Building SalesForce IoT applications with ARM mbed at dreamforce 2014!

Next week we'll be in San Francisco at Dreamforce '14! We're hosting a workshop and teaching how to use mbed and the Force.com REST API. In the workshop attendees will use RFID tokens to create Cases in Salesforce. The RFID token is identifies a service technician on-site fixing an intelligent street light. Case data is recorded and sent when the technician presents his/her RFID token. The example scenario and associated project code serve as an introduction to mbed and mbed device programming. Additionally, the project shows how an mbed device can easily connect to the Salesforce.com cloud directly.

For those of you unable to attend here is the complete workshop code. For those wanting to create integration between their own mbed projects and Salesforce.com, please have a look at the mbed Salesforce Interface API.

Come join us at DreamForce 2014 for an awesome learning experience on the bleeding edge of IoT.

/media/uploads/mbedAustin/rfidboard_-9-.small.jpg

Announcing our plans for mbed v3.0

We are really pleased to announce our plans for the next generation of mbed!

As you are all aware, we have been working hard on pushing the boundaries of abstraction, productivity and collaboration in the embedded space for a while. Last year it became obvious to us that 1) with the right investment, we could take our thinking even further and also make it applicable to production-grade software development, 2) the disruptive jump in complexity brought on by Internet of Things (IoT) devices was going to be a huge catalyst for a new industry that would expect the levels of productivity we aspire to deliver, and 3) there were a lot of people that agreed with us.

The revolutions in web 2.0 and smartphones were enabled by the creation of platforms and ecosystems, and the widespread innovation they made possible. The complexity and requirements for IoT development at scale means classic embedded development as is just won't meet the needs, so embedded must enter the platform era too!

So we have been working on investing in mbed to deliver a proper full-stack platform that could be used for production software development. That means the technology, the team, the partners and ecosystem to make it possible. Today, we finally get to share our plans!

Here are some of the fundamental highlights for mbed v3.0:

Command-line Tools

Command-line Tools

We are working on command-line tools for mbed! To put simply, that means you'll be able to download our SDK tools package to create, work with and build mbed programs on your own machine.

But it goes a bit deeper than that. The underlying build tool we are creating (yotta) is very much inspired by the very successful NPM, and deals not only with building code, but also managing and working with software components and dependencies properly using Semantic Versioning rules. This will give us a path to well managed software component releases for our core libraries and across the whole community, and an easy and powerful way to build and manage your projects with no fuss.

That doesn't mean the Web IDE is going away; it'll be using these same tools hosted behind the scenes on our servers, so will continue to be a great way to get instant access to a latest and greatest development environment. It just wont be the only way :)

You may have seen we started working on a more advanced test framework earlier in the year. Well that'll be a key integrated part of v3.0 such that we can move to unit and regression testing being the standard, for us and the whole community.

mbed OS

The biggest fundamental investment we are making in v3.0 is a full-stack platform you can rely upon to build an application, that brings connectivity, OS primitives, power management and security in to the core. This is mbed OS.

Here is the high level view:

mbed OS overview

Things like the peripheral APIs and components of the Application Framework have always been part of our core SDK, and grown incrementally. This has worked very well for providing portability across different target microcontrollers and toolchains, and also in terms of management of the code itself. We will be making investments at in these areas for improving power and event management.

But on top of this, we have had a huge number of contributed libraries and components that have enabled all sorts of things, some of which have become near essential components. We have an optional RTOS (among other contributed RTOSes) that can included, but doesn't need to be. We have various networking libraries and various versions of each people have provided, but it is sometimes not clear which to use or where to feed back bugs. At the same time, we have identified some holes in functionality we think are important, so we have worked out how to make them available.

So it is time to pull some of this functionality in to the core so we chose one way of doing it that can become stable, well integrated and relied upon by all users. Here is some more on what we are doing for each of those features:

Connectivity

Connectivity

Wireless connectivity can be really complex, but generally abstracted to some very simple common interfaces. We are building those transports and interfaces in to the core.

The really key standards for wireless connectivity that we are working on are:

  • Bluetooth Smart - Ideal for ultra-low power connections to Smartphones, Tablets and Laptops for things like wearables and smartphone accessories
  • Wi-Fi - The standard home and office IP backhaul found almost everywhere, with Wi-Fi modules getting exceptionally cheap
  • Thread - The new low-power wireless mesh IP network for home applications
  • 6LoWPAN - Sub-GHz IP based mesh-networking for industrial and outdoor applications
  • Cellular - IP connectivity away from WLAN infrastructure

Each of these can be made accessible to users in a consistent way, and with Wi-Fi, Thread, 6LoWPAN and Cellular, the IP abstraction works transparently.

Power Management

Power Management

Power management can't be an afterthought as it has implications down to how drivers are written and how you construct code. When you are running from a coin-cell, these things matter.

We are starting with extending our HAL to support non-blocking drivers and callbacks by default, and then building on that the hooks and intelligence in to our Application Framework to allow programming patterns that are conducive to energy efficiency and enable the processor and peripherals to go to sleep automatically when they are not in use.

Security

Security

When you are building connected devices, security is not an optional feature. Yet, without access to the trusted libraries you need or the standard security patterns you should use, it is hard to know how to get it right. Using IP helps us a lot as the models of end-to-end security of the web are well understood.

To avoid the various half-ports and implementation mistakes that mean you haven't really got the security you thought you had, we are going to be providing pre-integrated implementations of TLS and DTLS (a.k.a SSL) and how to use them so you can get your devices securely connected in a standard and trusted way.

We are also working on implementing the security schemes needed to securely bootstrap devices on to the network, and some really interesting technology to provide protection of things like keys and certificates within the device so they can't be leaked - something that will quickly become an essential requirement for connected devices.

mbed Device Server

mbed Device Server

This is a new thing we are working on to help make connected devices connected. We are building a scalable, industry strength Device Server that we can license to cloud and service providers to help them get IoT devices connected in to their platforms.

It is basically analogous to a Web Server that accepts connections from mobile phones or web browsers, but in this case, handles the connections from IoT devices and all the differences in protocols and behaviours they have.

It makes the devices accessible through standard REST APIs so they can be accessed by enterprise software, web applications and cloud stacks. So properly bringing the devices in to the world of the web.

Release Roadmap

To be clear, this is not something we are releasing now. We have been preparing the groundwork to start rolling this out since we really pressed go one year ago, but there is still a lot of work to do. We decided it was now the right time to share our plans, as our approach is an ecosystem one. This is something we are working on with a lot of partners, and a lot more still are aligning with what we are doing, so it is important to provide the visibility to allow the success and impact we want to achieve.

Our aim is to release a first proper version of mbed OS in a year, and we will be introducing early versions of components and functionality at alpha release milestones. You can find the mbed OS release schedule here:

http://mbed.org/technology/os/

More information on the releases themselves as we go, but for the first one, expect some focus on Bluetooth Smart, 6LoWPAN mesh networking and our HAL!

Team and Partners

We have come a long way! You may not realise, but we have now setup as a totally new business unit in ARM, have whole floors to ourselves and locations around the world. And most importantly, been hiring some really smart people!

Some of us together for a Summer Team Week in Cambridge Some of us together for a Summer Team Week in Cambridge

We are still growing fast, so if you think you should be part of the team, helping us on our mission, check out some of our latest job postings.

But to be clear, it hasn't been just our team working on this for a long time. This is something we're building in partnership with many other of the top tech companies. Yesterday, we held our invite-only mbed Connect event to go in to more details with some of these top companies; this year we had to make space for over 150! It was also very rewarding to be able to share the list of launch partners who are signed up to work with us to make mbed a success for everyone:

ARM mbed partners

Conclusion

I hope you are as excited about what I've laid out here as I am, and we are looking forward to start rolling this out. Look out for more information later this year!

And if you didn't notice already, we have moved our developer site to a dedicated developer domain, and made way for a front end site to lay out our plans and partners for pushing mbed even further at the root http://mbed.org. Everything should still work fine, but please tell us if you find things broken!

Thanks to everyone who has been part of the journey so far, and we looking forward to working with everyone to continue to take mbed further than we could have ever imagined!

10th mbed Fest - Summer 2014

mbed Fest is an mbed user meet-up event that was held in Tokyo on the 30th August 2014. Attendees are mbed core users, beginners and electronics hobbyist. There were many great demos shown by the attendee's of their work with mbed. It was a excellent event for gaining useful information from a variety of developer and networking.

Japanese information is here.

/media/uploads/MACRUM/fest2014s_ginza_small.jpg


This was the 10th mbed Fest since 2010 and about 100 users attended this meet-up event in single day. We also had an Internet live stream (using niconico LIVE) available with 475 unique users watching the event!

/media/uploads/MACRUM/fest2014s_room.jpg

The meeting was organized by mbed fest planning committee and the following partners:

/media/uploads/MACRUM/fest2014s_boards.jpg

[Presentations]

/media/uploads/MACRUM/fest2014s_speaker.jpg

TitleSpeaker
WelcomeJKsoft
mbed ovewview and updateARM K.K. Toyomasa Watarai
Let's review Freescale mbedFreescale Semiconductor Japan Katsutoshi Furue
niconico video display by mbedmia
What is the mbed interface?Switch-Science Yoshihiro Tsuboi
Renewing legacy technologies by mbed@qa65000 Yamasho
Easy robot development by mbedToriten

[Works by mbed]

/media/uploads/MACRUM/fest2014s_works.jpg

A lot of projects were demoed at this event, including many fun gadgets and prototypes targeted to go to real production.

[mbed hands on workshop]

/media/uploads/MACRUM/fest2014s_kuma.jpg /media/uploads/MACRUM/fest2014s_1st_step.jpg

As most of the attendees were mbed beginners, this workshop gave guidance on how to register on mbed.org, create a new bliky program and to flash your program onto the mbed LPC1768 platform. The trainer of this workshop was Okano-san.

[Let's reuse your stacked boards!]

/media/uploads/MACRUM/fest2014s_kiban.jpg

This was a new project at the event this year. The idea is that if you have any unused MCU development boards in your drawer (we called them, stacked boards), they can be a treasure for someone else and they can be reused by free! A ton of boards were donated for this project and it looks like an electronics junk shop in Akihabara!

[Lightning Talks]

/media/uploads/MACRUM/fest2014s_lt1.jpg

TitleSpeaker
Wallbot BLE prototypeJKsoft
Most powerful mbed which I thought@minicube
Bluetooth LE connection between mbed HRM1017 and Windowsmatsujirushi (Takahashi Matsuoka)
Introducing CQ publishing magazine Interface and Transistor GijyutuMai Takahashi (CQ Publishing)
Tried to connect mbed to PaaSTxRacing
Using mbed with UnicodeFukuda
Got a job using mbedAsagi Saeki
Introducing Treasure DataRieko Suzuki
Human-powered aircraft simulatormeka
Introducing GETABLEYone2@respon

We love mbed

We really enjoyed the presentations and all of the demos. We hope to have more of these mbed user meetings in the new places next time!

/media/uploads/MACRUM/fest2014s_all.jpg

ARM is reaching out to developers like you!

ARM is currently working on a project to better understand how to engage and collaborate with ARM developers through digital sites and communities.

We're really proud that the mbed community has become a great example of how this can work well, but I'm also sure we could do better too. As such, I thought it'd be really useful for mbed and ARM in general to hear what we could do to better support you. This is another opportunity to make working with mbed and ARM better!

We hope that you will be willing to complete this ARM survey, which should take around 15 minutes of your time. Please note that the survey will end on Tuesday 26th August:

Thank you in advance for your feedback!

Scheduled Maintenance Saturday 23rd August

As a response to recent downtime caused by problems on mbed.org’s upstream network connection network hardware is being replaced. This will result in mbed.org being offline on Saturday 23rd August from 6am PST (2pm UK, 10pm Tokyo) until 10am PST (6pm UK, 2am Tokyo).

We apologise for the inconvenience this will cause to some of you and hope you will understand this is necessary work.