XIAO ePaper Display Board - 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 個のユーザープログラマブルボタンを備え、プロジェクトの開発を加速し、柔軟なカスタマイズ機能を提供します。
仕様
| パラメータ | 説明 |
|---|---|
| プロセッサ | XIAO nRF52840 Plus |
| ePaper コネクタ | FPC 24 Pin 0.5mm FPC 50 Pin 0.5mm |
| バッテリーコネクタ | JST 2.0mm |
| スイッチ | バッテリー電源 ON/OFF |
| 電源 | - 3.7V リチウムバッテリー - USB Type-C |
| ボタン | - 1x リセットボタン - 3x ユーザーボタン |
ePaper ボード選定ガイド
| 製品 | ePaper Display Board EN04 | ePaper Breakout | ePaper Driver Board |
|---|---|---|---|
| プロセッサ | XIAO nRF52840 Plus | XIAO シリーズ | XIAO シリーズ |
| 対応 ePaper ディスプレイ | 24 Pin ePaper 50 Pin ePaper | 24 Pin ePaper | 24 Pin ePaper |
| ePaper コネクタ | FPC 24 Pin, 0.5mm FPC 50 Pin, 0.5mm | FPC 24 Pin 0.5mm | FPC 24 Pin 0.5mm |
| バッテリーコネクタ | JST 2.0mm | / | JST 2.0mm |
| スイッチ | バッテリー電源 ON/OFF | / | バッテリー電源 ON/OFF |
| ボタン | 1x リセットボタン 3x ユーザーボタン | / | / |
| 拡張 IO ポート | / | 他のコントローラとの接続 | 追加センサーとの接続 |
応用例
- スマートホームダッシュボード: 天気情報、カレンダーイベント、各種スマートホームデバイスからの通知など、リアルタイム情報を表示します。
- エネルギーモニタリング: スマートメーターからの電力消費データを表示し、家庭でのエネルギー使用状況をより効率的に把握・管理できるようにします。
- セキュリティアラート: 動体検知やドア/窓センサーの作動など、セキュリティイベントに関するアラートや通知を表示します。
- スマートサーモスタットディスプレイ: 温度や湿度レベル、スマートサーモスタットの制御設定を表示します。
- デジタルフォトフレーム: スマートホームネットワーク上の画像を表示できる、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 つあります。好みの基本サンプルを 1 つ開きます。
- 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 -> Select the port your board is connected to を選択します。次に 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);
}
リソース
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます。弊社は、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選べる複数のコミュニケーションチャネルをご用意しています。
