Open Source LittlevGL GUI Library on Adafruit Touch LCDs with NXP LPC55S69-EVK

The NXP LPC55S69-EVK is a versatile board. In this article I show how it can be used with Adafruit TFT LCD boards, both with resistive and capacitive touch. For the software I’m using the open source LittlevGL GUI.

LPC55S69-EVK with Adafruit Touch LCD

LPC55S69-EVK with Adafruit Touch LCD

Software and Hardware used

Installed SDK

Installed SDK

An example project with all the files is available on GitHub (see links section at the end of this article). The software is configured to use the capacitive or resistive touch display. I recommend using the capacitive touch version, as the touch is much more accurate and there is no need for manual calibration.

Hardware

Both the capacitive and resistive Adafruit LCD boards are using the popular ILI9341 display controller. On the resistive version, the STMPE610 (SPI) touch controller is used. On the capacitive version the FT6206 (I2C) is present.

The Adafruit board includes a micro-SD card slot on the back:

Adafruit ILI9341 Board Bottom Side

Adafruit ILI9341 Board Bottom Side (original board)

To use the board with the LPC55S69-EVK, the jumpers 11, 12 and 13 for the SPI bus have to be closed with solder, and the three jumper traces on the right have to be cut with a sharp knife:

Changed Jumper settings

3 soldered jumpers and 3 cut traces

For the analog touch display version, no hardware modification is required.

Resistive Touch Display

Resistive Touch Display

To verify the signals with a logic analyzer, the first version of the software has been developed with a ‘free wire’ connection:

First GUI elements

First GUI elements

The board can be used with the Adafruit Feather LCD board too:

Wiring to Feater LCD

Wiring to Adafruit Feather LCD

Software

As IDE, the NXP MCUXpresso IDE is used.

Eclipse Project

Eclipse Project

The project includes support both for the capacitive touch and resistive touch display:

Source Files

Source Files

  • McuILI9341: driver for the ILI9341 LCD controller
  • tpcal: Touch point calibration for resistive display
  • McuFT6206: driver for the capacitive touch controller (I2C)
  • McuSTMPE610: driver for resistive touch controller (SPI)
  • McuSPI: reentrant SPI driver
  • I2clib: reentrant I2C driver
  • lv, gui: LittlevGL GUI and display drivers

Using settings in platform.h, the software and drivers can be turned on or off:

platform.h

platform.h

The project includes a command line (Shell) interface to configure and inspect the display and drivers. The default communication way is using SEGGER RTT:

Shell with Segger RTT

Shell with Segger RTT

Status Command

Status Command

The application on GitHub includes a few demos, including how to use the LittlevGL list widgets or the on-screen keyboard control:

LittlevGL with List Control

LittlevGL with List Control

The picture below shows the on-screen keyboard:

LittlevGL on-screen keyboard

LittlevGL on-screen keyboard

LPC55S69-EVK with Adafruit Touch LCD

LPC55S69-EVK with Adafruit Touch LCD

Summary

The Adafruit ILI9341 based touch displays are a great and easy way to extend a board like the NXP LPC55S69 with a state-of-the art open source GUI library. The project presented here supports both the capacitive and resistive touch displays from Adafruit.

Happy LittlevGLing 🙂

Links

1 thought on “Open Source LittlevGL GUI Library on Adafruit Touch LCDs with NXP LPC55S69-EVK

  1. Pingback: Open Source LittlevGL GUI Library on Adafruit Touch LCDs #Adafruit @McuOnEclipse « Adafruit Industries – Makers, hackers, artists, designers and engineers!

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.