LVGL on a TFT LCD Display with the nRF9160 DK

This blog post demonstrates how to get a LVGL sample up and running on the nRF9160 DK using Adafruit 1.3" 240x240 Wide Angle TFT LCD Display with MicroSD - ST7789. Follow the wiring guide and the steps in the blog post and get your display going! In an ideal world, we would be able to use the st7789v shield for waveshare 240x240, but since the nRF9160 DK does not have a device tree node label for arduino_spi, we need to implement a workaround. For the details on how the project configuration and overlay files were derived, check out my other blog post.

guide_result

Hardware

Components

Wiring

Important: The display operates with 3.3V logic, so on the nRF9160 DK, you must ensure that a tiny switch, SW9 (which sets VDD IO) is set at 3V!

Following the generic ST7789V shield pin assignment, we wire the connection as such:

nRF9160 DK pin Display pin
P0.08 RST
P0.09 D/C
P0.10 TCS
P0.11 SI
P0.12 SO
P0.13 SCK
GND GND
5V Vin


Software

After having wired up your DK, we need to perform some steps on the software side!

Prerequisites

nRF Connect SDK installation (I used v1.6.0)

Steps

  1. Download the attached project
  2. Extract it into a valid west workspace (that is, a folder from which you can call the command west build from command line)
  3. Connect your nRF9160 DK (with the screen already wired up) to your computer
  4. Build and flash the project to the DK

Incorporating this into other projects

If you want this display to work with your project (let's call it YourProject), you need to:

  1. Ensure that the LVGL and display-specific settings from the provided ZIP's config file (prj.conf) is in YourProject's config file
  2. Ensure that the overlay from the provided ZIP is also included (that is, boards/nrf9160dk_nrf9160ns.overlay)
    1. If YourProject already has an overlay file (nrf9160dk_nrf9160ns.overlay), you could copy-paste the contents of the provided overlay file to YourProject's nrf9160dk_nrf9160ns.overlay
    2. If YourProject does not have an overlay file, then you could copy the whole file into YourProject folder. This will automatically be detected by CMake when you hit build!
  3. Be sure to include device.h, drivers/display.h and lvgl.h in the C-file in which you want to program using LVGL.

Attached files

lvgl_with_logo_sample.zip
Anonymous