XIAO-ESP32-S3 with ST7789 1.22" display

Hey, I have problems with the XIAO hardware.

I purchased a XIAO-ESP32-S3 with an expansion shield Grove-Shield-for-Seeeduino-XIAO-embedded-battery-management-chip and a ST7789 1.22" diplay (Grove 1.2-inch IPS Display | Seeed Studio Wiki)

1st problem:
The wiki entry from the display speaks of SPI, but in the image it shows I2C naming.
I don’t understand, like at all.
The datasheet is also extremely hard to understand, as it talks about the strangest interfaces.
What interface is used? As far as I can see there is only code for SPI displays for ST7789.

2nd problem:
As far as I understand (I only found SPI code only for ST7789) I need to connect MOSI from ESP32 to DTA display and SCK to SCK.
The is no connector on the expansion board that has D10 (MOSI) and D8 (SCK) on it for it to fit the provided seeedstudio connector.
See: files.seeedstudio.com/wiki/Grove-Shield-for-Seeeduino-XIAO/img/pinout.png

SPI Pins for the display:
MOSI (DTA) → “SDA” label on the display
SCK (Clock) → “SCL” label on the display
You will also need:
CS (Chip Select): Usually tied to a GPIO pin
DC (Data/Command): Another GPIO pin
RST (Reset): Optional but usually required for initialization

Yeah, that’s how I am used to it.
The problem is that a) there are no CS DC or RST pins available with this display board and b) the connector and the breakout board are not pin compatible with the display, so although they use the same molex seeedstudio connectors I cannot plug them together…
Guess have to cut and solder the display to the XIAO pinheader making the breakout board useless.

Is this forum a official support platform?

Hi there,

So yea, it is a Feature not a bug, also known as I2C in this case

  • Simplified Interface: The display adopts a serial SPI interface and only requires the SCK and SDA connections to the main controller. This greatly simplifies user operation and saves time on wiring.
    There is plenty of example code here for this exact unit. use the search and you will find it I have one on here with the similar display, connected to the Expansion board.
    No, use the Wire lib and the I2c pins.
    All pins are available on expansion board BTW.

Is it this one?

HTH
GL :slight_smile: PJ :v:

I am having a similar problem. I have a XIAO ESP32S3, I thought it was SPI pins but I saw from this thread that it is I2C pins. I have SCK(The yellow wire) on the lcd display board connected to D5 on the ESP32S3 and we have DATA(The white wire) on pin D4.

The software that I am using I have taken from the grove 1.2inch display https:://wiki.seeedstudio.com/grove_1.2inch_ips_display/. And we have verified that the XIAO is working because the arduino blink example is working. When we run the example from the 1.2inch lcd display page after downloading the libraries, it does not come with the Adafruit GFX Library. We have counteracted that by installing the Adafruit GFX library and the Adafruit-BusIO library for the Adafruit gfx libraries compatibility requirements. After doing this we get this error:

In file included from C:\Users\\Documents\Arduino\libraries\Arduino_ST7789_Fast-master\Arduino_ST7789_Fast.cpp:5:
C:\Users\\Documents\Arduino\libraries\Arduino_ST7789_Fast-master\Arduino_ST7789_Fast.cpp: In member function 'void Arduino_ST7789::sckHigh()':
C:\Users\\Documents\Arduino\libraries\Arduino_ST7789_Fast-master\Arduino_ST7789_Fast.h:23:27: error: 'PORTD' was not declared in this scope
   23 | #define    LCD_SCK_SET    PORTD |= (1 << PORTD7);           // SET SCK HIGH

which happens when we run the ST7789 Hello World example as suggested by the grove lcd 1.22 docs

What am I doing wrong?
What am I missing?

Thank you

Hi there,

and Welcome here…

So which BSP did you use to compile with , Try 3.0.1 From the error though There is NO portD ??? May try another LIB too!

HTH
GL :slight_smile: PJ :v:

We’re using arduino 1.8.5. What BSP tool should we use for a esp32s3? We followed the instructions on the setup page. (Same person different account)

Hi there,

SO it’s not a tool at all, It’s the Board Support Package You choose it from the boards Tab in Arduino 2.x Some of the older LIB require older BSP’s so Roll it back from what you have if it’s the current version 3.1.1

HTH
GL :slight_smile: PJ :v:

Sorry for the delayed reply, I had become very busy during that time. I am using Arduino 2.3.4. My BSP is version 3.0.0(3.0.1 didn’t work :/). And I still get the same error. Do I need to roll back further or what library should I use in alternative for the xiao 1.22" display?

Hi there,

I would try 3.0.7 it seems to be the one that is the MOST compatible of them all. You may need to use the SCK and MISO pin instead , YMMV :crossed_fingers:

HTH
GL :slight_smile: PJ :v: