Sunday, February 7, 2010

LPCXpresso design contest

Last week I received two LPCXpresso boards designed by Embedded Artists for evaluation. An LPCXpresso board is a small but longish 35 by 140 mm board split in two parts. One part has an ARM Cortex (M0 or M3) processor from NXP (LPC1114 or LPC1343) on it, together with a 12 MHz crystal and a small prototyping area. The other part of the board is the LPC-Link, which is a real JTAG programmer/debugger. This part is a sort of detachable JTAG pod and if you cut the connections between the two rows of JTAG connector pads you can connect it to other compatible hardware, your own ARM board for instance.

Why is this interesting? Well, first of all because of the price, since Embedded Artists sells it for only 20 euros. This means that you can get yourself a JTAG debugger for a very good price.

Then there are the development tools (Windows only, but should also work on virtual platforms with USB support on other operating systems). The boards are supported by a free enhanced Eclipse-based IDE developed by Code Red. This software lets you compile programs of unlimited size, but program and debug only up to 128 KB. The NXP web site has a list of compatible processors which is unfortunately missing the LPC2148, but according to NXP it should work with unlisted controllers too, as long as you respect the 128 KB limit. I have yet see this as the IDE does not allow picking an incompatible controller and an LPC2142 is not an LPC2148.

LPCXpresso LPC1114 together with an mbed module and the mbed pin-out card. Everything on the left of the pin-out card is the LPC-link JTAG pod.

Note that the LPCXpresso is pin compatible with an mbed board. That may seem strange as an mbed module only has 40 pins whereas an LPCXpresso has 54, but pin 1 to 20 and pin 28 to 47 of the LPCXpresso module have (where possible) the same functionality as the mbed pins. One problem though, the mbed processors (LPC1768 and LPC2368) are not supported by the LPCXpresso IDE. I have been told though that a Cortex-M0 mbed is coming soon.

Also interesting is that NXP has launched a design contest. Anyone entering a valid design concept before the 8th of March 2010 will receive a free LPCXpresso development kit and then has about one month to actually build it and show that it works. Check out all the details here.


  1. Note that the LPC-Link is *NOT* a JTAG debugger. The LPC-Link only implements SWD, a debugger protocol introduced by ARM for the Cortex-M CPUs. Also note that LPC-Link is very tightly locked to Code Red tools, and it will quite likely never be usable with any other software. Really limiting. I strongly recommend getting another board, such as the Olimex LPC-P1343 instead. For SWD you will need to buy also a debug adapter, I recommend the Versaloon ( even though OpenOCD support is not completely finished yet.

  2. Could you get LPC Xpresso to work with LPC2148?

    "according to NXP it should work with unlisted controllers too, as long as you respect the 128 KB limit."


  3. I have not tried it as I do not (yet) see the advantage since you cannot debug. You could start a project with a LPC2142 and then edit the link scripts that are created.

  4. Peter,

    What do you mean by saying that "LPC-Link is *NOT* a JTAG debugger. The LPC-Link only implements SWD...". Here is a quote from NXP Xpresso Getting Started manual:

    "LPCXpresso is a new, low-cost development platform available from NXP. The software consists of an enhanced, Eclipse-based IDE, a GNU C compiler, linker, libraries, and an enhanced GDB debugger. The hardware consists of the LPCXpresso development board which has an LPC-Link debug interface and an NXP LPC ARM-based microcontroller target. LPCXpresso is an end-to-end solution enabling embedded engineers to develop their applications from initial evaluation to final production."

  5. The Code Red, LPCxpresso tools are now available for Mac and Linux as well as Windows. I was running the IDE in a virtual machine with a few USB irritations, the native Mac version is much smoother.