Skip to main content

Getting Started with XIAO 1.47'' IPS Display (ESP32-S3)

XIAO 1.47'' IPS Display (ESP32-S3)

Introduction

The 1.47'' IPS Display is an expansion board designed for the XIAO series, powered by the XIAO ESP32-S3 Plus. It features a 172×320 color LCD with capacitive touch, onboard PDM microphone, 6-axis IMU (LSM6DS3), MicroSD card slot, and battery voltage measurement — all integrated into a compact form factor.

This combination makes it an ideal platform for portable HMI applications, IoT dashboards, wearable devices, and interactive prototyping. With the ESP32-S3's dual-core processor, Wi-Fi, and Bluetooth capabilities, it extends the dashboard into a wireless-connected hub.

SpecificationDetail
Product PositioningTouch & Full Interaction
Core ControllerSeeed Studio XIAO ESP32-S3 Plus
ProcessorESP32-S3R8, Dual-Core, up to 240 MHz
Memory8 MB PSRAM + 16 MB Flash
Wireless Connectivity2.4 GHz Wi-Fi + BLE 5.0
Display Type1.47" IPS TFT LCD
Resolution172 × 320
Display DriverJD9853A
Display InterfaceSPI
Touch InputCapacitive Touch
6-Axis IMUYes
PDM Digital MicrophoneYes
MicroSD Card SlotYes
Grove I2C ConnectorNo
User Buttons2
Battery Connector2-pin JST, 3.7 V LiPo
Battery MonitoringBattery voltage monitoring via D16 ADC; battery level can be estimated from the measured voltage. Battery status detection is not supported.
Expansion Interfaces1x I2C pads, 1x I2S pads, 1x SWD pads, 2x user-button pads
Board Size26.4 × 51.4 × 12.6 mm
Best ForTouch UI, portable HMI, local media & data logging
note

The ESP32-S3 Plus uses D16 for voltage measurement. The voltage demo does not display battery percentage, and no charging-status signal is connected to an ESP32-S3 GPIO.

Hardware Overview

Before we start, refer to the following image to understand the physical layout of the 1.47'' IPS Display.

Pin Map

The 1.47'' IPS Display breaks out all XIAO ESP32-S3 Plus pins. The table below lists every pin, its net name on the display board, its function, and how it is connected to onboard peripherals.

XIAO PinNet NameFunction DescriptionHardware Connection Notes
D0PDM_CLKMIC_CLKPDM digital microphone clock
D1MIC_DATAPDM digital microphone dataInternally connected to PDM Mic
D2LCD_CSScreen chip select signalInternally connected to LCD driver IC
D3LCD_DCScreen data/command switchInternally connected to LCD driver IC
D4SDAI2C data busBus sharing: internally connected to IMU and touch IC; externally exposed as I2C expansion pads
D5SCLI2C clock busBus sharing: internally connected to IMU and touch IC; externally exposed as I2C expansion pads
D6SD_CSSD card chip select signalInternally connected to MicroSD card slot
D7TOUCH_INTTouch interrupt signalInternally connected to touch IC for asynchronous wake-up
D8SCKHardware SPI clockInternally connected to LCD and SD card slot
D9MISOHardware SPI data inputInternally connected to SD card slot
D10MOSIHardware SPI data outputInternally connected to LCD and SD card slot
D11I2S_SDAudio data lineCorresponds to I2S_SD default mapping, exposed to bottom pad group
D12I2S_SCKAudio bit clockCorresponds to I2S_SCK default mapping, exposed to bottom pad group
D13I2S_WSAudio word selectCorresponds to I2S_WS default mapping, exposed to bottom pad group
D14IMU_INTIMU motion interruptFunction reassignment: used for motion wake-up and double-tap detection
D15BTN_BPhysical button 2 (USR2)Function reassignment: user button 2. Externally exposed as button expansion pad
D16BAT_ADCBattery voltage detectionInternally connected to voltage divider circuit (316K / 160K). Do not use externally
D17LCD_RSTScreen reset signalIndependent GPIO control for reliable startup
D18LCD_BLScreen backlight controlSupports hardware PWM brightness adjustment
D19BTN_APhysical button 1 (USR1)User button 1. Externally exposed as button expansion pad

Getting Started

This guide uploads a minimal "Hello, XIAO" sketch to the display board: the screen turns on its backlight, fills black, and prints "Hello," and "XIAO" as two centered lines of large green text. It is the fastest way to confirm the screen and your development environment are working before diving into the individual peripheral demos.

Software Preparation

You will need the following tools and libraries:

  • Arduino IDE (version 1.8 or later)

  • esp32 Boards by Espressif (3.3.11) — add the following URL to File > Preferences > Additional Boards Manager URLs:
https://espressif.github.io/arduino-esp32/package_esp32_index.json

Then go to Tools > Board > Boards Manager, search for esp32 and install version 3.3.11.

  • Seeed_GFX2 (Manual Installation) — this library is not available in the Library Manager and must be installed manually:

Step 1. Click the button above to download Seeed_GFX2 v1.0.0 as a ZIP file (pinned to a release tag so the tutorial stays reproducible). Alternatively, clone the repository from Seeed-Studio/Seeed_GFX2.

Step 2. In the Arduino IDE, go to Sketch > Include Library > Add .ZIP Library... and select the downloaded ZIP. The IDE reads library.properties and installs it into the correct Seeed_GFX2 folder automatically — you do not need to rename the extracted folder. (To install manually instead, unzip the archive and rename the extracted folder to Seeed_GFX2 before placing it in Documents/Arduino/libraries/.)

Step 3. Restart the Arduino IDE so the new library is detected.

tip
  • Seeed_GFX2 is Seeed Studio's graphics library built on a layered Board + Panel Config architecture. Each demo initializes the display with a single display.begin<Board_..., Config_...>() call — the Board template owns the pin map (CS/DC/SCK/MOSI/RST/BL), and the Panel Config bakes in the 172×320 resolution, color order (BGR), and orientation. No driver.h or manual pin setup is needed.
  • On this board the sketch uses Board_XIAO_1inch47_Touch_Display<13, 12> (RST=13, BL=12) with Config_Seeed_1inch47_Touch_JD9853A.

Download the Code

The example sketch is available on GitHub:


Navigate to code_GFX2/getting_started_code/xiao_esp32s3_147_hello/ and open xiao_esp32s3_147_hello.ino in the Arduino IDE. Download the complete folder rather than copying the .ino source from the GitHub web view.

Upload the Sketch

Step 1. Connect the XIAO ESP32-S3 Plus to your computer via the USB-C port.

Step 2. In Arduino IDE, select the board: Tools > Board > esp32 > XIAO_ESP32S3_PLUS.

Step 3. Select the correct Port under Tools > Port.

Step 4. Click the Upload button (→). The sketch will compile and upload to the board.

Expected Output

After uploading, the screen lights up with a black background and shows two centered lines of large green text — "Hello," on the first line and "XIAO" on the second. The greeting stays on screen without redrawing.

If the display fails to initialize, the sketch prints the library error message to the serial monitor at 115200 baud. Open Tools > Serial Monitor and set the baud rate to 115200 to read it.

What's Next

The display board packs several onboard peripherals. The Function page provides a standalone demo for each one:

PeripheralDemo
ScreenGraphicTest — ten graphics primitives with timing benchmarks
TouchTouch Circle — tap to draw persistent circles; tap CLEAR to erase them
SD CardBMP Reader — display a BMP from the MicroSD card
Microphone & SpeakerVolume Bar + SD Recorder — live PDM level meter and recording to SD
IMUElectronic Quicksand + Raise to Wake — 6-axis motion effects and wake-on-motion
ButtonsUser Button — read presses and debounce with interrupts
BatteryBattery Voltage Detection — measure the divider voltage

FAQ

The board doesn't appear in the Tools > Board menu

Make sure you have added the ESP32 board package to Arduino IDE:

  1. Go to File > Preferences and paste the URL below into Additional Boards Manager URLs:
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  2. Go to Tools > Board > Boards Manager, search for esp32, and install version 3.3.11.
  3. After installation, Tools > Board > esp32 > XIAO_ESP32S3_PLUS should appear in the menu.

If the board still doesn't show up, restart Arduino IDE and try again.

Resources

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...