XIAO ePaper Display EN04 入門ガイド
| XIAO ePaper Display Board EN04 |
|---|
![]() |
はじめに
XIAO nRF52840 Plus を搭載した EN04 ディスプレイボードは、24 ピンおよび 50 ピンの ePaper ディスプレイの両方をサポートします。JST 2.0 mm バッテリーコネクタ(電源スイッチ付き)、内蔵充電 IC、NFC 機能を備え、1 つのリセットボタンと 3 つのユーザーボタンが付属しています。デジタルサイネージ、電子ラベル、携帯情報ボードなどの低消費電力 ePaper プロジェクトに最適です。
特長
- XIAO nRF52840 Plus 搭載: 対応する ePaper ディスプレイを接続するだけで、すぐに動作します。
- 多用途なディスプレイ対応: 幅広い ePaper スクリーンに対応し、24 ピンおよび 50 ピンインターフェースの両方をサポート、ジャンパキャップで簡単に切り替えできます。
- スイッチ付き BAT コネクタ: シンプルなバッテリー接続を提供し、スイッチを統合することで効率的な電源管理と省エネを実現します。
- 使いやすいボタン: 1 個のリセットボタンと 3 個のユーザープログラマブルボタンを備え、プロジェクトの迅速化や機能のカスタマイズに柔軟に対応できます。
仕様
| Parameter | Description |
|---|---|
| Processor | XIAO nRF52840 Plus |
| ePaper Connector | FPC 24 Pin 0.5mm FPC 50 Pin 0.5mm |
| Battery Connector | JST 2.0mm |
| Switch | バッテリー電源 ON/OFF |
| Power Supply | - 3.7V リチウムバッテリー - USB Type-C |
| Button | - 1x リセットボタン - 3x ユーザーボタン |
ePaper ボード選定ガイド
| Product | ePaper Display Board EN04 | ePaper Breakout | ePaper Driver Board |
|---|---|---|---|
| Processor | XIAO nRF52840 Plus | XIAO シリーズ | XIAO シリーズ |
| Compatible ePaper Displays | 24 Pin ePaper 50 Pin ePaper | 24 Pin ePaper | 24 Pin ePaper |
| ePaper Connector | FPC 24 Pin, 0.5mm FPC 50 Pin, 0.5mm | FPC 24 Pin 0.5mm | FPC 24 Pin 0.5mm |
| Battery Connector | JST 2.0mm | / | JST 2.0mm |
| Switch | バッテリー電源 ON/OFF | / | バッテリー電源 ON/OFF |
| Button | 1x リセットボタン 3x ユーザーボタン | / | / |
| Extension IO Port | / | 他のコントローラとの接続 | 追加センサーとの接続 |
応用例
- スマートホームダッシュボード:天気情報、カレンダーイベント、各種スマートホームデバイスからの通知などをリアルタイムに表示します。
- エネルギーモニタリング:スマートメーターからの電力消費データを表示し、家庭でのエネルギー使用状況を効率的に把握・管理できるようにします。
- セキュリティアラート:モーション検知やドア/窓センサーの作動など、セキュリティイベントに関するアラートや通知を表示します。
- スマートサーモスタット表示:温度や湿度の値、スマートサーモスタットの制御設定などを表示します。
- デジタルフォトフレーム:スマートホームネットワーク上の画像を表示できる、WiFi 対応デジタルフォトフレームを作成します。
ハードウェア概要

対応 ePaper
24 ピンコネクタ
- 1.54-inch ePaper - Monochrome 200x200
- 2.13-inch ePaper -Flexible Monochrome 212x104
- 2.13-inch ePaper - Quadruple 212x104
- 2.9-inch ePaper - Monochorm 128x296
- 2.9-inch ePaper - Quadruple color 128x296
- 4.2-inch ePaper - Monochorm 400x300
- 4.26-inch ePaper - Monochorm 800x480
- 5.83-inch ePaper - Monochorm 648x480
- 7.5-inch ePaper - Monochorm 800x480
- 7.5-inch ePaper - Tri-Color 800x480

XIAO ePaper Display Board を使用する際は、ePaper ディスプレイの種類に応じてジャンパを設定してください:
- 24 Pin ePaper ディスプレイの場合 → ジャンパを 24 Pin に設定
⚠️ ジャンパ設定が間違っていると、ePaper が表示されなかったり、異常な表示になることがあります。電源を入れる前に、必ずジャンパ位置を再確認してください。
50 ピンコネクタ

XIAO ePaper Display Board を使用する際は、ePaper ディスプレイの種類に応じてジャンパを設定してください:
- 50 Pin ePaper ディスプレイの場合 → ジャンパを 50 Pin に設定
⚠️ ジャンパ設定が間違っていると、ePaper が表示されなかったり、異常な表示になることがあります。電源を入れる前に、必ずジャンパ位置を再確認してください。
ソフトウェア概要
Seeed GFX ライブラリのインストール
このライブラリは TFT ライブラリと同じ機能を持ちますが、互換性はありません。すでに TFT ライブラリや類似のディスプレイライブラリをインストールしている場合は、先にアンインストールしてください。
GitHub から Seeed GFX ライブラリをダウンロードしてインストールします。

ページをスクロールして、このリンクを開きます。

デバイスタイプを選択すると、いくつかのコードが生成されます。そのコードをコピーしておき、後で使用します。
誤った選択をすると、画面には何も表示されません。
そのため、ご使用のデバイスやコンポーネントの種類を必ず確認してください。

ライブラリをダウンロードしたら、Sketch -> Include Library -> Add .ZIP Library を開き、ダウンロードしたライブラリを選択します。

基本的なサンプルが 4 つあります。好みの基本サンプルを開いてください:
- Bitmap: ビットマップ画像を表示します。
- Clock: アナログ時計を表示します。
- Clock_digital: デジタル時計を表示します。
- Shape: さまざまなサイズの文字や図形を表示します。

セットアップ開始
ここでは例として 7.5 インチディスプレイを使用します。手順はすべての 24 ピン画面で同じであり、違いはドライバ内で適切な画面サイズを選択する点だけです。
新しい "driver.h" ファイルを作成し、その中に先ほどのコードを貼り付けます。コードは次のようになります:
#define BOARD_SCREEN_COMBO 502 // 7.5 inch monochrome ePaper Screen (UC8179)
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EN04
その後、Tools -> Board -> XIAO ESP32S3 および Tools -> Port -> ボードが接続されているポートを選択 に進みます。次に Upload をクリックしてコードを書き込みます。

これで、ePaper 画面上にフィードバックが表示されます!以下は Helloworld サンプルの結果です。(何も表示されない場合は、リセットボタンを押してください)
⚠️ 注意: ePaper ケーブルの向き ePaper ディスプレイを XIAO ePaper Display Board に接続する際は、FPC ケーブルが正しい向きで挿入されていることを確認してください。
⚠️ コネクタの向きを逆にしないでください!ケーブルを上下逆さまに挿入すると、ePaper が表示できなくなったり、画面やボードを損傷したりするおそれがあります。 下の画像は正しい接続方法を示しています:

XIAO ePaper Display Board(nRF52840) - EN04 のユーザーボタン
EN04 には、さまざまな制御用途に使用できるユーザープログラマブルボタンが 3 つ搭載されています。このセクションでは、Arduino を使用してボタン状態を読み取り、ボタン押下に応答する方法を示します。
EN04 では、3 つのボタンは XIAO nRF52840 Plus に接続されています:
| KEY1 | KEY2 | KEY3 |
|---|---|---|
| GPIO2_D1/A1 | GPIO3_D2/A2 | GPIO5_D4/A4 |
すべてのボタンはアクティブ Low であり、押されているときは LOW、離されているときは HIGH を読み取ります。
基本的なボタン読み取りの例
このサンプルでは、ボタン押下を検出し、シリアルモニタにメッセージを出力する方法を示します。

// 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);
}
XIAO ePaper Display Board(nRF52840) - EN04 のバッテリー機能
バッテリー駆動時:
-
リフレッシュの合間にデバイスは自動的に低消費電力モードに入ります
-
バッテリー寿命はリフレッシュ頻度に依存します(デフォルト設定でフル充電から通常 3 か月程度)
-
バッテリーレベルが 20% 未満になると、デバイスは右上隅にバッテリー残量低下アイコンを表示します
自分でバッテリー電圧を読み取るコードを書きたい場合は、analogRead() 関数の前に 10ms のディレイを入れると、より正確になります。

#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);
}
リソース
技術サポート & 製品ディスカッション
当社の製品をお選びいただきありがとうございます!製品をできるだけ快適にご利用いただけるよう、さまざまなサポートをご用意しています。お好みやニーズに合わせて選べる複数のコミュニケーションチャネルを提供しています。
