Baremetal programming of the LPC1114 from NXP


The LPC1114/FN28 processor is a DIP28 (breadboard friendly) ARM Cortex M0 microcontroller. It can be programmed using a hardware debug tool that supports Serial Wire Debug. It can also be programmed using a simple USB to serial converter. This method is called In-System-Programming (ISP). It does not allow you debug however it is useful nevertheless. It is certainly very low cost. Using this approach it is possible to set up an ARM Cortex development system for less than 10Euro.
ISP wiring for the LPC1114

Typical USB/Serial converter:

The header file

Using the user manual (UM10398.pdf) from NXP I wrote a header file that can be used in C programs. The naming convention I have followed is the same as that used in the user manual which makes finding register descriptions a little easier. The header file also defines macros for enabling and disabling interrupts as well as symbols such as BIT0, BIT1, etc to simplify bit manipulation in registers. The file is lpc111x.h


This set of examples will grow over time so check back occasionally.
Driving a seven segment display
Using the systick timer to refresh a display as a background process
Interfacing an LPC1114 with a keypad and a display
Using the LPC1114 ADC with a display
Simple serial output using the LPC1114
Interrupt driven serial data reception on the LPC1114
Interrupt driven serial data transmission and reception on the LPC1114
Simple PWM example on the LPC1114
Tone generation on the LPC1114
A simple copycat game on the LPC1114
A radio link between the LPC1114 and an Intel Galileo Gen 2
Interfacing the LPC1114 with the MPU6050 motion processor (accelerometer/gyro)
Audio pass-through using the LPC1114
Interfacing the LPC1114 with the TinyRTC board. Code can be downloaded here. Further details over at

Back to home Baremetal ARM page