LPC4088 Embedded Firmware System

Bare-metal embedded firmware developed for the NXP LPC4088 microcontroller. This project demonstrates low-level hardware control, deterministic real-time behavior, and multi-peripheral integration.

LPC4088 Development Board

Bare-Metal Firmware Architecture

  • Programmed the LPC4088 using ARM assembly and C++ at the register level.
  • No RTOS — firmware executes deterministically using interrupts and polling.
  • Direct control of GPIO, timers, UART, and I2C peripherals.
  • Designed a structured main loop with interrupt-driven events.
  • Emphasis on predictability, timing, and hardware awareness.

I2C Peripheral Integration

The firmware integrates multiple I2C devices on a shared bus, coordinated through low-level driver logic and a simple user-interface system.

  • RTC: DS1337 real-time clock with alarm support.
  • Temperature Sensor: DS1631 digital temperature sensor.
  • LCD: 4×20 character LCD via PCF8574T I/O expander.
  • Input: Matrix keypad for menu navigation and control.
  • Event-driven updates using timer interrupts and keypad input.
LPC4088 LCD Interface

System Features

  • Real-time clock display and alarm handling.
  • Temperature monitoring with periodic updates.
  • Menu-driven UI using keypad + LCD.
  • Interrupt-driven timing using hardware timers.
  • Clean separation between drivers and application logic.

Tools Used

  • MCU: NXP LPC4088 (ARM Cortex-M4)
  • Languages: ARM Assembly, C++
  • Peripherals: GPIO, UART, I2C, Timers, Interrupts
  • IDE: Keil µVision 5
  • Debug: JTAG / Serial Debugging

Purpose

Demonstrate a strong understanding of low-level embedded systems by building a complete, bare-metal firmware application that interfaces directly with hardware and behaves deterministically.

Results

  • Fully functional multi-device I2C system.
  • Stable UI with predictable timing.
  • Demonstrated register-level hardware control.
  • Reusable firmware structure for future projects.
View on GitHub →
garciamatthew176@gmail.com

© 2026 Matthew Garcia. All rights reserved.