Well, this is the first review I've written, so hopefully it covers all the important points.
Feedback is, of course, very welcome.
First off, the specs:
This mbed Microcontroller is based on the NXP LPC1768FBD100,551LPC1768FBD100,551 with an ARM Cortex-M3 Core running at 96MHz,
512KB FLASH, 64KB RAM and lots of interfaces including Ethernet, USB Device and Host, CAN, SPI, I2C and other I/O.
Technical reference
This mbed Microcontroller is based on a Cortex-M3 Core running at 96MHz, with 512KB FLASH, 64KB RAM and a load of interfaces including Ethernet, USB Device, CAN, SPI, I2C and other I/O.
Package
* 40-pin DIP package
* 0.1. pitch, 0.9. pin spacing
* 44mm x 26mm
Power
* Powered by USB or 4.5v - 9.0v appiled to VIN
* <200mA (100mA with Ethernet disabled)
* Real-time clock battery backup input VB
* 1.8v - 3.3v Keeps Real-time clock running
* Requires 27uA, can be supplied by a coin cell
* 3.3v regulated output on VOUT to power peripherals
* 5.0v from USB available on VU (only available when USB is connected!)
* Current limited to 500mA
* Digital IO pins are 3.3v, 40mA each, 400mA max total
Pins
* Vin - External Power supply to the board
o 4.5v-9v, 100mA + external circuits powered through the Microcontroller
* Vb - Battery backup input for Real Time Clock
o 1.8v-3.3v, 30uA
* nR - Active-low reset pin with identical functionality to the reset button.
* Pull up resistor is on the board, so it can be driven with an open collector
* IF+/- - Reserved for Future use
The schematic is available at http://mbed.org/media/uploads/mbedofficial/mbed-005.1.pdf
Power and Logic Levels
The microcontroller I/O is all 3.3v logic, but 5v tolerant. A digital pin can drive 40mA, up to a total of 400mA.
Software
The compiler is accessed via a javascript interface, which is actually nice to use, and quite quick.
The back end is the ARM RVDS compiler v4.0, but the mbed team has stated they plan to upgrade to v4.1,
which should reduce codesize by around 5%, while giving a performance increase of 10-15%.
First Impressions
The target audience is people wanting a rapid prototyping tool. For new users, it is a remarkably easy tool to
get up and running with. The device appears to your PC as a removable disk, and programming is achieved by dropping the compiled
program onto the disk, then resetting the device to load the software.
The wide range of I/O options available make this device a particularly useful addition to any toolbox.
The ability to rapidly throw together a test rig for doing proof of concept work, or even faultfinding, is very good indeed.
All too often I've been in situations where a specialised piece of bench test equipment would have been extremely useful
while working on a project, but budgetary constraints meant that purchasing said equipment couldn't be justified.
The development of software and libraries is collaborative - users have the ability to edit code snippets in the cookbook and make
corrections, which is a nice touch. Being wiki based, a full history of changes is readily available to all.
You also have the option of publishing your code directly from the compiler, making it visible to others. Unfortunately, if you're
interested in the base code used by the mbed device, it is currently closed source.
If having full control of the code is essential, then perhaps http://github.com/hugovincent/mbed-freertos is worth looking at.
I can't comment on its usability - while it looks promising, I haven't had the chance to try it yet.
As other have already mentioned, one thing I don't like is the indicator LED's being all the same colour, and positioned very close
together. Having several different colours would have been a lot nicer for those of us with less than perfect eyesight. This is most
likely a modification I'll be doing in the near future.
Overall, even though there are a few minor irritating things, the positives far outweigh the negatives.
I'd be happy to recommend having a couple of these sitting on the bench. I see the mbed as being not so much a dedicated development
platform (and it doesn't claim to be), but rather as an electronic Swiss Army knife and educational tool.
In fact, the mbed website sums it up pretty well, though they are perhaps a bit modest when it comes to what it can be used for:
What mbed is not good for!
mbed is not a replacement for professional embedded development tools or evaluation boards. It is missing a lot of features those tools naturally come with, like a JTAG interface, a breakpoint debugger, integrated peripherals, or even a standard offline compiler. We are not trying to replace these tools, so if you need these sorts of features, mbed is not for you!
In this case, and for turning prototypes in to products in general, we'd recommend you choose one of the many great existing solutions for working with ARM Microcontrollers, and you'll be much happier.
What mbed is good for!
mbed is designed for quick experimentation and iteration, where the focus is trying something out rather than optimising a solution. And that means it is good for anyone from professional embedded engineers to people with expertise outside embedded exploring it for the first time. Think of it as a pencil and paper, compared to a CAD program (the professional tools).