DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Related

  • Can We Do Performance Testing by Selenium Web Driver?
  • How We Broke the Monolith (and Kept Our Sanity): Lessons From Moving to Microservices
  • CRITICAL_PROCESS_DIED: How to Fix This Windows Blue Screen Error
  • The Bare Metal Bet That Made Our Multiplayer Platform Hum

Trending

  • Why Traditional CI/CD Falls Short for Cloud Infrastructure
  • Spring Cloud LoadBalancer vs Netflix Ribbon
  • A Keycloak Example: Building My First MCP Server Tools With Quarkus
  • Jakarta EE 11 and the Road Ahead With Jakarta EE 12
  1. DZone
  2. Popular
  3. Open Source
  4. How to Use Adafruit Touch LCDs With NXP LPC55S69-EVK

How to Use Adafruit Touch LCDs With NXP LPC55S69-EVK

Learn how NXP LPC55S69-EVK boards can be used with Adafruit TFT LCD boards.

By 
Erich Styger user avatar
Erich Styger
·
Nov. 29, 19 · Tutorial
Likes (3)
Comment
Save
Tweet
Share
18.3K Views

Join the DZone community and get the full member experience.

Join For Free

Microcontroller wire

Learn how NXP LPC55S69-EVK boards can be used with Adafruit TFT LCD boards.

The NXP LPC55S69-EVK is a versatile board. In this article, we demonstrate 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

  • NXP MCUXpresso IDE V11.0.1 with NXP MCUXpresso SDK V2.6.2
  • LPCXpresso55S69 Board (LPC55S69-EVK)
  • Adafruit 2.8″ TFT Touch Shield for Arduino with capacitive Touch Screen: https://www.adafruit.com/product/1947 (recommended)
  • Or: Adafruit 2.8″ TFT Touch Shield for Arduino with Resistive Touch Screen: https://www.adafruit.com/product/1651
  • LittlevGL (Open Source GUI Library) V6.0.2: https://littlevgl.com/
  • McuOnEclipse Library V1.0.2: https://github.com/ErichStyger/McuOnEclipseLibrary with FreeRTOS V10.2.1

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!

Additional Resources

  • Project on GitHub: https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/MCUXpresso/LPC55S69-EVK/LPC55S69_AdafruitLCD
  • Adafruit 2.8″ TFT Touch Shield for Arduino with Resistive Touch Screen: https://www.adafruit.com/product/1651
  • Adafruit 2.8″ TFT Touch Shield for Arduino with capacitive Touch Screen: https://www.adafruit.com/product/1947
  • Adafruit 2.4 FeatherWing: https://www.adafruit.com/product/3315
  • NXP MCUXpresso IDE V11.0.1
  • McuOnEclipse Library: https://github.com/ErichStyger/McuOnEclipseLibrary
  • LittlevGL: https://littlevgl.com/ and https://github.com/littlevgl/lvgl
Open source Driver (software)

Published at DZone with permission of Erich Styger, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Can We Do Performance Testing by Selenium Web Driver?
  • How We Broke the Monolith (and Kept Our Sanity): Lessons From Moving to Microservices
  • CRITICAL_PROCESS_DIED: How to Fix This Windows Blue Screen Error
  • The Bare Metal Bet That Made Our Multiplayer Platform Hum

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • [email protected]

Let's be friends: