Posts Tagged 'mbed'

mbed – Hello World!

Some of you may know that around the end of 2005 I started babbling about ideas around microcontroller tools with Chris, and making microcontrollers more accessible. Whilst it started as a little evening project, it grew to be something we dedicated a lot of time to i.e. lots of evenings! But then even further, through skunk works, ARM adopting it as an R&D project, through to us having a team working on this thing and making it real!

So now it is real! It really is! We’re online at, and you can buy the mbed Microcontroller hardware!

So what have we actually been doing, and what have we got? To give you an introduction, here is the video that came out of the last SuperHappyDevClub. Hope you like it!

btw, it is my first ever video, and it was great fun making it. I used a panasonic sd-20 camera which i’d definitely recommend, and the default mac movie editor to “edit” it.

It is strange looking back to where it started. We’ve been able to do more than we ever imagined and lots of things have changed and evolved, but i’m really proud that our original goals are still what has driven everything; letting people apply the technology as a means-to-an-end.

I think potential for applying microcontrollers is huge, and getting them in to new hands is exactly where these new innovate apps will come from. I’m especially looking forward to seeing devices really start playing on the internet, and hope mbed will be part of helping a lot of the web crowd start experimenting with what could be possible.

I’m going to have to spend some time capturing what we learned up until this point, but hope this is also just the start! So for now, here you go world; mbed – Rapid Prototyping for Microcontrollers. Have fun!



Chris and I went down to london and spent the weekend at MASHED08!

It was basically a hacking event where web-hackers from around the country were mashing together various feeds, in particular the stuff from the BBC and Microsoft/Multimap.

We decided we wanted to try and do something a little different by building hardware that interacted with the internet. Here is what we ended up with…

Packet network

It was the result of our 24-hour hack and an attempt to bring the all the web 2.0 “community” jazz in to the real world; a community based courier service 🙂

The Idea

Packages have RFID tags. People have readers. You scan a package and using a web app set the destination (click on a map, type an address, whatever). You put the package down. Someone else picks it up and scans it. It connects to the internet (mobile phone network) to find out where it wants to go, and starts pulling you in that direction. No indication of where it is going, just the direction it wants to go. Walk for a while, but now you want to go in a different direction? Put it down and leave the next leg to someone else. Hitch hiking packages!

The Implementation: ARM + RFID + GPRS + GPS + COMPASS + PIEZO + WEBAPP!

You swipe an RFID tag of a package and the micro detects and reads the ID. It then reads the current location using the GPS module and packages that and the RFID id up in to an http request, made to our server over the internet using the GPRS module. The server looks up the package identified by the ID, looks where it is going and using the GPS co-ordinates we sent, calculates the direction you need to go (0-360 degrees, clockwise from north). The server replies to the http request with this direction. The micro then plays a note via the piezo sounder based on the difference between the angle it wants you to go, and the angle we work out from reading the compass on board. Highest pitch = the direction you want to go. A bit like a metal detector, but it’s the package pulling you in the direction.

Mashed 2008 presentations

At any point, someone with the map web front end can see where the packet is (the reader updates the location by continually sending that over the network too, so the ajaxy map keeps that up to date) and change where the package wants to go by clicking – this just updates the database and the next time the package checks which way to go, it’ll get told its new heading.

I kept a log as we developed it, so you can see more of what we did at

It was pretty hard work, great fun and lovely to chat to so many interesting people as they drifted by. We aim to be back next year!

mbed Microcontroller Beta Launch!

We decided the best way to launch something was to put it in a rocket…

Take an mbed Microcontroller, add an 18g accelerometer and attach a PP3. Wrap in a polybag and tada, a rocket datalogger!

mbed rocket logger

The idea is to put this in the body of the rocket. Model rockets have a motor which after burning through pauses for a while before firing on the other side. This is designed to blow off the nose cone to release the parachute. As this is where our logger is going to be, that also means the logger will get blown out! The green wire coming out the top is our solution to tie it to the rocket nose cone so it doesn’t go to far.

We had been hoping for good weather. It was sunny but windy. Actually, very windy, to the point of being hard to stand still easily. So that unfortunately meant it wasn’t suitable for firing rockets.

But we did anyway…

After running to collect the rocket before it blew away, we opened it up, plugged it in to the laptop and fired up excel. The data looked good – first time too!

Here’s the resulting data from the flight, annotated with what we worked out was going on…

Annotated flight data

A rocket datalogger built in an hour, and fired the same afternoon giving us results first time. I’m happy with that for a launch!

This Happened…

I was lucky enough to attend the 2nd “This Happened” event, an evening of designers presenting the stories behind their interaction design projects. This is a great idea; you get to see the thought and design process, the problems and successes of the project unfolding.

I though Karsten Schmidt’s talk about his tangible user interface for the London College of Fashion graduate show was really impressive.

The show is basically a recruitment event, so users are looking to walk away with a selection of cards for the designers they are interested in. From the users point of view, you select designers cards then place them on the tables to bring up and explore the portfolios.

reacTIVision Setup

It’s using ReacTIVision for image recognition of symbols printed on the back of designers cards, using the identity and orientation information to explore the appropriate portfolio. The software is setup for this and other multi-touch table applications, and one of the interesting things for me was that it chucks out the data in a defined format TUIO over the OpenSoundControl protocol; this kind of abstraction is a great indication of how it was possible for it to be integrated easily to do the whole project in under a month! Great work.

Crispin Jones talked about his USB device, Tengu. This was particularly interesting as he’s been working with SolidAlliance who also make USB things I saw on my trip to Japan; most notibly the USB Sushi Disk and USB Humping Dog.

He talked through the design process, and interestingly some of the more advanced features it did support (like sending text to it from the PC) before agreeing the final design with the manufacturers. The final design responds to audio using a microphone, with no communication with the PC (primarially to avoid needing software on the PC); this confirms yet again that USB is a power standard first, and a communications standard second!

Massimo Banzi talked about the development of Arduino, a microcontroller board for interaction designers. It was great to see as a lot of what he talked about aligned with our observations while developing mbed (which is Chris’ and my little project aimed at enabling rapid prototyping with microcontrollers). They’ve now setup to take this stuff further which sounds like a great idea.

I think the potential when designers and web hackers get hold of microcontrollers is awesome. I’m sure the real innovations in utilising electronics and software will come from those without electronics and software expertise. It is designers that will explore interaction and tangile interfaces, and web developers who will hack mashups that start spilling over to the physical world. My aim with mbed is to help us get nearer to that!

Check out the 2nd “This Happened” event archive for details of all the talks, and links to some photos where you can see a lot of the slides.

Mobile RFID!

So I had to finish it properly! Here is a totally mobile setup…

Mobile RFID Tx

What we have here is the mbed listening out for id tags using an RFID reader. On detecting one, it then uses the bluetooth/mobile combo to send the name of the person in a text message to another mobile phone. So wave a card nearby and a few seconds later…

Mobile RFID Rx

And all battery powered! I’d forgotten how fun doing this kind of stuff can be!


On Saturday I put on the second SuperHappyDevClub; the sun was out so we setup camp in the garden.

We moved from two peope to three this time! First was a guy called Tom who works at Moviestorm, which is some sort of game/sim for creating your own movies. I’d never met him before so that was great. Turns out he’s done some pretty interesting research in to algorithmic creation of realistic cityscapes, so obviously google earth conversations came up pretty quick, and wondering whether you could recreate all the cities around the world by extracting the characteristic parameters from small samples. Later Rob joined us, who strangely enough also does some work at ARM on mobile graphics stuff. He has an interesting project to pimp up his bike with seemingly as many sensors as he can get his hands on.

My project for the day was to see what I could do with a Bluetooth module I’d got hold of. The dev-board has an RS232 connector which I very quickly realised wasn’t compatible with my no-RS232 laptop. So a trip to maplin with £20 (what?! only because i was desparate!) successfully got me a USB-RS232 interface. It also didn’t work. This made the £20 seem an even more interesting price point to choose. An hour of googling later, it still wouldn’t install. That’s the feeling of productivity we’re striving for!

I shifted over to using a bluetooth dongle instead to see what could be done, and started trying to connect to mobile phones. It didn’t take too long to be able to make a connection, and then Tom caught the bug. So talking to mobile phones became the challenge.

Rob wanted to run a backlight module from PWM, but didn’t know how it was meant to be driven. Obvious answer; pull off the back of the phone and measure it wih an oscilloscope. Obvious problem; no oscilloscope. Obvious solution; build one! So Rob started beavering away on a text readout oscilloscope!

Tom and Rob hacking hard in to the night!

Some hours later and we had the phones doing lots of stuff; it turns out a lot can be done using AT commands over a bluetooth serial conection. Things like getting the phone to ring a number, send us what buttons are being pressed, status information and even access to the text message store.

Rob got his oscilloscope working pretty well. If only we’d had a screen lying around it could have been graphicalised; so that’s going on the shopping list.

So we could now control the phones over bluetooth, but I really wanted to make the bluetooth module work (that was my goal for the day). So I ended up just bypassing the dev-board and wiring the module straight to a microcontroller. That worked much better and it didn’t take too long to be able to talk to it. Interestingly, my first experiment was to use the micro to build a USB-RS232 adaptor, which worked first time! £20 is really looking steep now.

Sending SMS from a microcontroller using Bluetooth and a Mobile Phone!

I finished the night with the microcontroller using the bluetooth module to make a connection and pair with a mobile phone. Absolutely no PC involved, just a micro and bluetooth module, so it could be battery powered too!

And of course, because the micro could now control the phone, at some early hour in the morning this is what my friend Chris received on his mobile:

Hello World! from a bluetooth and mobile phone enabled mbed board!

Microcontrollers sending text messages. Sweet! Now any device can notify you by text message!

If you are interested in joining us next time, see SuperHappyDevClub!


I cycled down to the Wellcome Trust Genome Campus to go and take part in BarCamb. It was great to be in an environment where everyone had turned up because they were passionate enough about their interests to want to share it with others.

There was quite a lot on web stuff like microformats, the semantic web and information/social organisation, and a great talk on natural language processing. It was also good to see where Nyido had gotten with their vga-over-ethernet stuff. Now available in USB flavour in monitors!

I talked about mbed for the first time; this is a pet project with the general aim to take all the cool electronics and embedded software technology now cheaply available, and open it up to the average hacker; think grown-up lego mindstorms, rapid prototyping or mashups for the real world! Although it felt a bit early to be showing it given the early state, it also seemed like a good chance to get some feedback on the ideas.

Quick mbed demo

I basically just demo’d it a bit, and it all worked! It was great to have people who’d never touched hardware interested in having a go. That’s what it is all about!

Andy and I quickly came up with the idea of a RSS Digital Photo Frame; get a stream of your friends or family photos coming live to your home as they get added to Flickr/Facebook etc. Sweet! Geoff wanted a card reader for access to his house, and Laura’s talk about the AlertMe connected home thing had everyone throwing in loads of ideas for intelligent home peripherals. It was absolutely great to follow the AlertMe talk because i’m a big fan and it is exactly the type of thing I want people to be able to do for themselves; after all the “wouldn’t it be cool if…” comments, I hope I made a few people think more along the lines of “perhaps I could make this cool thing that…”.

The other nice thing about being somewhere like the Genome Campus was that there was a fair few people there who knew stuff about Genomes and all that jazz. Someone there (who I appologise to for not knowing his name) gave me a great overview and a book recommnedation so I could understand more about it all:


I’ve hit amazon for a copy to take on holiday, so hopefully i’ll soon understand what is going on in this other world that is currently very far removed from mine. My guess is that in 5 years time we’ll be merging those two worlds, creating instruction sets and compilers for building the real world!