From mbed prototype to actual hardware impementation

23 Nov 2009 . Edited: 25 Nov 2009

Apologies in advance if my questions seem a bit naive as I've only just got my Mbed and am also new to ARM MPUs, having just moved on from PICs.

I am intending to use the LPC1768 in a product with an OLED display, keypad and USB port. Once I have the software working on the Mbed, what is the migration path to actual hardware? It is possible that we want to keep the end product hack-able by the end user so keeping the mbed firmware into production units for drag-and-drop re-programming would be cool. Note: the end product is a single purpose appliance, not something that would compete with the Mbed!

Some questions that spring to mind are,

  1. How do I flash the end-product MPUs with the firmware?
  2. Is the firmware binary free-to-use in commercial products (from what I understand the various mbed code is part open source and part binary freeware)?

Thanks & regards

23 Nov 2009

Hi Simon, take a look at the cookbook article

http://mbed.org/projects/cookbook/wiki/Prototype2Product

This link came from the forum, however when I go to the cookbook page, I don't see it there.  Simon or someone, is this page browsable?

--steve

24 Nov 2009 . Edited: 24 Nov 2009

Ermmm,

If you intend to duplicate the mbed design into your own product and add the peripherial circuit around that design then you're going to be in for a treat! Although the LPC1768 isn't the most ardeous processor to take PCB (try some of the PowerPC range!) there are an awful lot of design considerations to take into account such as track lengths, impedances, ground planes etc. Unless you've got either a good idea of high-speed PCB techniques or know someone who does then the alternative might be to design your product around the 40 pin dip and just drop in the mbed module.

This route might be prohibitively more expensive with each unit requiring an mbed but I would suggest it's a far lower risk alternative and time to product would be quicker. And you never know if your sale projections for your product is sufficiently high enough then the good people from mbed might consider a partnership or endorse your product/company (wink).

Chris.

 

24 Nov 2009

Hi Chris & Steve,

Thanks for the link. It worked OK for me. I think I understand the hardware side of things now. I'm not too scared of the speed. It will on a four layer board and be working standalone, which for an MCU means that all the fast stuff is happening internally.

What I haven't quite figured out yet is how to program the thing. I am currently wading through the data sheets and user guides for this chip but I'm still not clear what the boot ROM does. Does it enable programming via the USB port, serial port, JTAG? How would I do in-circuit programming. I'm sure this must be in the docs somewhere.

Regards,

Simon

24 Nov 2009

There are 2 sections to the boot flash, the first is a serial bootloader/programmer and operates over UART0, it is programmed at the factory by NXP, there is also a 'not for profit' programmer available free of charge to download. Then there is the option to install a secondary bootloader in the second section for programming over whichever interface you prefer, there is an example of USB on the NXP website.

Check the application notes on the NXP website lots of information there.

24 Nov 2009 . Edited: 24 Nov 2009

Hi SimonB,

Simon Blandford wrote:
Apologies in advance if my questions seem a bit naive as I've only just got my Mbed and am also new to ARM MPUs, having just moved on from PICs. I am intending to use the LPC1768 in a product with an OLED display, keypad and USB port. Once I have the software working on the Mbed, what is the migration path to actual hardware?

This certainly does not seem like a naive question. It is exactly the sort of question that we want to see, as it means you're thinking beyond prototype!

The primary migration path we'd like to be able to support is helping move you to your own PCB with the raw MCU on it. That means you will have a real product in your hands that hopefully mbed helped exist, but doesn't exist in the end product (i.e., we're trying to build a great tool, not a design-in-module). The link that Steve posted is the start of documenting the needed information, and we're helping a few people through the process at the moment as a way of looking at what could work best and how to support it. Please just fire away questions as you come across them and we'll help build up the knowledge in this area.

The obvious route is to build it all with mbed on breadboard/veroboard/pcb, and then when you are happy with the design re-capture it with the raw MCU and spin a PCB. Chris has put us some of the schematics and design files to help do this on the Prototype2Product page. To build it, you might just spin the PCB and handsolder the SMT devices (but it is a little fiddly), or you can get it built for you by someone like Screaming Circuits or a local setup (more expensive, but much easier).

To program it, the easiest way for now is probably to expose a UART to enable you to use the LPC1768/LPC2368 bootloader in conjunction with FLASHMagic. We'll see if we can concoct a little recipe for how to do this. It is probably worth including a JTAG connector too for if you want to use other pro-tools.

Simon Blandford wrote:
It is possible that we want to keep the end product hack-able by the end user so keeping the mbed firmware into production units for drag-and-drop re-programming would be cool. Note: the end product is a single purpose appliance, not something that would compete with the Mbed!

If you want to keep drag-and-drop, you'll be wanting to keep the mbed in there for now as that is obviously some of the mbed magic! But in low quantities, whilst it is obviously not what we're intending, it could work!

We'll get back to you when we have an example up of how to do this...

Simon

24 Nov 2009

 

Simon Ford wrote:

 

The obvious route is to build it all with mbed on breadboard/veroboard/pcb, and then when you are happy with the design re-capture it with the raw MCU and spin a PCB. Chris has put us some of the schematics and design files to help do this on the Prototype2Product page. To build it, you might just spin the PCB and handsolder the SMT devices (but it is a little fiddly), or you can get it built for you by someone like Screaming Circuits or a local setup (more expensive, but much easier).

 

Simon

Regarding hand soldering, I recently wrote a blog article about DIY reflow soldering:

http://www.designnews.com/blog/Gadget_Freak/26186-Reflow_Soldering_on_the_Cheap.php

--steve

 

24 Nov 2009

I'm getting some idea how it all fits together now. The serial port option with Flash Magic looks promising and certainly the easiest and cheapest way for me to get up and running. In the JTAG front, I also found that Olimex do a programmer/debugger for about £55 in Farnall.

If my post is short it's because all my questions have been pretty-much answered :-) Thanks to everyone who responded!

25 Nov 2009

Chris got an example going of bootloading an raw LPC1768 using an mbed! I'll get him to write it up tomorrow, but this shows it is possible!

Simon

25 Nov 2009

Simon Ford wrote:

Chris got an example going of bootloading an raw LPC1768 using an mbed! I'll get him to write it up tomorrow, but this shows it is possible!

Simon

Would be very interested in this.

26 Nov 2009 . Edited: 26 Nov 2009

Hi.

The new Bob is very nice. If you will be making ver3, please add a UART interface for programming. This also should include the rest connection pin from the UART.

Im using FlashMagic to program the device, and it works great. BUT, if you don’t have the reset circuit, it makes things more difficult. You can just put them there for anyone to use at the prototype stage and then not install them on other boards.

Thanks.

08 Jan 2010

Hi,

Has anyone actually moved from the Mbed to product phase yet? Maybe they could share their experiences?

Thanks