Mbed Blog

Beta Demos Win Prizes!

It's Official! The best beta tester demos will win one of the top secret new mbed Microcontrollers as they hit the shelves!

Win Me!

As brewed in the forums, we're going to run a competition. You've got ~2.5 weeks to make something very cool with your beta mbed. The best demos will get one of our new mbed Microcontrollers, and if they are good enough, (and pending logistics), we could even take some with us on demo tours :) Here is how it will work:

  1. Requirements: It must be awesome, useful, or both :)
  2. End date: Friday 18th September (posted on the forum, and ideally in the cookbook)
  3. Rules: I make the rules, I can change them. Accept it in the spirit it is intended and have fun!

You haven't got long, so get started now. If you haven't played with your mbed for a while, dust it off now; it's why you are on the beta in the first place! No excuses.

Post any comments, ideas, plans, progress photos, videos to the forum thread @ http://mbed.org/forum/topic/75/

Looking forward to some great projects. Good luck!


Usernames - get yours before it's gone

To support new features, mbed has introduced the concept of usernames. These work exactly as you'd expect. All new signups are now required to choose a username as part of the signup process, and that username can (normally) never be changed.

However, mbed beta tester veterans who registered prior to the recent site upgrade were all assigned usernames in the style "user123456789". Anyone with a username in this format can now change it to a "proper" username.

To grab your username, just head over to your account and choose "Change username".

Note that choosing a new username is completely optional, and will not cause any problems if you don't.


Site update


This is an update on the site upgrade, which is now complete!

What's changed:

New domain - mbed.org is our new home, which better reflects our increasingly international userbase. mbed.co.uk will continue to work as a redirect for the forseeable future.

You may notice that mbed can now support multiple microcontroller boards, this is because a new board is on it's way!

New servers and architecture. Hopefully mbed should now feel faster than ever, and will have plenty of capacity to support future growth.

And finally, there is a sprinkling of several small improvements and additional features, as well as groundwork laid for future feature additions.

This work is all in preparation for going fully public and opening the whole site to the world, which will happen very soon now. In the meantime, you are now all free to talk about mbed as much as you like! We have put a Tour on the front page (visible to non-logged-in users) which is fully public knowledge, so you can link to that for now if you need to explain to someone what mbed is all about.

If you spot any bugs/problems after the site upgrade, please add them to http://mbed.org/forum/topic/83/

Once again, I should mention I have taken the liberty of turning on site update email notification for all beta testers. If for any reason you wish to opt out of receiving these emails, just untick the box in the My Account area (http://mbed.org/accounts/profile/).

Have fun,



Website changes, scheduled downtime

Good news!

We have been hard at work over the past couple of months, and tomorrow morning (28th August, GMT/UTC) we will be implementing a major upgrade of the mbed website.

You will notice a few differences; most notably the mbed domain will change to mbed.org as opposed to mbed.co.uk, though the latter will still work. There will also be a fair few behind the scenes changes, such as moving to a shiny new server farm.

While we implement the changes and transfer the site to its new home, the website will be unavailable. It shouldn't take more than a couple of hours to complete the move. I will try and keep you updated on the move progress at http://twitter.com/mbedmicro .

After the move is complete, your feedback would be much appreciated, in the forum if possible. This is an essential upgrade ahead of opening the site to the general public, which will happen within a week or two, so if you find anything broken or unclear, let us know! There will doubtless be some wrinkles to be ironed out after the move, so please bear with us.

Finally, I have taken the liberty of turning on site update email notification for all beta testers. If for any reason you wish to opt out of receiving these emails, just untick the box in the My Account area (http://mbed.co.uk/accounts/profile/).


Dan (mbed sysadmin and web developer)


Coming Soon!

Just to let you know, we have some new stuff on the way. There will be a few hickups as we roll it out i'm sure, so appologies in advance. But here is what is coming, 3) being most important...

1) There is a new board on the way! Same idea, better MCU. Should be (is) very cool. We've made it so the mbed libraries work on it too, so there will be little impact as a user, apart from getting an upgrade. It'll be an Cortex-M3 core btw :)

2) The libraries (and compiler) have changed a lot underneath to let us support two cores with the same MCU library; most of this wont impact anyone, but the main noticable library change that will impact everything (requiring code changes) is pins now use names (enumerations) instead of just numbers (int). i.e.

SPI spi(5, 6, 7); // mosi, miso, sclk


SPI spi(p5, p6, p7); // mosi, miso, sclk

and the prototype is:

SPI(PinName mosi, PinName miso, PinName sclk);

The main reason to do this is to allow us to also use the underlying pin names of the MCU if desired (e.g. P0_3), which means if you ported your code to a custom PCB you've made with the MCU, you have access to all the MCU pins. It is an annoying change as all code needs to be adapted, but it is a fairly trivial change, and gives some useful features for next-step prototyping on a custom board.

3) We're going public! We've been working hard on the website to enable it to go live properly, and we'll be opening it all up when we put out the new board! So that means the board will be more generally available soon.

I often get questions about how much people can say about mbed, and up until now, the general response has been "not very much". The main reason was, if it didn't work, we wanted to be able to walk away without having made big promises or upsetting anyone, and just be glad we tried.

But the response has been awesome, and the technology far exceeded our early ideas, so there is now no looking back and I'm very happy to say mbed will soon be more public! So that means, when the new site goes live i'm going to lift my "ban" on blogging, flickring, youtubing etc. i.e. you will have permissions to go nuts!

You could probably tell that was coming as we even signed up to twitter :) You can follow us at http://twitter.com/mbedmicro (@mbedmicro).

I'd recommend that anything that gets posted related to mbed should be tagged with "mbed", as that gives us a really nice way for people to search what is going on.

For anyone working on projects that are in a video-able or photograph-able state, it'd be great if you could start posting them to the forum or to us. Last event we did we made a big pinboard of project photos, so it'd be cool to make a bigger one at our next event. So show us what you are up to :)

I'm also looking to feature two or three demos at any events we do; if you've got something cool, make sure you tell us and we'll pick the best three :)

So lots of fun stuff to come; thanks to everyone for your help getting this far.

Happy mbed-ing!

Compiler Update - API Documentation!

The mbed Compiler just got some updates! There were a collection of fixes to squish some corner case bugs, but also a brand new feature...

You can now expand any libraries in your projects, and the compiler will render the api documentation within them. A picture says a thousand words, so here you go:

This works not only for the core mbed libraries, but also any other libraries people post if they are marked up with the "natural docs" auto-documentation markup.

Hope you like it!

A new approach to embedded programming!

Check it out! Tom Cantrell of Circuit Cellar got hold of one of our prototype mbed Microcontrollers, and he has written an article! It is called Easy (E)mbed - An Alternative Approach to Embedded Programming. That means mbed is in print!

UPDATE: It is in the June #227 issue, which you can buy online at http://www.mygazines.com/issue/988. You can also read just this article if you go to the bottom of http://www.circuitcellar.com/magazine/, where there is a pdf with corrections from the printed article.

Looks like it might be time to start openning up the mbed Beta :) If you know people who might be interested in getting involved, you can now point them at http://mbed.co.uk/beta.

Great stuff!

Compiler Update - Fixes & Features

Just to let you know, the compiler has just undergone some updates... 

Most notably, this should fix a bug we've seen a few of you report around reliability of the compile/download button. This was causing the compiler to intermittently hang, which is really bad news! This should now have been squished! If you do find any reliability problems, especially compiler hangs or failed download, please make sure you tell us! This is not acceptable behaviour so we want to know if it happens. Thank you to those who reported the previous bug, and hopefully you will no longer see these problems. 

Also in this update: 

  • "Find" within a file (click the find button, or hit ctrl-F) 
  • "Clone" projects and "Save As.." files (i.e. replicate them) 
  • Increased file import size limit (was causing things to fail to import)
  • A few other fixes to make things run more smoothly 

Hope you enjoy it :) Any feedback welcome... 

Have fun! 


Compiler Update - Download Button, Minor Improvements

The compiler has just had some minor updates... 

As requested by a few people, the compiler now supports a "Compile-And-Download" button. It should help make things a little more clear, and combined with the fact we've added keyboard shortcuts, a little faster too (e.g. Ctrl-D). 

We've also removed a bottleneck that was causing saves to be sluggish, improved some of the import support, and added a few other features and fixes. 

If you see any bad behaviour or bugs, please make sure you email us at support@mbed.co.uk. 

Library Update - Features and Fixes

edit: updated to newer syntax

I said in the last library update that we were spending a lot of time (John in particular!) working on getting the foundations right. Well, it wasn't an excuse, and it is starting to pay off :) Here comes v6...

And yes, we now have RPC! This is an idea i've had floating around a long time, and in many prototypes, but is finally here in it's first official form...


#include "mbed.h" 
DigitalOut led(p1, "led"); 
int main() { 
        char result[64]; 
        rpc("/led/write,p1", result); 
        printf("%s\n", result); 
        rpc("/led/read", result); 
        printf("%s\n", result); 

Remote-procedure call of mbed Interfaces! Of course, the fun part is that what generates the rpc strings is totally flexible. Hopefully there is much fun to be had here! In particular, the plan is to use the RPC to be able to control the mbed over any transport mechanism (serial, http, bluetooth, ...) form any language (python, javascript, teraterm, ...).

It is built so you can create objects remotely too (new/delete), and even make your own classes that plug in to the RPC :) I'll put more on http://mbed.co.uk/projects/cookbook/wiki/RPC.

But there is other stuff too! Here are the other things that made it in this release:

The Real-Time Clock is now functioning, and will run as long as there is power connected, either through one of the main power supplies, or through the 3.3v VB (Battery Backup) input, designed for a coin-cell battery. The standard C functions time() and friends work, and there are a couple of helper functions to simplify things; set_time() allows you to set it, and time_str() returns a string with a human readable time. Look in the api under RTC, and we'll also aim to put up some examples in the Cookbook.

AnalogIn and AnalogOut now support read_u16() and write_u16() methods. This should give a natural way to access analog interfaces when dealing with samples, and be faster. We haven't done any optimisation yet, so they will likely get even faster in time too...

The multiplier that Ticker and Timeout intervals were seeing of ~105% has now been fixed. I have a photo of a frequency generator to prove it! (but google doesn't let you attach them easily). They should now actually be able to time :)

A new function, mbedinfo(), can be called at any point and will dump out memory stats and other such stuff to stdout (USB serial port). This is useful just to check the state of memory etc, and is meant to be a similar dumping ground to how PHP uses phpinfo().

For debugging and error reporting, we'll be moving to using error(), and plain old printf(). For the techies, error() goes to stderr and then dies, and printf() goes to stdout, which in the default case means it appears on the USB serial. We'll be depricating the ugly DEBUG() and ERROR() functions.

And for completeness, here are the other notable features and fixes:

  • DigitalIn rise and fall interrupts can now attach object methods as well as static functions
  • Serial and SPI interfaces support specifying "Not Connected" (NC) on selected pins
  • p1-p4 now map to LED1-LED4, so you can just do "DigitalOut led(p1);" now
  • The Timer object was not reseting when reset() was called while running - FIXED
  • SPI format now uses a single mode parameter rather than seperate pol and pha
  • A prototype SPI3 class has crept in, which supports devices with a single bi-directional data pin

When you start a new project, you will automatically pull in the new mbed Library. For existing projects, clicking on the mbed library in your file tree should provide you with an "update" button. As ever, please bring to our attention any problems, questions or suggestions you have.

Have Fun! 

You need to log in to post a reply