Xiao esp32s3 with ili9341

Hey, its almost a month trying to figure out how to connect these tft lcd ili9341 with xiao s3.

Im not getting any output on the screen, tried many libraries.

Can anyone help me with these.

what have you tried so far?

(Using LVGL and TFT for all XIAO Series | Seeed Studio Wiki)

Hello and Welcome,
DO you have a link to the specific display?
Is it a touch screen model?
How are you connecting the Hardware? Always start with that.
then post what software you have tried and or what errors you are getting?
They are Great Displays with the touch screen , even better.
Even on the Round Display the touch portion makes the code more specific.

HTH
GL :slight_smile: PJ

FYI, Not all TFT_eSPI libs are the same.
(from the wiki) If you have previously installed the TFT_eSPI library, please remove the original library and install the new one.(download from that link only?)

The pinouts and libraries i have used are these!

I’m using a tft spi display 240*320 resolution display

/////////////////////////////////
#include <Arduino.h>

#include “SPI.h”
#include “Adafruit_GFX.h”
#include “Adafruit_ILI9341.h”

int BAUD_RATE = 115200;

#define TFT_CLK 8
#define TFT_MOSI 10
#define TFT_MISO 9
#define TFT_DC 3
#define TFT_CS 4
#define TFT_RST 5

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
/////////////////////////////////////////////////////

the code is about drawing lines and rectangles!
the code is compiled and it starts running, but no ouptput on the screen!
in the serial monitor, i can see what things are being drawn!, but no effect on the screen!

I have also used another library and changed the user_setup to these!
Seeed_Arduino_LCD-master
//////////////////////////////////////////////
// Only define one driver, the other ones must be commented out

#define ILI9341_DRIVER

//#define ST7735_DRIVER // Define additional parameters below for this display

//#define ILI9163_DRIVER // Define additional parameters below for this display

//#define S6D02A1_DRIVER

//#define RPI_ILI9486_DRIVER // 20MHz maximum SPI

//#define HX8357D_DRIVER

//#define ILI9481_DRIVER

//#define ILI9486_DRIVER

//#define ILI9488_DRIVER // WARNING: Do not connect ILI9488 display SDO to MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is high)

//#define ST7789_DRIVER // Full configuration option, define additional parameters below for this display

//#define ST7789_2_DRIVER // Minimal configuration option, define additional parameters below for this display

//#define R61581_DRIVER
////////////////////////////////////////////////
i didnt get my specific board i.e xiao esp32s3
but i tried with this

// For seeed samd21

#define HASSPI 1

#define SPICOM SPI

#define TFT_CS 5

#define TFT_DC 6

//#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to RST or 3.3V
/////////////////////////////////////////////////////////

Let me know if anything is possible.

My requirements are pretty simple!

  1. I have to upload a jpg into the memory (which i can do by esptools)
  2. Display it on the screen (204*320). - in which the code runs without error, but nothing on the dispaly!

Thankyou

Hi there,
Looks close , where do you define your output pins for the CS/SS (spi) and RST pin?
Have you tried this example,
https://github.com/adafruit/Adafruit_ILI9341/blob/master/examples/graphicstest/graphicstest.ino
also there is a good video on the Speed of it depending on the chip used. worth a read also.
HTH
GL :slight_smile: PJ

@PJ_Glasso
Hi! I am new here I want to know can i use jtag pins available on back of Xiao esp32-s3 as digital pin in excel sheet they are declared as digital pins will it cause any or will work fine i am short of 1 pin please let which pin can i use on arduino ide

Hi there, Yes , indeed you can use those pins, just besure in the spreadsheet for pins they are GPIO’s
also FYI, be sure they don’t effect the boot process ie. “strapping pin options.”
Should work no problem.
HTH
GL :slight_smile: PJ

So, I Just need to mention them on spreadsheet as GPIO, no other configuration needed at programming end?

AFAIK , Nope,
If they are GPIO and only second function is Jtag, your ok, Using typical
“PinMode” input/output and resistor options.
Check the pin multiplexing section of data-sheet for more incite. :+1:
HTH
GL :slight_smile: PJ

so, it will be fine for using stepper motor using A4988.

Hi there,
yes , absolutely. I have used them as in this video for a handpiece with a nema17 motor.
controlled by a strain gauge. One word is “Power Supply” a good clean Maximum power supply is advisable. You set the step resolution , pick a direction and GO! :slight_smile:
GL :slight_smile: PJ

@PJ_Glasso I contacted seeduino techincal suopport team and they said it is not possible to use jtag pins as gpio. I have send Espressif documentation refference where it is mentioned you can use them then they replied
“Sorry XIAO’s firmware does not perform this design.”

Hi there,
Wow, That’s the first time I have heard that. Unfortunately it wouldn’t be the first time seeed engineering may have chosen NOT to bring certain pins, however those are out so , I’m surprised to hear that, I would like a better Explanation from them, a technical one NOT a marketing B.S. either as to why they don’t route through the pin multiplexer? The only other route would be an i/o-expander.
It may be why it’s called a Xiao ESP32S3 in this case the “Sense” version they nurf’d it up.(for the sake of size)

from the wiki, 1x UART, 1x IIC, 1x IIS, 1x SPI, 11x GPIOs (PWM), 9x ADC, 1x User LED,
1x Charge LED ,1x Reset button, 1x Boot button
Hmmm,
HTH
GL :slight_smile: PJ

I know there are fuses you can burn to change the strapping options and some base firmware functions , but that info is outside my required code base but I would look in that direction if it’s a must have situation. What about the addition of the expansion board to get those 2 IO’s?

Can you guide me which fuses and how to perform? In espressif they have mentioned something about fuses in their website they mentioned default jtag pins are d+ and d- for using external jtag you can change it using fuses and use pin 39-41 for jtag

if you have xiao esp32-s3 can you test without changing fuses maybe technical team is wrong here in the provided pinout sheet they also mentioned them as gpios pin

Hi there,
Yes I see the spreadsheet, I have ordered a chip…
HTH
Gl :slight_smile: PJ

Hi PJ,

Thanks for the info. I contacted the designer and they said that the design is finalized, so we can’t change it. I hope that I will receive the chip soon. Once I receive it, I’ll be able to test it out. I hope that at least one of the pins works as a GPIO.

I’ll let you know what I find out.

Thanks again,
Faizan

1 Like