Trabajar con OpenEPaperLink / OpenDisplay
El ecosistema OpenEPaperLink (OEPL) y el proyecto relacionado OpenDisplay son firmware/pilas de protocolo de código abierto para controlar pantallas de tinta electrónica. Las versiones modernas funcionan sobre Bluetooth Low Energy: tu teléfono, ordenador o Home Assistant se comunican directamente con el dispositivo, sin necesidad de un punto de acceso 802.15.4 dedicado.
Esta guía cubre dos rutas de hardware de Seeed hacia ese ecosistema:
- XIAO ePaper Display Board EN04: un kit integrado que ejecuta el firmware OpenDisplay sobre BLE.
- ePaper Breakout Board para Seeed Studio XIAO: una ruta DIY más modular que usa OEPL Config Builder + OEPL Image Uploader junto con una placa XIAO de la serie nRF52840.
Ambos flujos comparten una filosofía común (configuración por BLE, herramientas basadas en la web, bajo consumo), pero el hardware y las herramientas de firmware/web son diferentes. Elige la pestaña que coincida con tu hardware a lo largo del artículo.
Hardware compatible
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
| XIAO ePaper Display Board EN04 |
|---|
![]() |
Impulsada por XIAO nRF52840 Plus, la XIAO EN04 ePaper Display Board es la forma más sencilla de empezar con pantallas de tinta electrónica habilitadas para Bluetooth. Control inalámbrico directo desde tu teléfono, ordenador o Home Assistant, sin necesidad de un punto de acceso dedicado.
| Pantalla ePaper monocroma de 4,26" | ePaper Breakout Board para Seeed Studio XIAO | Seeed Studio XIAO nRF52840 Sense Plus |
|---|---|---|
![]() | ![]() | ![]() |
Toda la serie XIAO nRF52840 puede controlar este kit DIY, no solo la Sense Plus que se muestra arriba. El proyecto comunitario OEPL es compatible con la pantalla de 4,26" desde el primer momento; se añadirán más tamaños de pantalla con el tiempo.
¿Por qué usar OpenEPaperLink / OpenDisplay?
- No se requiere punto de acceso: utiliza Bluetooth Low Energy para la comunicación directa. No se necesita hardware 802.15.4.
- Herramientas basadas en la web: instala firmware, configura dispositivos y sube imágenes directamente desde tu navegador.
- Compatibilidad con hardware específico: familia XIAO nRF52840, EN04, EE04, etc.
- Código abierto y gratuito: desarrollado activamente en GitHub.
- Varios microcontroladores: nRF52840, ESP32-S3, ESP32-C6, ESP32-C3.
- Flujo sencillo: instalación de firmware por arrastrar y soltar, configuración vía web, sin programación compleja.
- Eficiente en batería: optimizado para e-paper de bajo consumo.
- Comunidad activa: OpenDisplay Discord.
Paso 1: Configuración del hardware
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
Paso 1. Conecta la pantalla a la placa controladora
Alinea el cable FPC con el conector de la placa XIAO EN04 y luego asegura la pestaña.
El lado metálico del cable FPC debe mirar hacia arriba; de lo contrario, no se mostrará ningún contenido. La mayoría de las pantallas tienen 1 y 50 impresos en el FPC; alinéalos con los números correspondientes en la placa.

Paso 2. Conecta la batería
Conecta el cable de la batería al conector JST de la placa controladora. Cable rojo al +, negro al −.

Verifica la polaridad dos veces. Diferentes baterías pueden tener cableados mezclados. Los cables mal alineados pueden extraerse del conector JST con una aguja y volver a insertarse correctamente.
Conecta la XIAO nRF52840 (Sense Plus) a la ePaper Breakout Board y luego conecta la pantalla ePaper monocroma de 4,26" al conector FPC. Usa un cable de datos USB-C para conectar la XIAO a tu ordenador.
Paso 2: Grabar el firmware
- XIAO ePaper Display Board EN04
- ePaper Breakout Board + XIAO nRF52840
El camino más sencillo es el instalador web de OpenDisplay.
Paso 1. Abre el OpenDisplay Web Installer en un navegador.
Paso 2. Elige Seeed EN04 4.26 o Seeed EN04 7.3 (o el preset que coincida con tu pantalla) de la lista de dispositivos.
Paso 3. Haz clic en Download Firmware y guarda NRF52840.uf2 localmente.
Paso 4. Conecta la placa EN04 mediante USB-C.
Paso 5. Pulsa el botón de reinicio dos veces consecutivas. Aparecerá una unidad USB en tu ordenador (la EN04 en modo DFU). Copia NRF52840.uf2 a esa unidad.
Si el instalador falla:
- Prueba con un cable USB diferente (algunos solo son de alimentación; usa un cable de datos).
- Pulsa dos veces el botón de reinicio en la EN04 para volver a entrar en modo DFU.
- Prueba con un puerto USB diferente.
Paso 6. Abre la página de configuración de OpenDisplay y conéctate a tu placa.

Si seleccionaste Seeed EN04 4.26 o Seeed EN04 7.3, verás Auto Install to Device, la forma más sencilla de configurar el kit.
Paso 7. Pulsa el botón Connect. Selecciona el nuevo dispositivo en el cuadro de diálogo de emparejamiento y pulsa Pair.

Paso 8. Pulsa Auto Install to Device para guardar la configuración en la placa.
Tras la instalación y configuración, la pantalla muestra una pantalla de inicio y está lista para recibir contenido por BLE.

La XIAO nRF52840 necesita el firmware OEPL_BLE antes de que OEPL Config Builder pueda comunicarse con ella.
Paso 1. Descarga el firmware OEPL_BLE más reciente desde la página oficial de lanzamientos de OEPL.

Paso 2. Conecta la XIAO nRF52840 + Breakout Board + pantalla, enchufa la XIAO a tu ordenador mediante USB-C y luego pulsa el botón de reinicio dos veces. La XIAO aparecerá como una unidad USB en tu ordenador.

Paso 3. Arrastra y suelta el firmware .uf2 descargado en esa unidad USB. La XIAO se reiniciará y ejecutará el nuevo firmware en el siguiente ciclo de encendido.

Paso 3: Configurar el dispositivo por BLE
- XIAO ePaper Display Board EN04
- Placa de expansión ePaper + XIAO nRF52840
El paso de configuración de OpenDisplay del flujo de flasheo anterior ya se encarga de esto: tu EN04 ahora debería arrancar en la pantalla de inicio de OpenDisplay y aceptar cargas de imágenes.
Abre el OEPL Config Builder, luego conéctate a tu XIAO mediante BLE. (Si no aparece ningún dispositivo, vuelve a flashear el firmware e inténtalo de nuevo).

Cuando veas "Connected" en la terminal, puedes usar:
- Read Config: lee la configuración actual desde el MCU.
- Write Config: escribe una nueva configuración en el MCU.
- Reboot: reinicia el MCU.
Panel del generador
Elige variables y parámetros en el panel para componer tu configuración.
- system_config: IC host y pines de gestión de energía.
- manufacturer_data: identificador del fabricante e información de la placa.
- power_option: ajustes de alimentación y suspensión.
- display: información de la pantalla / panel (puede repetirse para varias pantallas).
- led: configuración opcional del LED (repetible).
- sensor_data: lecturas / definiciones de sensores opcionales (repetible).
- data_bus: definiciones de bus (I2C / SPI / …).
- binary_inputs: botones, interruptores.

Puedes exportar la configuración como .bin, Hex o JSON, o importar un JSON guardado. A continuación se ofrece una configuración ya preparada para la pantalla de 4,26".

Después de ajustar la configuración, haz clic en Write Config para guardarla en el MCU.
Paso 4: Cargar imágenes
- Placa de pantalla XIAO ePaper EN04
- Placa de expansión ePaper + XIAO nRF52840
El proyecto OpenDisplay tiene un cargador dedicado basado en navegador.
Paso 1. Abre el OpenDisplay BLE Tester.
Paso 2. Haz clic en Connect y elige tu dispositivo OpenDisplay en el cuadro de diálogo de emparejamiento BLE.
Paso 3. Haz clic en Select Image y elige un archivo de tu ordenador.

Para obtener los mejores resultados:
- Usa imágenes que coincidan con la resolución de tu pantalla (el panel de 7,3" es de 800×480 px).
- Las imágenes en blanco y negro se muestran mejor en pantallas monocromas.
- La herramienta convierte y aplica tramado automáticamente a las imágenes en color.
Paso 4. Haz clic en Upload Image. El papel electrónico se actualiza y tu imagen aparece.
También puedes crear contenido personalizado con editores de imágenes (GIMP, Photoshop), scripts de Python + Pillow, generadores de imágenes basados en la web o una integración con Home Assistant (tratada más adelante).
El OEPL Image Uploader también es una herramienta web BLE. Las asignaciones de pines difieren del firmware de Config Builder, por lo que primero debes flashear un firmware de carga de imágenes ligeramente diferente.
En el campo E-Paper prefix filter(s), cambia el valor a OEPL; de lo contrario, el cargador no puede encontrar el dispositivo.


Haz clic en Select File para elegir un archivo local para cargar.

Cuando la transferencia del archivo haya finalizado, haz clic en Upload Image para enviarlo al papel electrónico.

Cuando veas Upload Complete, el papel electrónico se habrá actualizado con la nueva imagen.
Integración con Home Assistant (solo EN04 / OpenDisplay)
Para integrarlo con Home Assistant, necesitas una configuración con capacidad Bluetooth:
- Home Assistant Green (Bluetooth integrado)
- Home Assistant OS / Supervised en hardware con soporte Bluetooth
- ESPHome Bluetooth Proxy (recomendado para un mejor alcance; ver más abajo)
Nota: Los dispositivos Shelly que actúan como proxies Bluetooth no admiten las conexiones activas que requiere OpenDisplay, por lo que no se pueden usar.
Paso 1. Instalar la integración
Para obtener instrucciones de instalación detalladas, consulta el repositorio de la integración de OpenDisplay con Home Assistant.
La forma más sencilla es a través de HACS (Home Assistant Community Store):
Después de instalar la integración personalizada mediante HACS, reinicia Home Assistant para que los cambios surtan efecto.
Paso 2. Añadir el dispositivo detectado
Una vez que Home Assistant haya vuelto a iniciarse:
- Ve a Settings → Devices & services.
- Busca tu dispositivo OpenDisplay en Discovered.
- Haz clic en Add.
- Establece el Name y el Area, luego haz clic en Finish.
Aparece una nueva imagen en la pantalla, lo que confirma que Home Assistant está conectado.

Automatizar las actualizaciones de la pantalla
El servicio principal es open_epaper_link.drawcustom, que te permite dibujar texto, iconos, imágenes y formas. Consulta la documentación de drawcustom para ver la referencia completa de tipos y parámetros.
Ejemplo 1: mostrar datos de sensores (Editor visual)
- Ve a Settings → Automations & Scenes y haz clic en Create Automation.
- Añade un disparador Time Pattern (por ejemplo, cada 10 minutos).


- Añade una Action → OpenDisplay: Draw Custom Image.

- Elige el dispositivo de destino.

- En el campo Payload, introduce la configuración del diseño:
- 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"
Los IDs de entidad anteriores (por ejemplo, sensor.living_room_temperature) son marcadores de posición. Sustitúyelos por tus IDs de entidad reales de Home Assistant.
Ejemplo 2: temporizador de cuenta atrás (YAML)
Para usuarios avanzados, edita la automatización como YAML. Este ejemplo cuenta hacia atrás hasta una fecha y muestra el resultado en la pantalla.
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
El device_id anterior es un marcador de posición. Encuentra el ID real de tu dispositivo de la siguiente manera:
- Crea una nueva automatización en el Editor Visual.
- Selecciona tu dispositivo OpenDisplay en la configuración de la acción.
- Cambia al modo YAML (menú de tres puntos en la tarjeta de acción).
- Copia el
device_idy pégalo en tu automatización.
Extra
¿Buscas una forma elegante de montar la pantalla? Este inserto impreso en 3D encaja en el marco de fotos IKEA RODÅLM y facilita el montaje:
- [MakerWorld] Inserto Seeed 7.3" Spectra para marco IKEA RODALM
Solución de problemas
Problemas de instalación del firmware
Problema: el PC no detecta una nueva unidad USB después de conectar la placa.
- Prueba con otro cable USB (cable de datos, no solo de alimentación).
- Pulsa el botón de reinicio dos veces después de conectar la placa.
Problemas de configuración
Problema: la placa no se descubre.
- Verifica que el LED de la placa parpadea; esto confirma que el dispositivo está alimentado.
- Intenta reiniciar la placa.
- Vuelve a grabar el firmware.
Problema: la pantalla no muestra nada después de instalar el firmware.
- Verifica la orientación del cable FPC (contactos metálicos hacia arriba).
- Confirma que el cable está completamente insertado y bloqueado.
- Vuelve a comprobar la configuración mediante el configurador.
Problemas de conexión Bluetooth
Problema: no se puede encontrar el dispositivo en el emparejamiento Bluetooth.
- Asegúrate de que el dispositivo esté encendido y el firmware instalado.
- Acércate (dentro de 2–3 m).
- Confirma que el Bluetooth está activado en tu ordenador / teléfono.
Problema: la conexión se corta durante la carga de la imagen.
- Mantente cerca del dispositivo durante la carga.
- Carga la batería suficientemente o aliméntala mediante USB.
- Evita subir imágenes muy grandes.
- Inténtalo de nuevo en un entorno Bluetooth menos congestionado.
Problemas de batería y alimentación
Problema: poca duración de la batería.
- Configura intervalos de suspensión más largos en el configurador.
- Ejecuta siempre el firmware más reciente (cada versión mejora el consumo de energía).
- Reduce la frecuencia de actualización de la pantalla.
- Verifica que la batería esté completamente cargada (4,2 V para Li-Po).
Problema: el dispositivo no carga.
- Comprueba la polaridad (rojo = +, negro = −).
- Verifica que el cable de carga proporcione ≥500 mA.
- Asegúrate de que el interruptor de encendido esté en ON.
- Prueba con otra fuente de alimentación USB.
Problemas con Home Assistant / Integración
Problema: "Insufficient connection slots" al añadir dispositivos mediante Raspberry Pi + HA.
Esto suele ocurrir porque el adaptador Bluetooth integrado de la Raspberry Pi ha alcanzado su límite de conexiones simultáneas.
Ejemplo del mensaje "Insufficient connection slots".
Solución recomendada: usa un dispositivo ESP32 (por ejemplo, XIAO ESP32S3) como ESPHome Bluetooth Proxy. Esto descarga la conexión Bluetooth del Pi, proporcionando "slots" más estables para tus pantallas de papel electrónico.
Uso de ESPHome Bluetooth Proxy
Si te aparece "Insufficient connection slots" usando una Raspberry Pi con Home Assistant, un ESPHome Bluetooth Proxy es la solución más efectiva.
Requisitos previos
- Un dispositivo ESP32 (por ejemplo, XIAO ESP32S3).
- ESPHome instalado en Home Assistant.
- Un cable de datos USB para conectar el ESP32 a tu Pi (para el primer flasheo).
Configuración paso a paso
-
Conecta el dispositivo: enchufa el XIAO ESP32S3 en un puerto USB de tu Raspberry Pi.
-
Crea una nueva configuración ESPHome con el YAML siguiente:

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: -
Instalar / flashear:
-
Elige Install → Plug into this computer (o el dispositivo que ejecuta ESPHome).

-
En el primer flasheo, ESPHome puede descargar la herramienta
esp-idf. Asegúrate de que tu entorno tenga acceso estable a Internet y a GitHub. -
Después de la compilación, los registros muestran "WiFi connected" y actividad de escaneo Bluetooth.
-
-
Añade el proxy a Home Assistant:
- Home Assistant descubrirá automáticamente el nuevo Bluetooth Proxy.
- Una vez añadido, tus pantallas de papel electrónico deberían poder descubrirse a través del proxy sin el error de "insufficient slots".


Recursos
- [GitHub] Firmware de OpenDisplay
- [GitHub] Firmware OEPL_BLE
- [Web Tool] Instalador web del firmware de OpenDisplay
- [Web Tool] Generador de configuración de OpenDisplay
- [Web Tool] Probador de pantalla de OpenDisplay
- [Web Tool] OEPL Config Builder
- [Web Tool] OEPL Image Uploader
- [Discord] Comunidad OpenDisplay
- [Website] Sitio oficial de OpenDisplay
- [Website] Sitio oficial de OpenEPaperLink
Soporte técnico y debate sobre el producto
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a distintas preferencias y necesidades.



