OpenEPaperLink / OpenDisplay を使う
OpenEPaperLink (OEPL) エコシステムと関連プロジェクトの OpenDisplay は、電子ペーパーディスプレイを駆動するためのオープンソースのファームウェア/プロトコルスタックです。最新リリースは Bluetooth Low Energy 上で動作し、スマートフォン、コンピュータ、Home Assistant からデバイスへ直接通信できます。専用の 802.15.4 アクセスポイントは不要です。
このガイドでは、Seeed ハードウェアからそのエコシステムへ入る 2 つのパスを扱います:
- XIAO ePaper Display Board EN04 — OpenDisplay ファームウェアを BLE 上で動作させる一体型キット。
- ePaper Breakout Board for Seeed Studio XIAO — OEPL Config Builder と OEPL Image Uploader を XIAO nRF52840 シリーズボードと組み合わせて使う、よりモジュール的な DIY パス。
どちらのフローも共通の思想(BLE 設定、Web ベースのツール、低消費電力)を共有していますが、ハードウェアとファームウェア/Web ツールは異なります。この記事全体を通して、自分のハードウェアに合ったタブを選択してください。
対応ハードウェア
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
| XIAO ePaper Display Board EN04 |
|---|
![]() |
XIAO nRF52840 Plus を搭載した XIAO EN04 ePaper Display Board は、Bluetooth 対応の電子ペーパーディスプレイを始める最も簡単な方法です。スマートフォン、コンピュータ、Home Assistant から直接ワイヤレス制御でき、専用 AP は不要です。
なぜ OpenEPaperLink / OpenDisplay を使うのか?
- アクセスポイント不要 — Bluetooth Low Energy を使って直接通信します。802.15.4 ハードウェアは不要です。
- Web ベースのツール — ファームウェアのインストール、デバイスの設定、画像のアップロードをブラウザから直接行えます。
- 専用ハードウェア対応 — XIAO nRF52840 ファミリ、EN04、EE04 など。
- オープンソースかつ無料 — GitHub 上で積極的に開発されています。
- 複数のマイコンに対応 — nRF52840、ESP32-S3、ESP32-C6、ESP32-C3。
- シンプルなフロー — ドラッグ&ドロップでファームウェアをインストールし、Web から設定でき、複雑なプログラミングは不要です。
- バッテリー効率に優れる — 低消費電力の電子ペーパー向けに最適化されています。
- 活発なコミュニティ — OpenDisplay Discord。
ステップ 1: ハードウェアのセットアップ
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
ステップ 1. ドライバボードにディスプレイを接続する
FPC ケーブルを XIAO EN04 ボード上のコネクタに合わせ、ラッチを固定します。
FPC ケーブルの金属面は上向きにする必要があります。逆向きだと何も表示されません。ほとんどのディスプレイでは FPC に 1 と 50 が印字されているので、ボード上の対応する番号と合わせてください。

ステップ 2. バッテリーを接続する
バッテリーケーブルをドライバボード上の JST コネクタに接続します。赤い線を +、黒い線を − に接続します。

極性を必ず再確認してください。バッテリーによっては配線が異なる場合があります。配線が合っていない場合は、針などを使って JST コネクタからピンを抜き、正しい向きで差し直すことができます。
XIAO nRF52840(Sense Plus) を ePaper Breakout Board に接続し、さらに 4.26" モノクロ ePaper スクリーン を FPC コネクタに取り付けます。USB-C データケーブルを使って XIAO をコンピュータに接続します。
ステップ 2: ファームウェアを書き込む
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
最も簡単な方法は OpenDisplay Web インストーラを使うことです。
ステップ 1. ブラウザで OpenDisplay Web Installer を開きます。
ステップ 2. デバイス一覧から Seeed EN04 4.26 または Seeed EN04 7.3(使用しているディスプレイに合うプリセット)を選択します。
ステップ 3. Download Firmware をクリックし、NRF52840.uf2 をローカルに保存します。
ステップ 4. EN04 ボードを USB-C で接続します。
ステップ 5. リセットボタンを 素早く 2 回 押します。コンピュータ上に USB ドライブ(DFU モードの EN04)が表示されるので、そのドライブに NRF52840.uf2 をコピーします。
インストーラがうまく動作しない場合:
- 別の USB ケーブルを試してください(一部は給電専用なので、データ通信対応ケーブルを使用してください)。
- EN04 のリセットボタンを 2 回押して DFU モードに再度入ります。
- 別の USB ポートを試してください。
ステップ 6. OpenDisplay Configuration Page を開き、ボードに接続します。

Seeed EN04 4.26 または Seeed EN04 7.3 を選択していれば、Auto Install to Device が表示されます。これはキットを設定する最も簡単な方法です。
ステップ 7. Connect ボタンを押します。ペアリングダイアログで新しいデバイスを選択し、Pair を押します。

ステップ 8. Auto Install to Device を押して、設定をボードに保存します。
インストールと設定が完了すると、ディスプレイに起動画面が表示され、BLE 経由でコンテンツを受信する準備が整います。

OEPL Config Builder が XIAO nRF52840 と通信するには、事前に OEPL_BLE ファームウェアを書き込んでおく必要があります。
ステップ 1. 公式 OEPL リリースページから最新の OEPL_BLE ファームウェアをダウンロードします。

ステップ 2. XIAO nRF52840 + Breakout Board + スクリーンを接続し、XIAO を USB-C でコンピュータに接続してから、リセットボタンを 2 回押します。XIAO がコンピュータ上に USB ドライブとして表示されます。

ステップ 3. ダウンロードした .uf2 ファームウェアをその USB ドライブにドラッグ&ドロップします。次回の電源投入時に、XIAO は再起動して新しいファームウェアを実行します。

ステップ 3: BLE 経由でデバイスを設定する
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
前のフラッシュ手順で行った OpenDisplay の設定ステップですでに処理されています — これで EN04 は OpenDisplay の起動画面で起動し、画像のアップロードを受け付けるようになっているはずです。
OEPL Config Builder を開き、BLE 経由で XIAO に接続します。(デバイスが表示されない場合は、ファームウェアを再フラッシュしてからもう一度お試しください。)

ターミナルに "Connected" と表示されたら、次の操作ができます:
- Read Config — MCU から現在の設定を読み出します。
- Write Config — MCU に新しい設定を書き込みます。
- Reboot — MCU を再起動します。
Builder パネル
パネル内で変数とパラメータを選択して、設定を作成します。
- system_config — ホスト IC と電源管理ピン。
- manufacturer_data — メーカー識別子とボード情報。
- power_option — 電源とスリープ設定。
- display — ディスプレイ / パネル情報(複数ディスプレイ用に繰り返し可)。
- led — オプションの LED 設定(繰り返し可)。
- sensor_data — オプションのセンサー読み取り / 定義(繰り返し可)。
- data_bus — バス定義(I2C / SPI / …)。
- binary_inputs — ボタン、スイッチ。

設定は .bin、Hex、JSON としてエクスポートでき、保存済みの JSON をインポートすることもできます。4.26" スクリーン用の既製設定は以下から利用できます。

設定を詰め終えたら、Write Config をクリックして MCU に保存します。
ステップ 4: 画像をアップロードする
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
OpenDisplay プロジェクトには、専用のブラウザベースのアップローダーがあります。
ステップ 1. OpenDisplay BLE Tester を開きます。
ステップ 2. Connect をクリックし、BLE ペアリングダイアログから OpenDisplay デバイスを選択します。
ステップ 3. Select Image をクリックし、PC からファイルを選択します。

最良の結果を得るには:
- ディスプレイの解像度に合った画像を使用します(7.3" パネルは 800×480 px)。
- モノクロディスプレイでは、白黒画像が最もきれいに表示されます。
- このツールはカラー画像を自動的に変換し、ディザリングします。
ステップ 4. Upload Image をクリックします。電子ペーパーがリフレッシュされ、画像が表示されます。
画像編集ソフト(GIMP、Photoshop)、Python + Pillow スクリプト、Web ベースの画像ジェネレーター、あるいは Home Assistant 連携(後述)を使ってカスタムコンテンツを作成することもできます。
OEPL Image Uploader も BLE ベースの Web ツールです。ピンアサインは Config Builder 用ファームウェアとは異なるため、先に少し異なる画像アップロード用ファームウェアを書き込む必要があります。
E-Paper prefix filter(s) フィールドの値を OEPL に変更します — そうしないとアップローダーがデバイスを見つけられません。


Select File をクリックして、アップロードするローカルファイルを選択します。

ファイル転送が完了したら、Upload Image をクリックして電子ペーパーに送信します。

Upload Complete と表示されたら、新しい画像で電子ペーパーが更新されています。
Home Assistant 連携(EN04 / OpenDisplay のみ)
Home Assistant と連携するには、Bluetooth 対応のセットアップが必要です:
- Home Assistant Green(Bluetooth 内蔵)
- Bluetooth 対応ハードウェア上の Home Assistant OS / Supervised
- ESPHome Bluetooth Proxy(電波範囲を広げるために推奨 — 下記参照)
注: Bluetooth プロキシとして動作する Shelly デバイスは、OpenDisplay に必要なアクティブ接続をサポートしていないため、使用できません。
ステップ 1. インテグレーションをインストールする
詳細なインストール手順は、OpenDisplay Home Assistant Integration リポジトリを参照してください。
最も簡単な方法は HACS(Home Assistant Community Store)経由です:
HACS からカスタムインテグレーションをインストールした後、変更を反映させるために Home Assistant を再起動 してください。
ステップ 2. 検出されたデバイスを追加する
Home Assistant が再起動して立ち上がったら:
- Settings → Devices & services に移動します。
- Discovered の下にある OpenDisplay デバイスを探します。
- Add をクリックします。
- Name と Area を設定し、Finish をクリックします。
ディスプレイに新しい画像が表示され、Home Assistant が接続されたことが確認できます。

ディスプレイ更新の自動化
主なサービスは open_epaper_link.drawcustom で、テキスト、アイコン、画像、図形を描画できます。利用可能な型とパラメータの一覧は、drawcustom ドキュメントを参照してください。
例 1 — センサーデータを表示する(ビジュアルエディタ)
- Settings → Automations & Scenes に移動し、Create Automation をクリックします。
- Time Pattern トリガーを追加します(例:10 分ごと)。


- Action を追加し、OpenDisplay: Draw Custom Image を選択します。

- 対象デバイスを選択します。

- Payload フィールドにレイアウト設定を入力します:
- type: "text"
value: "Living Room"
x: "50%"
y: 50
anchor: "mm"
size: 70
color: "red"
- type: "icon"
value: "mdi:thermometer"
x: "35%"
y: 200
anchor: "mm"
size: 100
color: "black"
- type: "text"
value: "{{ states('sensor.living_room_temperature') }}°C"
x: "65%"
y: 200
anchor: "mm"
size: 100
color: "black"
- type: "icon"
value: "mdi:water-percent"
x: "35%"
y: 350
anchor: "mm"
size: 100
color: "black"
- type: "text"
value: "{{ states('sensor.living_room_humidity') }}%"
x: "65%"
y: 350
anchor: "mm"
size: 100
color: "black"
上記のエンティティ ID(例:sensor.living_room_temperature)はプレースホルダーです。実際の Home Assistant のエンティティ ID に置き換えてください。
例 2 — カウントダウンタイマー(YAML)
上級ユーザー向けに、オートメーションを YAML として編集します。この例では、ある日付までのカウントダウンを行い、その結果をディスプレイに表示します。
alias: Update ePaper Display - Countdown
description: Displays days until Christmas
triggers:
- at: "00:00:00"
trigger: time
actions:
- variables:
days_left: "{{ (as_datetime('2025-12-24').date() - now().date()).days }}"
- action: open_epaper_link.drawcustom
data:
background: white
payload:
- type: text
value: "{{ 'Christmas Countdown' if days_left > 0 else '' }}"
x: 50%
"y": 50
anchor: mm
size: 60
color: black
- type: text
value: "{{ days_left if days_left > 0 else '' }}"
x: 50%
"y": 240
anchor: mm
size: 250
color: red
- type: text
value: >-
{{ 'Day Left' if days_left == 1 else ('Days Left' if days_left > 0
else '') }}
x: 50%
"y": 430
anchor: mm
size: 60
color: black
- type: text
value: "{{ 'It''s Christmas!!!' if days_left == 0 else '' }}"
x: 50%
"y": 50%
anchor: mm
size: 100
color: red
target:
device_id: 2ad706d4aa7c657b6fe99a733cef2253
上記の device_id はプレースホルダーです。実際のデバイス ID を確認するには、次の手順に従います:
- ビジュアルエディタで新しいオートメーションを作成します。
- アクション設定で OpenDisplay デバイスを選択します。
- YAML mode(アクションカードの三点メニュー)に切り替えます。
device_idをコピーして、あなたのオートメーションに貼り付けます。
おまけ
ディスプレイをスタイリッシュにマウントしたいですか?この 3D プリントインサートは IKEA RODÅLM フォトフレームに適合し、簡単にマウントできます:
- [MakerWorld] Seeed 7.3" Spectra Insert for IKEA RODALM Frame
トラブルシューティング
ファームウェアインストールの問題
問題:ボードを接続しても、PC が新しい USB ドライブを検出しません。
- 別の USB ケーブルを試してください(電源専用ではなくデータ通信対応ケーブル)。
- ボードを接続した後にリセットボタンを 2 回押してください。
設定の問題
問題:ボードが検出されません。
- ボード上の LED が点滅しているか確認します — デバイスに電源が入っていることを示します。
- ボードを再起動してみてください。
- ファームウェアを書き直してください。
問題:ファームウェアインストール後もディスプレイに何も表示されません。
- FPC ケーブルの向き(金属端子が上向き)を確認します。
- ケーブルが最後まで差し込まれ、ラッチされていることを確認します。
- コンフィギュレータで設定を再確認します。
Bluetooth 接続の問題
問題:Bluetooth ペアリングでデバイスが見つかりません。
- デバイスの電源が入っており、ファームウェアがインストールされていることを確認します。
- もっと近づいてください(2~3 m 以内)。
- コンピュータ / スマートフォンで Bluetooth が有効になっていることを確認します。
問題:画像アップロード中に接続が切断されます。
- アップロード中はデバイスの近くにいてください。
- バッテリーを十分に充電するか、USB 経由で給電してください。
- 非常に大きな画像のアップロードは避けてください。
- Bluetooth が混雑していない環境で再度お試しください。
バッテリーと電源の問題
問題:バッテリーの持ちが短い。
- コンフィギュレータでスリープ間隔を長く設定します。
- 常に最新のファームウェアを使用します(各リリースで消費電力が改善されます)。
- ディスプレイのリフレッシュ頻度を下げます。
- バッテリーが完全に充電されていることを確認します(Li-Po の場合 4.2 V)。
問題:デバイスが充電されません。
- 極性を確認します(赤 = +、黒 = −)。
- 充電ケーブルが 500 mA 以上を供給できることを確認します。
- 電源スイッチが ON になっていることを確認します。
- 別の USB 電源を試してください。
Home Assistant / 連携の問題
問題:Raspberry Pi + HA 経由でデバイスを追加する際に "Insufficient connection slots" と表示されます。
これは多くの場合、Raspberry Pi 内蔵の Bluetooth アダプタが同時接続数の上限に達しているために発生します。
"Insufficient connection slots" メッセージの例。
推奨される対処法:ESP32 デバイス(例:XIAO ESP32S3)を ESPHome Bluetooth Proxy として使用します。これにより Bluetooth 接続を Pi から切り離し、電子ペーパーディスプレイ用の「スロット」をより安定して確保できます。
ESPHome Bluetooth Proxy の使用
Raspberry Pi と Home Assistant を使用していて "Insufficient connection slots" に遭遇した場合、ESPHome Bluetooth Proxy を使うのが最も効果的な対処法です。
前提条件
- ESP32 デバイス(例:XIAO ESP32S3)。
- Home Assistant にインストールされた ESPHome。
- ESP32 を Pi に接続するための USB データケーブル(初回のフラッシュ用)。
手順付き設定ガイド
-
デバイスを接続 — XIAO ESP32S3 を Raspberry Pi の USB ポートに接続します。
-
下記の YAML を使用して、新しい ESPHome 設定を作成します:

esphome:
name: esps3-proxy
friendly_name: ESP32S3 Bluetooth Proxy
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
# 1. Enable detailed logging (useful for debugging)
logger:
level: VERY_VERBOSE
# 2. Core: Enable Bluetooth Tracker
esp32_ble_tracker:
scan_parameters:
active: true
# 3. Core: Enable Bluetooth Proxy
bluetooth_proxy:
active: true
api:
encryption:
key: "YOUR_ENCRYPTION_KEY"
ota:
- platform: esphome
password: "YOUR_OTA_PASSWORD"
wifi:
ssid: "YOUR_WIFI_SSID"
password: "YOUR_WIFI_PASSWORD"
captive_portal: -
インストール / フラッシュ:
-
Install → Plug into this computer(または ESPHome を実行しているデバイス)を選択します。

-
初回のフラッシュ時には、ESPHome が
esp-idfツールチェーンをダウンロードする場合があります。GitHub へ安定してアクセスできるインターネット環境を用意してください。 -
コンパイル後、ログに「WiFi connected」と Bluetooth スキャンの動作が表示されます。
-
-
Home Assistant にプロキシを追加します:
- Home Assistant が新しい Bluetooth Proxy を自動的に検出します。
- 追加が完了すると、「insufficient slots」エラーなしで、電子ペーパーディスプレイがプロキシ経由で検出できるようになります。


リソース
- [GitHub] OpenDisplay firmware
- [GitHub] OEPL_BLE firmware
- [Web Tool] OpenDisplay firmware web installer
- [Web Tool] OpenDisplay configuration builder
- [Web Tool] OpenDisplay display tester
- [Web Tool] OEPL Config Builder
- [Web Tool] OEPL Image Uploader
- [Discord] OpenDisplay Community
- [Website] OpenDisplay Official Site
- [Website] OpenEPaperLink Official Site
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに合わせて選べる複数のコミュニケーションチャネルをご用意しています。



