…the unabbreviated title would be very long :)

Anywho, this is just a quick post to link to my Github project which contains firmware for using an LPC11U24 as a USB "communications device" – i.e. a serial port.

At the moment, it simply writes input from the serial interface to the USB and vice versa. So you can connect the device to a computer with both USB and a serial cable (I use a serial-to-USB cable since I have no "real" serial ports on my MacBook Pro) and then open terminal connections to both interfaces (using "screen /dev/ 9600" or something similar) and everything typed in one window gets written in the other window.
There's probably a couple of debugging messages as well.

The project is based on NXP's example code found here: and compiles with the Yagarto toolchain.


Why would I want to do USB connectivity by way of CDC instead of e.g. HID? Because implementing HID functionality in Mac OS X applications is a pain in the ass, that's why.
Serial port connectivity, however, is so very much simpler. Especially if you use the excellent ORSSerialPort library.


Right here:

3 comments on "LPC ARM USB CDC"
jaromir says:

Hello Willy,
is the code still available, somewhere?


Jens Willy Johannsen says:

Hi Jaromir

No, but I have another project where I use USB CDC from an LPC11U24. I have switched to using the LPCXpresso IDE instead of Yagarto (which is so much easier) but the code itself should be identical. You can get it here:

/Jens W.

jaromir says:

Hi Jens,
thank you. I'm using LPCXpresso too, so this is OK. Thanks for the project. It seems less complicated and convoluted than examples that NXP supplies today. I downloaded it and built successfully after a tiny changes, great!

BTW: now I understood that your first name is Jens, not Willy, sorry for that ;-)

Leave a Reply