Skip to main content

Getting Started with XIAO ePaper Display EN04

XIAO ePaper Display Board EN04

Introduction

Powered by XIAO nRF52840 Plus, the display board EN04 supports both 24-pin and 50-pin ePaper displays. It features a JST 2.0 mm battery connector with power switch, built-in charging IC, NFC function and comes with one reset and three user buttons. Well-suited for low-power ePaper projects such as digital signage, electronic labels, and portable information boards.

Featrue

  • Powered by XIAO nRF52840 Plus: Works immediately when connected to a compatible ePaper display.
  • Versatile Display Support: Compatible with a wide range of ePaper screens, supporting both 24-Pin and 50-Pin interfaces with easy switching via jumper caps.
  • BAT Connector with Switch: Provides simple battery connection and integrates a switch, enabling efficient power management and energy savings.
  • User-Friendly Buttons: Includes 1 reset button and 3 user-programmable buttons, offering flexibility for project acceleration and customizable functions.

Specification

ParameterDescription
ProcessorXIAO nRF52840 Plus
ePaper ConnectorFPC 24 Pin 0.5mm
FPC 50 Pin 0.5mm
Battery ConnectorJST 2.0mm
SwitchBattery Power ON/OFF
Power Supply- 3.7V Li-Battery
- USB Type-C
Button- 1x Reset button
- 3x User button

ePaper Board Selection Guide

ProductePaper Display Board EN04ePaper BreakoutePaper Driver Board
ProcessorXIAO nRF52840 PlusXIAO SeriesXIAO Series
Compatible ePaper Displays24 Pin ePaper
50 Pin ePaper
24 Pin ePaper24 Pin ePaper
ePaper ConnectorFPC 24 Pin, 0.5mm
FPC 50 Pin, 0.5mm
FPC 24 Pin 0.5mmFPC 24 Pin 0.5mm
Battery ConnectorJST 2.0mm/JST 2.0mm
SwitchBattery Power ON/OFF/Battery Power ON/OFF
Button1x Reset button
3x User button
//
Extension IO Port/connection of others controllerconnection of additional sensors

Application

  • Smart Home Dashboard: Display real-time information such as weather updates, calendar events, and notifications from various smart home devices.
  • Energy Monitoring: Show energy consumption data from smart meters, helping homeowners track and manage their energy usage more efficiently.
  • Security Alerts: Display alerts and notifications about security events, such as motion detection or door/window sensor activation.
  • Smart Thermostat Display: Show temperature and humidity levels, as well as control settings for your smart thermostat.
  • Digital Photo Frame: Create a WiFi-enabled digital photo frame that can display images from your smart home network.

Hardware Overview

Supported ePaper

24-Pin Connector

tip

When using the XIAO ePaper Display Board, make sure to set the jumper according to the ePaper display type:

  • For 24 Pin ePaper displays → set the jumper to 24 Pin

⚠️ Using the wrong jumper setting may cause the ePaper to fail to display or show abnormal content. Always double-check the jumper position before powering on.

50-Pin Connector

tip

When using the XIAO ePaper Display Board, make sure to set the jumper according to the ePaper display type:

  • For 50 Pin ePaper displays → set the jumper to 50 Pin

⚠️ Using the wrong jumper setting may cause the ePaper to fail to display or show abnormal content. Always double-check the jumper position before powering on.

Software Overview

Install Seeed GFX Library

tip

This library has same function as TFT library and no compatible with it. If you have installed TFT library or other similary display libraries, please uninstall it first.

Download and install the Seeed GFX library from GitHub.

Scroll down and open this link.

Select your device type and it will generate some code. Copy those code and we will use them later.

tip

If you make the wrong choice, the screen will display nothing.

So please make sure your devices or components type.

After downloading the library, go to Sketch -> Include Library -> Add .ZIP Library and select the downloaded library.

There are 4 basic examples, open a basic example you like:

  1. Bitmap: Display a bitmap image.
  2. Clock: Display a clock.
  3. Clock_digital: Display a digital clock.
  4. Shape: Display different sizes of words and shapes.

Getting Start

Here, we use a 7.5-inch display as an example. The steps are the same for all 24-pin screens; the only difference is selecting the appropriate screen size in the driver.

Create a new "driver.h" file and paste those code into it. The code should be like:

#define BOARD_SCREEN_COMBO 502 // 7.5 inch monochrome ePaper Screen (UC8179)
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EN04

After that, go to Tools -> Board -> XIAO ESP32S3 and Tools -> Port -> Select the port your board is connected to. Then click Upload to upload the code.

Now you will see the feedback in your epaper screen! Following are the results of Helloworld examples.(If nothing appears, please click the reset button)

tip

⚠️ Note: ePaper Cable Orientation When connecting the ePaper display to the XIAO ePaper Display Board, make sure the FPC cable is inserted in the correct direction.

⚠️ Do not reverse the connector! Inserting the cable upside down may cause the ePaper to fail to display or even damage the screen/board. The image below shows the correct connection:

User Buttons on XIAO ePaper Display Board(nRF52840) - EN04

The EN04 features three user-programmable buttons that can be used for various control purposes. This section demonstrates how to read button states and respond to button presses using Arduino.

On the EN04, the three buttons are connected to the XIAO nRF52840 Plus:

KEY1KEY2KEY3
GPIO2_D1/A1GPIO3_D2/A2GPIO5_D4/A4

All buttons are active-low, meaning they read LOW when pressed and HIGH when released.

Basic Button Reading Example

This example demonstrates how to detect button presses and print messages to the serial monitor.


// Define button pin (GPIO2 corresponds to Arduino digital pin 2)
const int KEY_PIN = 2;

void setup() {
// Initialize serial port (baud rate 9600, nRF52840 compatible with default Serial)
Serial.begin(9600);
// Wait for serial port initialization to complete (for nRF52840 Bluetooth module serial buffer)
while (!Serial) delay(10);

// Configure button pin as input mode with internal pull-up resistor enabled
// Pin is HIGH when not pressed, LOW when pressed
pinMode(KEY_PIN, INPUT_PULLUP);

Serial.println("nRF52840 Button Detection Program Started");
Serial.println("Press the button connected to GPIO2 to see output...");
}

void loop() {
// Read button state (INPUT_PULLUP mode: LOW = pressed, HIGH = not pressed)
int keyState = digitalRead(KEY_PIN);

// Detect if button is pressed (low level)
if (keyState == LOW) {
// 50ms delay for debounce handling (avoids false triggers from mechanical button bounce)
delay(50);
// Read state again to confirm (ensure stable press)
if (digitalRead(KEY_PIN) == LOW) {
// Print specified content via serial port
Serial.println("Hello. This is key1");

// Wait for button release (prevent repeated printing during long press)
while (digitalRead(KEY_PIN) == LOW) {
delay(10); // Short delay to reduce CPU usage
}
}
}

// Short delay in main loop for performance optimization
delay(10);
}

User Battery on XIAO ePaper Display Board(nRF52840) - EN04

When operating on battery power:

  • The device will automatically enter low-power mode between refreshes

  • Battery life depends on refresh frequency (typically 3-month on a full charge with default settings)

  • The device will display a low battery icon in the top-right corner when the battery level is below 20%

tip

If you want to write some code by yourself to read battery voltage, it will be more precise to add 10ms delay before analogRead() function.

#define VOLTAGE_PIN A0 //GPIO1
#define ADC_ENABLE_PIN A5 //GPIO6

void setup() {
Serial.begin(115200);
delay(10);

pinMode(VOLTAGE_PIN, INPUT);
pinMode(ADC_ENABLE_PIN, OUTPUT);
digitalWrite(ADC_ENABLE_PIN , HIGH);
}


void loop() {
analogReadResolution(12);
int adcValue = analogRead(VOLTAGE_PIN);
float voltage = (adcValue / 4096.0) *7.16;
Serial.print("ADC Value: ");
Serial.print(adcValue);
Serial.print(" Voltage: ");
Serial.print(voltage, 3);
Serial.println(" V");
delay(10);
}

Resources

Coming soon...

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...