Getting Started with XIAO 1.47'' IPS Display (nRF52840)
| XIAO 1.47'' IPS Display (nRF52840) |
|---|
![]() |
Introduction
The 1.47'' IPS Display is an expansion board designed for the XIAO series, powered by the XIAO nRF52840 Plus. It features a 172×320 color LCD with capacitive touch, onboard PDM microphone, 6-axis IMU (LSM6DS3), MicroSD card slot, and battery power management — 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.
| Specification | Detail |
|---|---|
| Product Positioning | Touch & Full Interaction |
| Core Controller | Seeed Studio XIAO nRF52840 Plus |
| Processor | Nordic nRF52840, ARM® Cortex®-M4 32-bit processor with FPU, 64 MHz |
| Memory | 256 KB RAM + 1 MB internal Flash + 2 MB onboard Flash |
| Wireless Connectivity | BLE 5.4 |
| Display Type | 1.47" IPS TFT LCD |
| Resolution | 172 × 320 |
| Display Driver | JD9853A |
| Display Interface | SPI |
| Touch Input | Capacitive Touch |
| 6-Axis IMU | Yes |
| PDM Digital Microphone | Yes |
| MicroSD Card Slot | Yes |
| Grove I2C Connector | No |
| User Buttons | 2 |
| Battery Connector | 2-pin JST 2.0 Connector for 3.7 V LiPo |
| Battery Monitoring | Battery status detection supported; battery voltage can also be monitored for battery-level estimation. |
| Expansion Interfaces | 1x I2C pads, 1x I2S pads, 1x SWD pads, 2x user-button pads |
| Board Size | 26.4 × 51.4 × 12.6 mm |
| Best For | Touch UI, portable HMI, local media and data logging |
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 nRF52840 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 Pin | Net Name | Function Description | Hardware Connection Notes |
|---|---|---|---|
| D0 | PDM_CLK | MIC_CLK | PDM digital microphone clock |
| D1 | MIC_DATA | PDM digital microphone data | Internally connected to PDM Mic |
| D2 | LCD_CS | Screen chip select signal | Internally connected to LCD driver IC |
| D3 | LCD_DC | Screen data/command switch | Internally connected to LCD driver IC |
| D4 | SDA | I2C data bus | Bus sharing: internally connected to IMU and touch IC; externally exposed as I2C expansion pads |
| D5 | SCL | I2C clock bus | Bus sharing: internally connected to IMU and touch IC; externally exposed as I2C expansion pads |
| D6 | SD_CS | SD card chip select signal | Internally connected to MicroSD card slot |
| D7 | TOUCH_INT | Touch interrupt signal | Internally connected to touch IC for asynchronous wake-up |
| D8 | SCK | Hardware SPI clock | Internally connected to LCD and SD card slot |
| D9 | MISO | Hardware SPI data input | Internally connected to SD card slot |
| D10 | MOSI | Hardware SPI data output | Internally connected to LCD and SD card slot |
| D11 | I2S_SD | Audio data line | Corresponds to I2S_SD default mapping, exposed to bottom pad group |
| D12 | I2S_SCK | Audio bit clock | Corresponds to I2S_SCK default mapping, exposed to bottom pad group |
| D13 | I2S_WS | Audio word select | Corresponds to I2S_WS default mapping, exposed to bottom pad group |
| D14 | IMU_INT | IMU motion interrupt | Function reassignment: used for motion wake-up |
| D15 | BTN_B | Physical button 2 (USR2) | Function reassignment: user button 2. Externally exposed as button expansion pad |
| D16 | NC | Floating (reserved) | No physical connection |
| D17 | LCD_RST | Screen reset signal | Independent GPIO control for reliable startup |
| D18 | LCD_BL | Screen backlight control | Supports hardware PWM brightness adjustment |
| D19 | BTN_A | Physical 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)
- Seeed nRF52 Boards (1.1.13) — add the following URL to File > Preferences > Additional Boards Manager URLs:
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
Then go to Tools > Board > Boards Manager, search for Seeed nRF52 and install version 1.1.13.
- 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.
- Seeed_GFX2 is Seeed Studio's graphics library built on a layered
Board+Panel Configarchitecture. Each demo initializes the display with a singledisplay.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. Nodriver.hor manual pin setup is needed. - On this board the sketch uses
Board_XIAO_1inch47_Touch_Display<38, 37>(RST=38, BL=37) withConfig_Seeed_1inch47_Touch_JD9853A. - The Adafruit TinyUSB library used by the sketch is bundled with the Seeed nRF52 Boards package, so it needs no separate installation.
Download the Code
The example sketch is available on GitHub:
Navigate to code_GFX2/getting_started_code/xiao_nrf52840_147_hello/ and open xiao_nrf52840_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 nRF52840 Plus to your computer via the USB-C port.
Step 2. In Arduino IDE, select the board: Tools > Board > Seeed nRF52 Boards > Seeed XIAO nRF52840 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.
If you encounter upload issues, double-click the reset button to enter bootloader mode. The USR LED will breathe in red and a NRF52BOOT drive will appear on your computer, indicating the board is in bootloader mode.
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:
| Peripheral | Demo |
|---|---|
| Screen | GraphicTest — ten graphics primitives with timing benchmarks |
| Touch | Touch Circle — a circle that follows your finger |
| SD Card | Image Reader — display a BMP from the MicroSD card |
| Microphone & Speaker | Volume Bar + Record to SD — live PDM level meter and recording to SD |
| IMU | Electronic Quicksand + Raise to Wake — 6-axis motion effects and wake-on-motion |
| Buttons | User Button — read presses and debounce with interrupts |
| Battery | Battery Status — measure voltage and convert to a percentage |
FAQ
What if the upload fails or the board is not detected?
Double-click the reset button on the XIAO nRF52840 Plus. The USR LED will breathe in red and a drive named NRF52BOOT will appear on your computer. Drag the compiled .uf2 file onto the NRF52BOOT drive. The board will program itself and reset automatically.
Resources
- 🗃️[PCB Design Files] XIAO 1.47'' IPS Display (nRF52840) KiCad Project
- 📄[Schematic] XIAO 1.47'' IPS Display (nRF52840) Schematic
- 📦[3D Model] XIAO 1.47'' IPS Display (STEP)
- 📄[Datasheet] 1.47 Inch Display Datasheet
- 💾[Factory Firmware] XIAO 1.47'' IPS Display (nRF52840) Factory Firmware
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.
