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:
- show me the source code that was being downloaded, and
- 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)
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!