Beta Testers - The First 5 Minutes

21 May 2009 . Edited: 22 May 2009

Dear Beta Testers, 

You wake up excited, jump out of bed and run downstairs! Yay, a little package has arrived; it's like Christmas has come early :D So you play and all is wonderful... until you are reminded you need to write a thank you note. "Oh mum, do I have to?". The answer, as always, is yes! 

So the thank you note we require is a little different. The aim is for you to capture all the successes, dead-ends, confusions, errors, surprises, good/bad points that happen during the first experience with mbed. Try to make your notes very soon after (or during) starting, as the subtle aspects will be forgotten very quickly. To make the first minutes as intuitive and successful as possible, we need to feel all the pains (however small). So what went well, what confused you, what would you change, what works and should stay the same etc. 

We'll aim to keep this thread as the "first five minutes" thread, so only the reports (and any responses) in this one if possible; for other questions/queries/observations as you dive deeper, please just start a new thread so we can keep this distinct. No one on the forum bites, so please don't hold back :) 

Happy testing! 

Simon

21 May 2009 . Edited: 22 May 2009

Hi, 

The first 5 minutes went very smooth for me - the set up procedure was very slick! The package was delivered to my parents house so I had a quick play with it there before bringing it home, so essentially just set up an account and had a quick look around the website. First impressions on opening the package were what a great idea the little card with the pins on is! I had a print out of the mbed64 pinout stuck to my wall previously, but this is much neater and a very nice touch. 

The first time I plugged it in (using Windows XP Home), the automatic install that windows performs failed half way though and I got a bubble warning of "This device may not have been installed", and it didn't show up as a drive in My Computer. However unplugging and plugging back in solved this straight away and it appeared immediately as a drive in my computer. I think this glitch is much more likely due to the age and condition of the computer than anything wrong with the actual board. 

The procedure of opening the webpage and following the link is great - very self explanatory and straightforward. The email with the account set up details came before I'd even had chance to log into my email account, so no complaints there, and the rest of the procedure was quick and easy. The first thing I did after having a quick poke around the site was to download the helloworld.bin program to confirm everything was working - this again was easy and straightforward. 

I had a bit more of a play around yesterday evening and found everything overall very neat and easy to use. I didn't have any major problems, but did note the following things which may be of interest: 

  • The mbed start page (mbed.co.uk) only brings up a blank mbed logo if you aren't logged in, with no option to log into the site (unless I've missed it). The only way i've found to actually get logged in and therefore start using the site is to try and visit a page you need to be logged in to access. This is fine if you have something bookmarked, but for me it meant just making up a url (mbed.co.uk/foo), which I was then promted to log in to access before being given a 404 error. The site can then be accessed using the navigation links on the error page. 
  • The documentation on the basic functions is great and coveres everything necessary, however there do seem to be some features which are so far undocumented. For example, the ethernet and usb pins, plus the VB, nR, IF- and IF+ pins don't really have any explanation I can find. I can understand if the usb and ethernet stuff isn't implemented yet, but it would perhaps be nice to have a placeholder page or something similar, just to explain what the pins are for and how they might be used in the future. 
  • I guess this isn't really relevant to the beta stuff, but I had some trouble copying my old code I'd created in the alpha compiler into the new beta one. The alpha compiler no longer seems to work at all with firefox on mac (it brings up a scripting error and firefox has to be force quit), so I had to do it using IE on my windows laptop. In addition to this, everytime I logged into my alpha account it seemed to log me out of my beta account, so I had to keep logging back in and out of each account. However once this task is done I guess the alpha stuff can be forgotten about, so this problem isn't a serious issue. The beta stuff all seems to work fine with firefox under osx though, which I guess is the main thing. 
  • The link to the mbed library in the compiler under each project seems a really good idea and I have found it really useful in the past to be able to browse the library source to see how stuff works. However the link provided only brings up a basic svn html view of the code, rather than displaying it in the trac browser. It would be nice if it could be viewed using this interface, similar to the libraries for gps, rfid etc. 
  •  This is not really to do with the overall experience, but to do with the library in general: With the alpha api it was possible to create Timer objects using the different timer channels of the uController, however with the new library it only seems possible to create a single default Timer. If this is the case, is there any abstraction provided for the different timer interupts? 

These are all just little niggling things however, and overall I've so far found the environment really easy to use. I haven't had a proper play around yet, but will try and port some of my alpha stuff over later on today and report back on how I get on and if I find any other issues... 

Thanks for the great new toy! 

Max

21 May 2009 . Edited: 21 May 2009

Just a quick update about using the usb serial port with osx - when downloading the new mbed.ini file, safari recognises the file as plain text and appends a .txt extension to the file name. Manually changing the filename back to mbed.ini in finder doesn't work, as this only *pretends* to change the file extension! Terminal verifies that the file name remains as mbed.ini.txt, so just making the change in finder and copying to mbed does not work. I have checked and manually changing the file name in terminal then copying it to mbed does work, however this seems quite a faff! 

Downloading the file in firefox in the first place works fine, as firefox doesn't add the extension. I guess this isn't a big issue, seen as you need firefox to run the compiler anyway, but thought it worth mentioning, especially seen as safari is the default browser for most people, and so it is the one used to open the mbed.htm file from the board if it is double clicked. 

Other than that, everything seems to work fine wrt usb serial connections on mac - I've played about with some simple code for sending text to and from mbed and displaying it using screen and it seems to work fine. The instructions on the site are fairly clear and straightforward, though it might be worth mentioning on the bit about finding the device name in the "HelloPC" section, that the commands (ls /dev/tty.usbmodem* etc) should be entered using terminal. I know this is fairly obvious and self explanatory, but IMHO a lot of more casual mac users might not be familiar with using terminal (in the same way that windows users might not be familiar with the command shell).

21 May 2009 . Edited: 21 May 2009

Hi, 

I have evaluated many embedded platforms in the past, the mbed board gave to me the smoother experience: 

  • Zero time to install the cross compilation environment and IDE. 
  • Zero time to install the programmer drivers. 

Also the package is very smart, this was the first board I saw of this kind with a DIP ready to be plugged on a breadboard. With other evaluation boards I was planning the interfacing of new hardware as a later step, now I am immediately thinking of new stuff to interface to it. 

The only thing I disliked was the lack of the library sources in the linked SVN repository: http://mbed.co.uk/svn/libraries/mbed/trunk 

The second step I took was to look for it in the site: http://mbed.co.uk/projects/libraries 

There I was welcomed with the following message: 

Access Denied - Sorry, you do not have sufficient permissions to access this page. 

Thanks, 

Emilio

21 May 2009 . Edited: 21 May 2009

Hi, 

I've only played very briefly with it so far; waiting for a few other components to turn up before I actually get around to doing anything 'useful' with it. But what I've seen so far is very impressive, here are my notes from my first little play with it: 

  • MBED popped up happily in GNOME as soon as I plugged in, no problems at all there. 
  • I really like the included I/O diagram card 
  • I like the fact that there are warnings included in the manual about the need for syncing to mass storage devices under Linux. 
  • I copied across and ran the HelloWorld.bin program happily. I didn't notice diagram on the getting started page at first, and instead looked at the card to check which was the reset button, which doesn't have it labeled so I just assumed it was probably the big blue button type thing (which happily it was). That can mostly be attributed to me being pretty unobservant though. 
  • Found that I had to switch to firefox 2 as firefox 3 beta isn't supported by the compiler yet. 
  • Right clicking on "My Programs" to create a new program seems a little undiscovarable to me, why not also have a "New Project" button in the toolbar? 
  • Like the fact that expected short-cuts like Ctrl-S, Ctrl-Z, etc. work in the IDE. 
  • Found that I couldn't right click -> "Save As..." on the links to compiled files in Firefox. 
  • The USB socket feels a bit tight when removing the cable. 

Overall I'm very impressed, I love the fact that it requires pretty much no setting up to get working, hardly took any time to go from unpacking it to having it running programs. 

Thanks,

Mike. 

21 May 2009 . Edited: 21 May 2009

  • The USB socket feels a bit tight when removing the cable. 

Upon further fiddling this seems to be a property of the USB cable rather than the socket, as another cable pops in and out with a lot less force. 

Cheers, 

Mike. 

21 May 2009

Hi Beta-Testers! 

Glad it seems to generally be going very well! Some quick responses to some of the points raised so far: 

Watch out for the USB cables. I didn't have any joy when I first tried hooking mbed up, and decided that the cable was at fault when it became too hot to touch! 

The USB socket feels a bit tight when removing the cable. 

Looks like we could have a bad batch of USB cables! Please watch out for this, and continue to feedback any other instances of problems you have with them. 

The mbed start page (mbed.co.uk) only brings up a blank mbed logo if you aren't logged in, with no option to log into the site (unless I've missed it). 

The documentation on the basic functions is great and coveres everything necessary, however there do seem to be some features which are so far undocumented. it would perhaps be nice to have a placeholder page or something similar, just to explain what the pins are for and how they might be used in the future. 

Right clicking on "My Programs" to create a new program seems a little undiscovarable to me, why not also have a "New Project" button in the toolbar? 

Found that I couldn't right click -> "Save As..." on the links to compiled files in Firefox. 

finding the device name in the "HelloPC" section, that the commands (ls /dev/tty.usbmodem* etc) should be entered using terminal. 

Good points; added to the to-do/look at list. Thanks; just the sort of stuff thats a real help. 

The link to the mbed library in the compiler under each project seems a really good idea and I have found it really useful in the past to be able to browse the library source to see how stuff works. Howver the link provided only brings up a basic svn html view of the code, rather than displaying it in the trac browser. It would be nice if it could be viewed using this interface, similar to the libraries for gps, rfid etc. 

The only thing I disliked was the lack of the library sources in the linked SVN repository: http://mbed.co.uk/svn/libraries/mbed/trunk. The second step I took was to look for it in the site: http://mbed.co.uk/projects/libraries. There I was welcomed with the following message: Access Denied - Sorry, you do not have sufficient permissions to access this page. 

The reality is that this page doesn't exist rather than you don't have access. Sorry for the harsh message :) (will fix). The library aspect is basically functional at the moment but as you point out not particularly well integrated yet. That'll be one of the things we'll be working on next; we have a fairly good idea of what we think will work well (including making it easy to access the trac browser), but any suggestions would be very welcome. As for access, I plan to make the libraries available for use in both commercial and non-commercial applications free-of-charge, although probably not the source yet just to ensure it doesn't fragment the libraries in the early stages. 

This is not really to do with the overall experience, but to do with the library in general: With the alpha api it was possible to create Timer objects using the different timer channels of the uController, however with the new library it only seems possible to create a single default Timer. If this is the case, is there any abstraction provided for the different timer interupts? 

This was intentionally removed. I want to redo it properly to virtualise them to allow as many timer interrupts as desired. At the moment, there is a virtualised "Timer" which means you can have as many real time timers (counters) as you want (start/stop/reset, read) and I think that works really well (any feedback on this would be great), so i'm planning the same for *Timeouts* (count down and trigger function) to allow as many of them as you want unconstrained by underlying hardware (it's just a little more tricky :). Any input on the desired use model would be great to help me come up with the most appropriate API. 

Thanks for these reports so far. When filing yours, don't worry if you feel like you are repeating stuff. The different perspectives are very useful and also help indicate importance. 

Have fun! 

Simon

21 May 2009 . Edited: 21 May 2009

First 10 minutes - a nice 4 LED flashing night rider effect (well 1/2 of it at least). 

Simon, thanks for sending over the mbed board, it truly was a Christmas like feeling when I received this unexpected package at work today. I looking inside and saw the small circuit board and new exactly what it was :) The small cheat sheet pinout diagram is a really neat idea, I especially like the way it is 1:1 scale with the board itself for very quick lookup. 

Like most (overly keen) engineers I try to avoid reading instructions as much as possible but your 1 side of A4 makes it a no-brainer, plus there are only 2 steps on these initial instructions. So, I logged it, followed the tutorial, downloaded the LED flash program, pressed reset and "it just worked". No tools to install etc, very very easy. Next step, compiler. At first there was some confusion here, I didn't read the instructions fully as I was trying to feel my way around. It wasn't obvious that I needed to do a right click to create a new program but I found it eventually. Maybe a "New Program" button in the top tool bar could be useful? 

I copied and pasted the example LED flash program and made some mods to enabled more LEDs (just guessing at this point rather than reading the handbook): 

Hit save, hit compile, download, press reset and done... worked first time, a VERY pleasant experience! 

So here's the results of my first 5-10 minutes (BTW "&" is bit-wise AND, and ">> n" is a shift right by n bits operation): 

#include "mbed.h" 
DigitalOut led1(LED1); 
DigitalOut led2(LED2); 
DigitalOut led3(LED3); 
DigitalOut led4(LED4); 
int counter = 1; 
int main() { 
        while(1) { 
                led1 = counter & 1; 
                led2 = (counter >> 1)&1; 
                led3 = (counter >> 2)&1; 
                led4 = (counter >> 3)&1; 
                wait(0.5); 
                counter = counter << 1; 
                if (counter > 8) { 
                        counter = 1; 
                } 
        } 
 }
21 May 2009 . Edited: 21 May 2009

One last note - I find the font on the compiler window a little confusing regarding the number '1' and lower case letter 'l', i.e. they look the same!

21 May 2009 . Edited: 21 May 2009

The package was there when I came home for lunch, so I took the mbed and USB cable back to work with me. I dragged the MBED.HTM file to my browser. 'Configuration - USB Disk only' confused me. Perhaps "Configured as 'USB Disk only'" would have helped me construe it correctly. After I realized what it meant, I changed the configuration to 'Windows USB Serial Port and Disk' and followed the instructions for installing the USB serial port driver. The only discrepancy I saw between the walkthrough and the dialogs that I saw was in the second dialog, where the text was: "This wizard helps you install software for: Microcontroller" (instead of 'mbed Serial Port' as in the screen shot.) 

Then I installed TeraTerm and connected it to com port 7, which showed up clearly labeled as the mbed. I downloaded HelloPC.bin, and in TeraTerm|File|Send File..., chose HelloPC.bin. TeraTerm showed the file transferring, but it didn't show up on the mbed. Okay, maybe I was a little too excited to think straight. After stroking my chin briefly, I dragged the file onto the mbed drive, reset the device and saw the test string in the terminal window. Enough with the PC at work. 

When I got home this evening, I connected the USB cable to my IMac (OS X 10.5.3). (You should probably mention the need to use Firefox.) I re- configured the mbed for 'USB Disk Only', and got HelloWorld.bin running immediately. Compiling was straightforward, too. On the mbed html page, I clicked 'Firmware 12249 (check for firmware updates)'. This opened a page with 'Firmware', 'Latest Version', and 'Instructions' but no associated text for any of them. 

By the way, I used two breadboards for the mbed. The ones I have consist of a central grid with two detachable +- power buses. I removed one of the buses and attached the two central grids together with one bus between them. Now the mbed straddles the bus and each mbed pin has three connecting points available. 

By the way, when I attached the mbed to a PC again, I saw the the Mac had left ._MBED.INI, ._.Trashes, .fseventsd, and .Trashes files on the mbed. 

I have to say that this is the neatest microcontroller I've worked with; it has a very nice API and great I/O. And the web-based development environment/handbook is a very classy approach. Web-only development does make me a little nervous, though. What if the web's not available? What if your server is down? A stand-alone compiler would be a nice safety net, even if I did use the browser for most development. (Debugging would be possible, too.) 

Thanks for a very exciting hardware/software/development environment combination! 

21 May 2009 . Edited: 21 May 2009

Hi Simon, 

First 5 Min Impression: 

You have made developing embedded applications entirely too easy...you've forgotten that all of the endless frustration of trying to get a silly LED to blink on a new evaluation board with new compiler and devlopment environment can be character building. Uh-huh, sure, right...if you're a masochist ;-) 

Seriously, you've really done an excellent job making this easy to get right to the fun part of embedded programming.  I had no trouble at all compiling, downloading and running programs. 

Comments: 

  • On the "Compiler Getting Started" page, at first, I had a little trouble locating the "Compiler" link even with your note about "site menu (top-right)".  I'm probably splitting hairs here, but maybe if it read "site menu (this page, top-right)" it might be a little clearer since this page would be the first exposure to using the site menu for new users. 
  • Your documentation and the examples really make this work. The links for more information are right where they need to be. 
  • The wallet/pocket-sized card with color-coded and identified pinouts is a nice touch. Since is it actual size, it can be used to assist in board layout. 

Ed 

21 May 2009 . Edited: 22 May 2009

Hi All, 

The documentation on the basic functions is great and coveres everything necessary, however there do seem to be some features which are so far undocumented. For example, the ethernet and usb pins, plus the VB, nR, IF- and IF+ pins don't really have any explanation I can find. I can understand if the usb and ethernet stuff isn't implemented yet, but it would perhaps be nice to have a placeholder page or something similar, just to explain what the pins are for and how they might be used in the future. 

Some additional notes have been added to http://mbed.co.uk/handbook/Datasheet, including links to some rudimentary information about ther Ethernet and USB Device interface. If you'd like/need more information on any of this, just let us know.

Thanks for the feedback, please keep it coming! 

Cheers, 

Chris 

22 May 2009 . Edited: 22 May 2009

Hi All, 

Based on your feedback: 

The instructions on the site are fairly clear and straightforward, though it might be worth mentioning on the bit about finding the device name in the "HelloPC" section, that the commands (ls /dev/tty.usbmodem* etc) should be entered using terminal. I know this is fairly obvious and self explanatory, but IMHO a lot of more casual mac users might not be familiar with using terminal (in the same way that windows users might not be familiar with the command shell). 

I've modified the working slightly in the HelloPC guide (http://mbed.co.uk/handbook/HelloPC) 

'To find the device name under Mac OS X, use the command "ls /dev/tty.usbmodem*" in a terminal' 

If anyone thinks it needs to be cleared (maybe a screenshot?), please shout! 

Thanks, 

Chris

22 May 2009 . Edited: 22 May 2009

Hi, 

On the "Compiler Getting Started" page, at first, I had a little trouble locating the "Compiler" link even with your note about "site menu (top-right)".  I'm probably splitting hairs here, but maybe if it read "site menu (this page, top-right)" it might be a little clearer since this page would be the first exposure to using the site menu for new users. 

I've modified this to read:

"Click Compiler in the site menu (this page, top-right, blue text) to open the mbed Compiler." 

Thanks for the feedback, keep it coming! 

Cheers,
Chris 

 

22 May 2009 . Edited: 22 May 2009

Quick one - tooltips in the compiler window would be good. The curly arrow buttons in particular, especially given their context sensitive nature. 

If you want to go all the way, you could look at function prototype tooltips... But from the first five minute perspective, I think those buttons need them. 

Cheers, 
Tim

22 May 2009 . Edited: 22 May 2009

Hi All 

First, I wanna thank everyone involved in mbed. My 1st 5 minutes with mbed were very positive. I liked the idea of compiling the code online then saving using USB. Oh guys this is slick, I think making it simple like that will be the winning factor for it. I was thinking will this work? ... I tried a program that plays with LED1, and it worked like a charm. The little card with the shematic is very useful as well. 

I can say I love mbed so far, we'll see what it is capable of. 

Cheers

22 May 2009 . Edited: 22 May 2009

Not had a chance to play yet, but I have observed that my PC (Windows XP) won't boot when the mbed is plugged in - it complains about a disk error. Perhaps my BIOS is trying to boot from USB drive before hard disk. 

More later when I have a chance to actually do something with it :)

22 May 2009 . Edited: 22 May 2009

Wow, this is sooo cool! Like several other responders I love the no-setup IDE and just downloading programs onto the mbed to install them. 

A few comments: 

  1. How does it decide which program to run on startup? I assume its the most-recently downloaded one, but I didn't see this explicitly stated anywhere. 
  2. Since breaking a flash-based MP3 player I always 'Safely remove hardware' when using Windows with flash devices. Is it necessary to do this with the mbed? If not, it would be nice if this was stated somewhere. 
  3. The Windows instructions for setting up the USB serial port don't tell you to look in Ports in Device Manager to find out the device name, or that the part that you're interested in is COMx. This probably isn't obvious to every potential user (especially school children, who are the potential users I'm interested in). 
  4. Similarly, a quick guide to Tera Term (or at least a link to one) might be useful. 
  5. http://mbed.co.uk/handbook/USBSerialPort has 2 bulleted lines of text near the top that look like they're meant to be links, but aren't 
  6. http://mbed.co.uk/handbook/USBSerialPort has an example program a few lines below those bullet points that I think is missing the 'pc.' before 'printf' 
  7. Pressing Shift->Down in the IDE highlights the currently selected line, but copying doesn't copy the newline character. Not very important, but this surprised me. 
  8. I also find the USB cable a bit tight 

And that's it for this thread. My overall impression is very positive, it was fantastically easy to get started and I got distracted enough playing with it that I'm now late going home...

22 May 2009 . Edited: 22 May 2009

One further thing I've noticed is that it's not possible to paste text using the primary X11 buffer in firefox (i.e. by selecting text then middle clicking to paste it). 

Cheers, 
Mike. 

22 May 2009 . Edited: 22 May 2009

Alright, so I just gave this thing a go - and man, I'm impressed. A very slick way of setting it all up, very easy to program. I just loved it. It's so easy to get up and running, and the online-compiler is really neat. Now I need to learn how to hook something useful up to these pins! ;) 

I would love to have a "Compile and Download"-button in the online-compiler though, or even better - a hotkey.

22 May 2009 . Edited: 22 May 2009

Hi, 

The first five minutes: 

I connected up the cable and board without any difficulty. I then entered the test site and downloaded the HelloWorld.bin file and on reset the LED1 came into life.  I then tried to load the compiler through the Internet Explorer Browser but it failed to load with Vista. Chris Styles explained that the Vista browser had been turned off until a fix is made, and to use Firefox 2 instead. When Firefox was loaded, the compiler worked the first time and I was onto the next series of programs and getting one of my LEDs to flash every 2.5 seconds from pin 20. Not bad I thought! Then I thought could this chip run without the cable attached to the computer from batteries? Marvellous, it did just that! I used four 1.5volt AA batteries (total voltage of 5.5v, some batteries had been used on other experiments).

One final thought was to disconnect the cable from the board end. Unfortunately this time, the chip stopped, The LED remained on. When I reattached the cable it worked once more, flashing every 2.5 seconds. What had I done wrong?  I must have caused a little static in the chip when I disconnected the lead from the board.

The next time I removed the negative lead from the board; then I removed the cable from the board, reconnected the negative lead and on reset the LED started again flashing every 2.5 seconds. Thank goodness for that; so I must take care in the future, because this board is static sensitive! 

22 May 2009 . Edited: 22 May 2009

I then tried to load the compiler through the Internet Explorer Browser but it failed to load with Vista. Chris Styles explained that the Vista browser had been turned off until a fix is made, and to use Firefox 2 instead. 

Is the incompatibility with Vista or with IE7? Work is trying to upgrade my laptop to IE7, but still on XP - do I need to keep them away from my computer?

22 May 2009 . Edited: 22 May 2009

Hi Tim (and everyone!) 

This is an issue specifically with IE7, which seems to be the default browser shipped with Vista. We currently detect IE7 and block it from being used. You can quite happily use Firefox 2.0 under Windows Vista. 

For a list of recommended platform/browswer combinations, check out the FAQ: 

http://mbed.co.uk/projects/support/wiki/FAQ0005 

Cheers, 
Chris

22 May 2009 . Edited: 22 May 2009

Now that Firefox 3 is out of beta, when will it be supported by the compiler?

22 May 2009

Now that Firefox 3 is out of beta, when will it be supported by the compiler? 

My original aim was to look at FF3 and IE/Windows Vista at a later date, once we were further along in the trials. It does seem like Vista is coming online (new laptops?) and FF3 is getting out there quickly, so i'll be looking to pull that in. I'll update when we have an eta. 

Simon

22 May 2009 . Edited: 22 May 2009

Another vote for Firefox 3 support as a priority! 

Hugo

22 May 2009 . Edited: 22 May 2009

You get home from work and there's post!  The latest flier from CPC, a couple of white envelopes, and a small jiffy bag.  Can't remember buying anything that small from eBay lately.  Wait, it's got 'ARM' on it, but its too small for a development board, isn't it?  Only way to find out is to open it.  Ah!, it's one of those Basic Stamp type of things (but much better, of course).  The credit card pin-out diagram is a great idea! 

Anyway, looking at the contents I thought, this must be simple because there's hardly anything here.  I wa impressed that even the bags were zip-ups and I didn't have to tear into them.  The PCB format is great for a development system because it's easy to fit onto a breadboard or stripboard, while being small enough to use as a prototype target system. 

At first glance of the instructions, I saw ' A PC running Windows XP' and some other stuff.  I was assuming that, like most systems, there would be software to interface with the board to run on a Windows machine, then I noticed 'Macintosh HD' in the second browser window screen-shot and decided that I should read the instructions - for a change. 

I had all the relevant ingredients right there, my Mac Mini running OS X and the Firefox browser.  I unwrapped the lead, plugged it into the PCB and the Mac and, in a couple of seconds, the MBED image appeared on my desktop.  I double-clicked on it and opened the MBED.HTM file. Instantly, the mbed microcontroller page appeared, with the 'create new account' link at the top.  Creating the account was so easy that I hardly felt that it was done, but that was typical of the experience up to that point. 

The next thing was to find out how the device worked.  I started with the Handbook, as I didn't get a response from the Forum or the Cookbook links, at that time.  I selected 'getting started' from the Handbook and downloaded the 'Hello World.bin' file to my machine.  I dragged it into the mbed disc image and watched the Status LED flash as the program was loaded.  I then pressed the 'Reset' button and observed the Status LED flash in a more 'determined' way, as it wrote to the Flash memory of the LPC2368, I guess.  The Status LED stopped flashing and the program ran, flashing LED1. 

Next, I loaded the compiler from the links at the top right of the mbed.co.uk page and, right clicking on the 'My Programs' icon in the Program Workspace, selected 'new program', gave it a name in the dialog box, and the compiler reported that it was creating a program. The code that appeared was from the 'Hello World' program, that seems to be the default.  I tried simply altering the number of the LED flashed by the program, from LED1 to LED4, and clicked on the 'compile' icon on the toolbar.  The compilation succeeded and a new binary file appeared in the 'Compiler Output' window.  I double-clicked on this file and selected 'save to disk' from the dialog box that appeared.  The file landed on my desktop (but I guess that it could be directed straight to the mbed module) and I dragged it into the mbed image.  Pressing the mbed microcontroller's 'Reset' button loaded the program and ran it, now flashing LED4. 

Now, I've run into the first hurdle, I haven't done anything with C++ for over ten years, and I'm rusty.  I've used 'C' to develop a data logging application but have never considered that I'm great at high-level languages.  I was brought up on assembler - in Hex - lovely if you're a bit geeky, but only practical if you've got lots of library code for interfacing with peripherals - not the done thing these days.  I'm sure that I'll be able to get hold of some cookbook code and learn to understand it better. 

Overall, I think that the whole concept of seeing the micro as a Flash drive and allowing multi-platform access to the compiler and documentation, via the web, is brilliantly simple and extremely accessible without the need for software installations, that can be problematic.  Virtually everyone has a browser that works and, if you haven't, a suitable one can be installed free.  I'm pleased that it works on the Mac as, if I'd had to drag out the Windows machine I would have had to spend money on anti-virus software, etc.  My PC is only used as a development system now, and never gets connected to the net.  Just for the fun of it, I think I'll try accessing the mbed facilities through my old RiscOS machine.  I've got a couple of decent browsers for it. 

There's just one thing about the hardware, that I'll have to check up against the data sheet for the LPC2368.  It seems that the SD card lines might not be available on the DIL pins, but I may be mistaken. They would be really useful in data logging applications, which I'm fond of. 

Next task - brush up on C++ and have a look at the cookbook to help me to get to grips with it. 

Thanks for letting me play with this very promising system. 
Rennie

22 May 2009 . Edited: 22 May 2009

I've been meaning to post this for a while. Sadly, that means some of the details are gone, but here are the bit that were important enough for me to jot down! 

When I recieved my little jiffy bag of joy, I too was suprised at how small both the bag was, and it's contents. I was delighted to find the business-card sized quick-reference for the pin-out! Having worked with some DIL chips on breadboard before, I knew that was going to be very very useful. It also got me excited about the projects I could build with this little baby! So I whacked the USB cable into my Linux desktop (Ubuntu 8.04) and after a moment up pops an "MBED" folder. I open the HTML file, expecting a REDME, and find the "create a new account". I am of the same opinion as the previous post - it was so quick and easy that I almost felt something had been missed or forgotten! 

So, now I'm all registered I follow the first steps and play with dragging Hello.bin onto the mass storage, wait for the flashing LED to settle, then hit the button and wait: it worked! Next I dive into the compiler, only to find it doesn't work with Firefox3! (This was a while ago, as I said). I don't recall what I did next, but I know that ultimately I decided I was going to wait for FF3 support as far as my desktop was concerned. I think I switched to my WindowsXP laptop. After blowing the dust off it I found everything was a mess, and so I was distracted by fixing up my laptop. I never got around to playing with the mBed that day. 

Fast forward a few weeks to my second attempt. I've just read in this group that FF3 is supported now! So I plugin the mbed, and refollow the first steps to recheck everything is as it should be (it is) and then I dive into the compiler. It works! After writing my own "Hello world" using both LEDs and serial-over-USB (by following the instructions found through the *.HTM on the mbed itself) and performing a painless firmware update, I have a go at writing a little program to drive a pair of 7-segment displays I have ready and wired. To do this I read through the handbook, and to my frustration I find it is not detailed enough - where's the API documentation? Eventually I find it, I think via the cookbook or forum. I'd really like the handbook page [1] to link to the API reference [2]. 

Once I found the API reference I was much happier and successfully got my 7-segment display to display numbers -9 through to 99. I smile big. So, the next step for my project is to perform some data-logging. I read in the handbook the mBed has 2kB of NVRAM and the possibility for a battery attatchment to preserve the real-time clock and the contents of this RAM. But I can't find: 

  1. How to set / read the real-time clock. 

  2. The "correct" way to use the NVRAM 

    i. Particularly: What's the difference between "OFF + battery backup" and "ON" ? Putting it another way, "If I store some data in NVRAM, and have a battery attached, and I remove primary power, what's the state of the RAM and my program when I restore primary power? Does the program resume or restart? If it restarts how do I distinguish between my data in NVRAM and the stack (I presume they both live in NVRAM)" 

Although I can't find the answers to these, it is obvious from the wiki and handbook that the place to find out is this mailing list. So I save up my questions (in the hope that the answers become apparent before I'm done playing for the night) and continue playing with my 7-segment display. 

My second play session ends. 

(OK, I admit this is really more like the first 10-15min, but I'm not counting the time it take to wire things up on a breadboard!) 

- RobM 

[1]: http://mbed.co.uk/handbook/ 

[2]: http://mbed.co.uk/projects/libraries/api/mbed/trunk/ 

22 May 2009 . Edited: 22 May 2009

So my little package of joy appeared unexpectedly today and having had only a brief explanation of what to expect about the capabilities of the board. I have to say that I am very impressed. The entire set up process was a joy to behold and even easier than the previous highlight of installing an arduino setup on Mac OS X. The fact that the board displays itself as a drive and the compiled bin files appear alongside one another was certainly a refreshing way of doing it. 

Call me old fashioned but I tend to read as much information as possible before getting started so the first 10-15 minutes (after setting up the account) were spent browsing around the website. In general things were where I was expecting them to be. I was looking for a welcome to your mbed page explaining some of the highlights of the board rather than a data sheet, but having looked at the Cookbook and the excellent business card pinout diagram I began to realise exactly how powerful this device is. Having poked around a bit I then when into the MicroController getting started section and downloaded and tested the two HelloWorld samples to prove that everything was up and running. I then went to the Programming section to see what I was going to need to do to get started. It was/is a little unclear as to how much C++ I am going to need over standard C but I guess I will find that out of the coming days as I start to try a few things out. 

I am planning to drive the majority of my development from my Mac so I was impressed that the compiler environment worked in Safari and I didn't come across any obvious issues. As an aside, I tend to spend a lot of time on a train due to a long commute and therefore was thinking how I could access the content when offline. A really cheeky request would be for an offline mbed simulator in the future :-) (well I can ask can't I). 

All in all, very impressed and am now thinking I need to come up with some good ideas (VGA, PS/2 mouse and keyboard, i2c, hmmm, lots of ideas!) So there were my first 10-15 minutes. I now have a whole load of ideas that I want to think through in a bit more detail. I have a couple of XBee wireless modems that I want to use for a small project and originally it was going to be an arduino to arduino set up but I think that I am going to use the mbed as the master device as I am very interested in the Ethernet support (all be it, that there doesn't seem to be an easy to use Library at the moment, any hints as to the type of library it is likely to be or when it may be available before I head off into the cookbook). 

Matt 

P.S. I realise the Cookbook is wiki based so is the plan that anyone can update information (for example providing Mac specific tips on using SVN etc?)

22 May 2009

P.S. I realise the Cookbook is wiki based so is the plan that anyone can update information (for example providing Mac specific tips on using SVN etc?) 

Yep, go for it. The cookbook is pretty free-form as we don't know what works well yet, so feel free to use it as a experiment notebook, place to add tips, etc. Anything welcome! 

Simon