Waveshare RP2350 Touch LCD 2.8

Description

Getting started with a Waveshare RP2350 Touch LCD 2.8

What MCU/Processor/Board and compiler are you using?

Waveshare RP2350 Touch LCD 2.8 and Arduino ID 2

What do you want to achieve?

I have configured LVGL 9.3.0 and can compile with it in an Arduino Sketch.
I can upload the sketch to the RP2350 Touch,
I have added some command line output to ensure that the compilation works.
Which it does.
Now comes the difficult part for me, creating an output on the Waveshare Display.

I have looked at the demo code supplied by Waveshare and it is confusing and ambiguous.
I do not know if I should declare any constants and variables in my code or in TFT_eSPI.h which is sometimes mentioned.

Other than the fact I know I have to declare the display size which will be Landscape 320 x 240, how and where do I declare the pins used for the Screen Display and the Touch Facility?

Additionally the BLINK_LED routine does not blink the Led but does print out the HIGH/LOW in the Serial Monitor.

The last problem is I am almost blind so scanning document after document is very hard going.

What have you tried so far?

Valium and other Ant-Depressants.

Code to reproduce

/*
  Configuration Tester
*/

#include <Arduino.h>
#include <dummy_rp2350.h>
#include <lvgl.h>

#if LV_USE_TFT_ESPI
  #include <TFT_eSPI.h>
#endif

#define BLINK_LED 1

const uint LED_PIN = LED_BUILTIN;  // Define the LED pin

/* Core 0 */
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); /* prepare for possible serial debug */
  while (!Serial);

  String LVGL_Arduino = "Hello Arduino! ";
  LVGL_Arduino += String('V') + lv_version_major() + "." + lv_version_minor() + "." + lv_version_patch();

  Serial.println(LVGL_Arduino);
  Serial.println("I am LVGL_Arduino");
#ifdef BLINK_LED
  pinMode(LED_PIN, OUTPUT);
#endif
  Serial.print("Unique Id: "); Serial.println(rp2040.getChipID());
}

void loop() {
  // put your main code here, to run repeatedly:
#ifdef BLINK_LED
  digitalWrite(LED_PIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  Serial.println("HIGH");
  delay(1000);                 // wait for a second
  digitalWrite(LED_PIN, LOW);  // turn the LED off by making the voltage LOW
  Serial.println("LOW");
  delay(1000);
#endif
}

/* Core 1 */
void setup1() {
  // put your setup code here, to run once:
}

void loop1() {
  // put your main code here, to run repeatedly:
}

Screenshot and/or video

If possible, add screenshots and/or videos about the current state.

@britesc I didn’t see the led attached on the board, may be I am looking at a different board.

If you really want to bright a led then may be try the LCD Back Light o GPIO16. Also on the demo, its pretty clear to how to run the examples. Just build and flash them once and write your code using the display drivers directly from example code instead of going to TFT_eSPI for it.

@nehal Thanks for your reply.
Unfortunately it was not able to resolve my problem.

  1. There are 2 LEDs on the back of the 2350 Touch Display.
    1.1 The standard Red / Power on.
    1.2 The standard Green, User Configurable - It is not and does not seem to respond to any c code I can come up with.
  2. The 2350 Pico Touch Display needs a ST7789T3 driver code for the Display and CST328 driver code for the Touch Control. Neither of these seem to be in the LVGL Library and the ST7789 does not appear to work with this device.
  3. As to compiling the demos, which demos are you talking about? Those from LVGL or those from Waveshare.
  4. I have include the link to the Display Waveshare RP2350 Touch LCD 2,8
  5. On the Wiki page the code and explanation is for an ESP32 C Dev Module and not the RP2350 Display. I have asked Waveshare for advice, but have not had any replies.

Any advice on how to achieve a working LVGL based RP2350 Touch LCD 2,8 in Arduino C really would be gratefully received.

Thanks and kind regards,
jB

@britesc I meant this waveshare Demo. Have you test these?