Beta Testers - The First 5 Minutes

29 Jun 2009

Hello Everyone!

I realized mine had come in when i got the yellow 'Item for pickup' slip in my PO Box the other night.  The next morning i was at the post office right when it opened, like a kid waiting to open his presents on Christmas morning! lol. 

I was not sure what to expect, but the simplicity of it made it really easy to get going.  I liked how fast the registration process was. 

Once i got on the website, i found it easy to navigate and quickly got the hellow world programs working.  One thing i did notice- and maybe i did something wrong- but when i tried to run an rpc through my terminal program to turn on LED1, it said something about 'unexpected result' and the leds on the board started flashing on and off.  Still cant seem to get that working, but i will keep trying.

Another thing i noticed, is there are no examples or information on implementing the CAN bus.  i would like to use that to read some info coming from the OBDII port of my car.

I really like the example 'Hello World' Webpage program. I can see using that for all kinds of things just by browsing to the device.

So far, so good.

Thank You!

Let's see.......first 5 minutes spent setting up the account.  Took about 20 minutes to get the account activation email.   By the end of my lunch hour, I had LEDs blinking back and forth like Kit-the-knight-rider-car.

So far so good.  The only problem I have is the copy and paste in the compiler window doesn't work (IE6, WinXP SP3) - could be security settings issue, I'll try again later at home.

Scott

06 Aug 2009 . Edited: 07 Aug 2009

My first 5 minutes lasted ages.

My order was mucked up, and Hitex hadn't been paid. I live in Coventry, so I drove across and picked it up.

I liked the one page start-up in the box, nice. I would have adored it if it also explained how to run my first program. Then I would have confirmation that everything is working. Better yet, have the test program and source code on the board in the flash! 7/10

I also liked the plastic card, but it doesn't say what the LEDs are called, or what the big blue button does. Given the other side of the card is almost blank, I thought this was a triumph of marketing over substance. I was disappointed that the silkscreen legends are so inferior to an Arduino. I suspect, but don't know, that if the LPC2368 were on the bottom (swapped with LPC2148), the silkscreen legends for all of the pins could be improved. So. compared to an Arduino with its "+5V", "PWM" and "Analog", only 5/10.

I followed the setup, and went to create my account. I may be very atypical at this point. I read the Terms & Conditions, Privacy, etc, and the mbed ones appeared to be awful. If it wasn't for the helpful reply from Simon, I would have sent the thing back as too complex to use. 0/10 for the documents, 9/10 to Simon.

I got to the mbed landing page, and went to the cookbook first, that was a mistake. Please re-organise the landing page to direct to the Handbook before cookbook. It is an information design issue; all the information is there, but it would be helpful if first things came first. I think my school kids would do the same as me. 6/10

The Microcontroller Getting started page is okay, it even contains the picture that should be on the plastic card, but I would have liked it to:

  1. show me the source code that was being downloaded, and
  2. got me to the compiler, with that code loaded.

rather than get me to download two mysterious programs. 6/10

I would also have liked an explanation for why a flashing LED program is 53KB!

That is amazingly big. I expected something to comment on it. To put this into a context that I recognise, an Arduino blinking LED program is 896 bytes, and edition 7 UNIX was a multi-user system than ran in 256KB including the kernel, simple networking and half a dozen users running programs. I think a pass of the optimising C compiler was about the same size as the mbed blink program. My heart felt heavy.

I of course went straight to the compiler, and was a bit puzzled about how to create a new project (please add a New Program/Project button), which is especially odd as their is a Save/Save All button. I guessed okay then, and later found the explanation.  7/10

I tried to find the HelloWorld source from the compiler, but gave up. It isn't obvious how to find any example program source from the compiler. I did stumble across something that looked about right in the DigitalOut section of the microprocessor interface, so I copy & pasted that into the compiler. It complied to 24KB-ish, so it clearly isn't the same program.

Having used the Arduino IDE, where all of the examples are easily loaded directly into the IDE, and compiled and downloaded with a single button press, I thought there is a significant opportunity missed. 5/10

The DigitalOut code worked, so I deliberately mangled it to see what the error messages looked like. They were pretty good! Definitely better than the Arduino IDE (not as clear as the Mac's X Code, but that is a very high bar). 9+/10

The binary was only 24KB, which is going in the right direction, but still worryingly huge. I hope there is some content here to explain why it is so big, and either why not to worry, or how to cut it down to size.

I loved the ability to just store a binary file into the USB-flash drive, and upload. 10/10

This is exactly the scheme I was pursuing, so I understand why my colleague was so enthusiastic about mbed. (I haven't yet found how to get at the flash-file system from a mbed program, which is disappointing).

I struggled to find how to compile and download code without the web connection. I, and several of my colleagues who may be interested, travel by train. I can get a lot of stuff done on the train, and I have no intention of buying a broadband dongle just to write code. I will continue to try to find the instructions on how to download and install the toolchain on the web site. 2/10

I looked for the specification of the Analogue I/O, i.e. sample rate/resolution etc., which is my main initial interest in mbed, but I can't find it on the site. Worrying. I was struck by the analogue input returning a float by default; cute but worrying. Why would I want to have floats by default? I don't believe there is a hardware fpu on board. My school kids don't seem to have a problem with analogue input being a number in the range 0 to 1023. My heart sinks. 3/10

Summary 4/10 (40% is a pass)

Key improvements:

  • Clearer agreements, that are more friendly and understandable.
  • A smoother start with the source of HelloWorld (and any other examples) loadable straight into the compiler (IMHO ditch the loading HelloWorld2 in favour of this)
  • Instructions on how to install the toolchain on my laptop
  • Improved Organisation of Landing page and Getting Started
  • Rationale for the firmware design decisions, e.g. analogue input returning floats, so I can understand if mbed will be useful ASAP

The hardware looks very impressive. I really like breadboard friendly development boards. It is small and cute. The download mechanism is lovely. The compiler error messages are very good.

For my goals, mbed is over-engineered. I'd much prefer something simpler, ideally at a sub £20 price point so that I could consider migrating everything from Arduino. I had hoped mbed's high-price was because it is Beta. There were no details on the web site to judge, and the picture looked reasonably simple. Having examined it I think it'll be very hard to get its price down. I am also sad that it is ARM7, rather than Cortex. The Cortex implementations I have looked at seem to be a better balanced microcontroller than ARM7's, but I'll read the manuals. I do wish the beta page had said which chips, or I had had the sense to ask.

I strongly recommend someone at mbed go get an Arduino/Freeduino (Freeduino's are only £13.99 inc VAT), and do the same "first 5 minutes" experiment. It will be a different experience, but, I think more enjoyable and productive. I have 14 year olds programming in less than 10 minutes, and my mbed experience was not that slick, but AFIK there is no reason that it can't be just as good, and the quality of compiler error messages suggest it could be better.

There were other tiny issues, but these were the ones that stuck out for me. I may seem harsh, but, in my view it is better to identify areas that can be improved than pretend there is no room for improvement and silently resolve to never return.

So, a very interesting start. I have experienced worse.

GB

 

PS - I am passionate about getting embedded systems into the hands of school children. I believe it is critical.

I am willing to drive to Cambridge (UK), and walk a member of the mbed team through why the Arduino is such a good platform, for free. I'll pay the petrol, and give a day of my time.

 

PPS - This is about £15 so I think sub £20 is achievable (http://www.futurlec.com/ET-STM32_Stamp.shtml)

18 Aug 2009

The mbed arrived this morning but I was too busy at work preparing for the new term to do anything there, although I did show it off to our network support people.

My five minutes went like a dream: no problems getting the software to work, with the HelloWorld and most of the simple LED ones.

I'm interested in RFID but haven't had time yet to get my spare ID-12 hooked up (the other one is attached to an Arduino built system). Got the serial talking to the PC reasonably easily, althought since the laptop is on Windows 7 I had to tell the driver software installer (mbedWinSerial_14195.exe)  that it was running on XP SP3.

Slightly worried about the web based compiler since I will doing a lot of programming in the field using the laptop, but from something someone's already said the toolchain is available somewhere on the site.

The transfer of programs via USB to a 'disk' is a marvellous idea and works brilliantly. I still haven't managed to get thelocal file system access working yet, but it's midnight so I'll try later.

From the teaching point of view I think I'd find this a lot easier than the Arduino since we wouldn't have to install any software on the network.

My aim is to get the Ethernet working together with the RFID so I need to get the soldering iron out fairly soon.

Lovely piece of equipment.

John Stout

31 Aug 2009

 

ok, here we go, I'm Oli from Germany and these are my first impressions:

1) looking at the hardware: oh nice, theres a second Arm core onboard, LPC2148. lets login and see the schematics... hm, uh? theres no LPC2148 in the schematics.. :(

 

2) starting the compiler, accidently closing the compiler browser tab quickly, ok, don't mind... moving on

3) reading the secret internal blog. oh, there's a new board about to come, cool! ... But, hm, the four weeks old advertisements on twitter to get the "last beta boards" doesn't seem that nice after reading about new boards

4) looking for instructions to do an offline compile. don't find any exact details, just that there should be an export function in the IDE. yeah, maybe there's a makefile beeing exported, too!

5) reopening a compile window. sadly something messed up. no response to right and left clicks after init of the web IDE. could be due to my previous accidential shudown of the IDE tab. copy the beginning of this text into clipboard to survive next action

6) restart the whole browser (firefox 3, Mac), still no response in compiler window after initialization. this means I can see all the buttons but there's no action after clicking on anything.

7) note to myself: why the hell does the IDE look like windows ;-)

Ok, next try tomorrow!

I'm really uncertain, If I'll ever grow on the closed lib thing. But let's see. Also the web IDE is really a cool thing to show, but I think it's not usefull in the end for real stuff. I mean, if there would be any tigther integration with some serial link or other debug methods (possible), that would justify having a dedicated IDE. But as of now I can see only benefits from online SVN integrated user libs, which are a rather minor advantage in my eyes.

04 Sep 2009

First 5mins (plus) - like your other beta testers, I downloaded the led flasher and modified it to flash all leds by guesswork which worked completely intuitively - well done. I then wrote a simple linear series of 0.1s and 0.3s waits to flash  LED1 with the morse code of my amateur radio callsign.   I have a lot of (rusty) program experience in assembler programming the ARM from BBC BASIC in the Acorn Archimedes/RISC PC world, so it with some trepidation I venture into C++ programming. I am using a MacBook and Safari and all seems remarkably compatible. My first major project will be an audio frequency spectrum analyser so I am now playing with the sound recorder from the cookbook - I didn't spot the method of getting the URL at first, so downloaded a text version of the code and cut and pasted it into my compiler page. Rather than use a serial terminal, I am trying to modify the code to use the local file system. Have hit my first C programming snag here - need to reference the file pointer in the sub routines before it is defined by a file open call in main() and I havnt got my head round pointers or pointers to pointers yet - any help welcome. I tried putting main before the subroutines but then the compiler cant find the subroutine calls. 

Can I also suggest that a search box is needed for the forum - I spent quite a long time this morning looking through the posts to see if there was any on the above pointer question(s).

Anyway - thanks for a great little device - I have acquired many development boards over the ages, and this does seem to be one of the easiest to use.

Tony

04 Sep 2009

Hi Tony,

Tony Abbey wrote:
Have hit my first C programming snag here - need to reference the file pointer in the sub routines before it is defined by a file open call in main() and I havnt got my head round pointers or pointers to pointers yet - any help welcome. I tried putting main before the subroutines but then the compiler cant find the subroutine calls.

Post some examples to a new thread highlighting your problems/questions, and i'm sure we can help you out.

Simon

27 Oct 2009

Hi all,

happy to have received my mbed device. :-)

Quick start playing with it. Setup and firmware update very easy. Running HelloWorld. No problems. One info missing from the http://mbed.org/nxp/lpc1768/ page: description and/or source code for the HelloWorld program.

First try: blink all the leds. Missing info on the board or the cool pinout reference card: the name of the leds (LED1 to LED4). Not a big miss, as the Handbook specify it and seems a very good reference.

Python interface to the serial device working great.

First impression after these first tests: very interesting and fun. Maybe some HW buttons will be great in addition to the leds, so we can experiement directly with some inputs.

All this runs fine on my Linux computer. Thanks for it.

 

Olivier

29 Oct 2009

Hey everybody,

My mbed just arrived yesterday and I've only been able to play with it for a few minutes so far.  Setup was quick, easy and intuitive, as was loading my first Hello World program.  Web compiler looks like it could be very cool too, and library updates seem very easy as well.  Unfortunately some of the soldering on the mbed I received was a bit messy, which is unfortunate, but everything seems to be in fine working order so far.

I also realized it's really hard to remove the mbed from a breadboard once its put on so that's something for other people just starting out to be aware of.

Can't wait to experiment more and contribute to the community!

 

David

02 Nov 2009

My actual first 5 minutes was ages ago..

but it keeps getting put away for a short while, and then I have a whole new first 5 minutes !

TeraTerm...

I wish someone had told me during the first 5 minutes that I REALLY wanted to install a serial terminal and get used to using it for debugging.

I'd say you can't stress the power of the connectivity enough.. the fact that it happens down the same lead as you connect it with anyway is a plus, I thought it was going to be all complicated so I didn't go near it, but its not.

anyway.. I'd tell people if they haven't sorted out their serial terminal in the first 10 minutes. They ought to !

maybe add a "helloWorld2".. using the serial terminal to the handbook/cookbook, and reference it in "helloworld"

 

 

 

 

04 Nov 2009

hi,

Minute 1 : mbed module detected by WinXP SP3 without a hiccup, then realizing (to my surprise) that mbed is seen as a USB volume containing a preloaded .htm file with an icon. That's a blasting good idea, indeed !
Minute 2 : clicking on the .htm icon, signing up on www.mbed.com, dowloading the latest firmware (automatically appearing in "Downloaded" (I'm using Chrome), then transfer to mbed volume and power cycle mbed.
Minute 3 : downloading the demo app (blinking led) and realizing all is needed is to copy the .bin file in mbed volume, then press the button when the main LED is stopping flickering.
Minute 4 : entering the COMPILER area, right clicking to access "new program", edit the timings, compile, discover that the new .bin automatically appear in "Downloaded" (I'm using Chrome), then replace the old .bin by this new .bin in mbed volume. Pressing the mbed button : the LED flicker is now faster. It works !
Minute 5 : there is no debug, there is no access to the µC internal resources, there is no introduction to programming like declarations, interrupt service routines, initialization, main program, main loop. I wanted to queue SPI transmits of random bytes using the well-known method of SPI generating an interruption upon each byte being sent. But there is no acess provided for this. Is there a possibility for embedding assembly instructions in critical sections of code ? What about interrupt context save and restore ? The mbed example programs are full of improductive waiting loops instead of using a timer interrupt generating a few time bases, used by state machines. C++ and the sophistication of prototype functions constructs is the tree hiding the forest, a king of advertizing gimmick. Despite a modern programming language like C++, no access to µC ressources combined to not teaching and not promoting the elementary principles of efficient programming will cause a waste of resources, hence poor performance. Mbed needs a decent program as template, as inspiration source, showing how to efficiently organize an application using declarations, interrupts, interrupt service routines, initialization, main program, main loop, using "no wait" timers and state machines. If mbed doesn't allow the programmer to access the µC resources, one should not say that mbed is a programming environment. One should say it is a API, a very limited API.

Will mbed enable everybody to extend the APIs at will, digging into the processor resources ? How to avoid redundent APIs coming from various needs and sources ? Hey, this is not Linux ! I doubt mbed.org has the capability to manage and arbitrate such development. If the mbed APIs are not progressing, everybody will rely on self-made-custom-APIs, not to be shared, originating from different programming styles.

And what about debug ?

In these circumstances, compiled structured BASIC as language, with floating point arithmetic, with the possibility of using hand-written assembly instructions in critical sections of code, is better suited. Doesn't exist for ARM ?

17 Nov 2009

The 1768 from Farnell was waiting for me when I got home tonight. The first 5 minutes went very smoothly - I registered and then downloaded and ran the Hello World flashing LED bin. All fine. I have never done any C programming before and so I tried to do a few simple changes to this program and compile them to get a feel how the webcompiler works. Again no problem. I sorry I couldn't find an interesting problem or confusion for you.

30 Dec 2009 . Edited: 30 Dec 2009

I also got my mbed on the 17 Nov and had a quick play. Here is my experience:

----------

MBED First Five Minute

- Left mbed on foam packaging for now (will try breadboard later).

- Plugged it into USB on laptop. Blue LED on and new drive found on laptop.

- Double clicked the MBED.HTM link and arrived at login page. Clicked sign up.

- Entered details, read terms and conditions.

- Saved the HelloWorld_LPC1768.bin and copied to mbed. Hit reset.

- First blue LED flashing. Not sure if this is right or not.

- Deleted HelloWorld_LPC1768.bin from mbed and reset.

- First blue LED stopped flashing.

- Found web page telling me that the hello world is suppose to flash first LED.

- Spent 10 mins trying to remember how to code C++. Created usual cylon/knight rider scanning leds program.

----------

Today I went to Maplins and bought some LEDs; a bigger better bread board and a piezo transducer. I now need to start doing some more playing....

19 Apr 2011

On the whole setting this up and trying it out went well.

But: The editor font is way too low a contrast to the background. Particularly when I double clicked on the library include files, the text was so faint I couldn't read it. I had to copy and paste it into a text editor. The web based editor really needs some configurability. The option to retain tabs would be nice too.

I would like to see a compile only button. In other development environments I frequently do a compile to look for bugs only. Having it download another executable file just clutters up the download folder.

I'd like to see the binary file that's downloaded have something like a 4 digit serial number on it to keep the versions in order. If I delete earlier binaries the file name gets a dash number that is out of sequence. As an example, the first files to be generated are:

first_LPC1768.bin first_LPC1768-1.bin first_LPC1768-2.bin first_LPC1768-3.bin

But then if I delete an earlier version such as first_LPC1768-2.bin the next file to be downloaded is named first_LPC1768-2.bin. If the filenames were instead:

first_LPC1768-0001.bin first_LPC1768-0002.bin first_LPC1768-0003.bin first_LPC1768-0004.bin

One wouldn't have to worry about how the browser renames duplicate files.

Finally, the sample download program (HelloWorld_LPC1768.bin) appears to be the same as the example first program. This is a bit confusing as when you hit the reset button after downloading the example first program the response is exactly the same so you don't know if you really downloaded and ran the example program. Simply using a different LED would make it distinct.

Other than that my experience has been like most of the others here, simple to set up, create an account and get started programming. My biggest concern in digging into micro-controllers has been being sure that everything works the first time. There are a lot of development boards out there that don't have info on how to build code for them. But the MBED is not only very straight forward in get it working but it was clear ahead of time that that would be the case. It was smoother than the AVR development boards I have.

03 Jan 2014

first few minutes wanted to make sure I could switch back to OpenSDA, followed the script but I can't get it to work. any suggestions.