Pular para o conteúdo principal

Trabalhar com OpenEPaperLink / OpenDisplay

O ecossistema OpenEPaperLink (OEPL) e o projeto relacionado OpenDisplay são firmwares/pilhas de protocolo open-source para controlar displays de papel eletrônico. As versões modernas rodam sobre Bluetooth Low Energy — seu telefone, computador ou Home Assistant se comunicam diretamente com o dispositivo, sem necessidade de um ponto de acesso 802.15.4 dedicado.

Este guia abrange dois caminhos de hardware da Seeed para esse ecossistema:

  • XIAO ePaper Display Board EN04 — um kit integrado executando o firmware OpenDisplay via BLE.
  • ePaper Breakout Board para Seeed Studio XIAO — um caminho DIY mais modular usando o OEPL Config Builder + OEPL Image Uploader junto com uma placa da série XIAO nRF52840.

Ambos os fluxos compartilham uma filosofia comum (configuração via BLE, ferramentas baseadas na web, baixo consumo), mas o hardware e as ferramentas de firmware/web são diferentes. Escolha a aba que corresponde ao seu hardware ao longo de todo o artigo.

Hardware compatível

XIAO ePaper Display Board EN04

Alimentada pelo XIAO nRF52840 Plus, a XIAO EN04 ePaper Display Board é a forma mais fácil de começar com displays de papel eletrônico habilitados para Bluetooth. Controle sem fio direto a partir do seu telefone, computador ou Home Assistant — sem necessidade de AP dedicado.

  • Nenhum ponto de acesso necessário — usa Bluetooth Low Energy para comunicação direta. Nenhum hardware 802.15.4 é necessário.
  • Ferramentas baseadas na web — instale firmware, configure dispositivos e envie imagens diretamente do seu navegador.
  • Suporte a hardware dedicado — família XIAO nRF52840, EN04, EE04, etc.
  • Código aberto e gratuito — desenvolvido ativamente no GitHub.
  • Vários microcontroladores — nRF52840, ESP32-S3, ESP32-C6, ESP32-C3.
  • Fluxo simples — instalação de firmware por arrastar e soltar, configuração via web, sem programação complexa.
  • Eficiente em bateria — otimizado para e-paper de baixo consumo.
  • Comunidade ativaOpenDisplay Discord.

Etapa 1: Configuração de hardware

Etapa 1. Conecte o display à placa controladora
Alinhe o cabo FPC com o conector na placa XIAO EN04 e, em seguida, feche a trava.

dica

O lado metálico do cabo FPC deve ficar voltado para cima, caso contrário nenhum conteúdo será exibido. A maioria dos displays tem 1 e 50 impressos no FPC; alinhe-os com os números correspondentes na placa.

Etapa 2. Conecte a bateria
Conecte o cabo da bateria ao conector JST na placa controladora. Fio vermelho no +, preto no .

cuidado

Verifique a polaridade com atenção. Diferentes baterias podem ter fiação misturada. Fios desalinhados podem ser removidos do conector JST com uma agulha e recolocados corretamente.

Etapa 2: Gravar o firmware

O caminho mais fácil é o instalador web do OpenDisplay.

Etapa 1. Abra o OpenDisplay Web Installer em um navegador.

Etapa 2. Escolha Seeed EN04 4.26 ou Seeed EN04 7.3 (ou qualquer predefinição que corresponda ao seu display) na lista de dispositivos.

Etapa 3. Clique em Download Firmware e salve NRF52840.uf2 localmente.

Etapa 4. Conecte a placa EN04 via USB-C.

Etapa 5. Pressione o botão de reset duas vezes consecutivas. Uma unidade USB aparecerá no seu computador (a EN04 em modo DFU). Copie NRF52840.uf2 para essa unidade.

dica

Se o instalador falhar:

  • Tente um cabo USB diferente (alguns são apenas de alimentação — use um cabo de dados).
  • Pressione o botão de reset duas vezes na EN04 para voltar ao modo DFU.
  • Tente uma porta USB diferente.

Etapa 6. Abra a página de configuração do OpenDisplay e conecte-se à sua placa.

Se você selecionou Seeed EN04 4.26 ou Seeed EN04 7.3, verá Auto Install to Device — a maneira mais fácil de configurar o kit.

Etapa 7. Pressione o botão Connect. Selecione o novo dispositivo na caixa de diálogo de pareamento e pressione Pair.

Etapa 8. Pressione Auto Install to Device para salvar a configuração na placa.

Após a instalação e configuração, o display mostra uma tela de inicialização e fica pronto para receber conteúdo via BLE.

Etapa 3: Configurar o dispositivo via BLE

A etapa de configuração do OpenDisplay do fluxo de gravação anterior já cuida disso — seu EN04 agora deve inicializar na tela de inicialização do OpenDisplay e aceitar uploads de imagens.

Etapa 4: Enviar imagens

O projeto OpenDisplay possui um uploader dedicado baseado em navegador.

Etapa 1. Abra o OpenDisplay BLE Tester.

Etapa 2. Clique em Connect e escolha seu dispositivo OpenDisplay na caixa de diálogo de pareamento BLE.

Etapa 3. Clique em Select Image e escolha um arquivo do seu computador.

dica

Para obter os melhores resultados:

  • Use imagens que correspondam à resolução do seu display (o painel de 7,3" é 800×480 px).
  • Imagens em preto e branco são exibidas melhor em displays monocromáticos.
  • A ferramenta converte e aplica dithering automaticamente em imagens coloridas.

Etapa 4. Clique em Upload Image. O e-paper é atualizado e sua imagem aparece.

Você também pode criar conteúdo personalizado com editores de imagem (GIMP, Photoshop), scripts Python + Pillow, geradores de imagem baseados na web ou uma integração com Home Assistant (descrita abaixo).

Integração com Home Assistant (apenas EN04 / OpenDisplay)

dica

Para integrar com o Home Assistant, você precisa de uma configuração com suporte a Bluetooth:

  • Home Assistant Green (Bluetooth integrado)
  • Home Assistant OS / Supervised em hardware com suporte a Bluetooth
  • ESPHome Bluetooth Proxy (recomendado para melhor alcance — veja abaixo)

Observação: dispositivos Shelly atuando como proxies Bluetooth não suportam conexões ativas exigidas pelo OpenDisplay, portanto não podem ser usados.

Etapa 1. Instale a integração

Para instruções detalhadas de instalação, consulte o repositório da integração OpenDisplay para Home Assistant.

O caminho mais fácil é via HACS (Home Assistant Community Store):

Abra sua instância do Home Assistant e abra um repositório dentro do Home Assistant Community Store.

info

Após instalar a integração personalizada via HACS, reinicie o Home Assistant para que as alterações entrem em vigor.

Etapa 2. Adicione o dispositivo detectado

Quando o Home Assistant estiver de volta:

  1. Vá para Settings → Devices & services.
  2. Encontre seu dispositivo OpenDisplay em Discovered.
  3. Clique em Add.
  4. Defina o Name e a Area e clique em Finish.

Uma nova imagem aparece no display, confirmando que o Home Assistant está conectado.

Automatizando atualizações do display

O serviço principal é open_epaper_link.drawcustom, que permite desenhar texto, ícones, imagens e formas. Consulte a documentação do drawcustom para a referência completa de tipos/parâmetros.

Exemplo 1 — exibir dados de sensores (Editor Visual)

  1. Vá para Settings → Automations & Scenes e clique em Create Automation.
  2. Adicione um gatilho Time Pattern (por exemplo, a cada 10 minutos).
  1. Adicione uma ActionOpenDisplay: Draw Custom Image.
  1. Escolha o dispositivo de destino.
  1. No campo Payload, insira a configuração de layout:
- 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"
IDs de entidades

Os IDs de entidade acima (por exemplo, sensor.living_room_temperature) são apenas exemplos. Substitua-os pelos IDs de entidade reais do seu Home Assistant.

Exemplo 2 — temporizador regressivo (YAML)

Para usuários avançados, edite a automação em YAML. Este exemplo faz a contagem regressiva até uma data e exibe o resultado no display.

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
ID do dispositivo

O device_id acima é um espaço reservado. Encontre o ID real do seu dispositivo por meio de:

  1. Criar uma nova automação no Editor Visual.
  2. Selecionar seu dispositivo OpenDisplay nas configurações da ação.
  3. Alternar para o modo YAML (menu de três pontos no cartão de ação).
  4. Copiar o device_id e colá-lo na sua automação.

Bônus

Procurando uma forma estilosa de montar o display? Este inserto impresso em 3D se encaixa na moldura de quadro IKEA RODÅLM e facilita a montagem:

Solução de problemas

Problemas de instalação de firmware

Problema: o PC não detecta uma nova unidade USB após conectar a placa.

  • Tente um cabo USB diferente (cabo de dados, não apenas de alimentação).
  • Pressione o botão de reset duas vezes após conectar a placa.

Problemas de configuração

Problema: a placa não é descoberta.

  • Verifique se o LED na placa pisca — isso confirma que o dispositivo está ligado.
  • Tente reiniciar a placa.
  • Regrave o firmware.

Problema: o display não mostra nada após a instalação do firmware.

  • Verifique a orientação do cabo FPC (contatos metálicos voltados para cima).
  • Confirme se o cabo está totalmente inserido e travado.
  • Verifique novamente a configuração por meio do configurador.

Problemas de conexão Bluetooth

Problema: não é possível encontrar o dispositivo no pareamento Bluetooth.

  • Certifique-se de que o dispositivo esteja ligado e que o firmware esteja instalado.
  • Aproxime-se (dentro de 2–3 m).
  • Confirme se o Bluetooth está ativado no seu computador / telefone.

Problema: a conexão cai durante o envio da imagem.

  • Fique próximo ao dispositivo durante o envio.
  • Carregue a bateria suficientemente ou alimente via USB.
  • Evite enviar imagens muito grandes.
  • Tente novamente em um ambiente Bluetooth menos congestionado.

Problemas de bateria e alimentação

Problema: vida útil curta da bateria.

  • Configure intervalos de sono mais longos no configurador.
  • Sempre use o firmware mais recente (cada versão melhora o consumo de energia).
  • Reduza a frequência de atualização do display.
  • Verifique se a bateria está totalmente carregada (4,2 V para Li-Po).

Problema: o dispositivo não carrega.

  • Verifique a polaridade (vermelho = +, preto = −).
  • Verifique se o cabo de carregamento fornece ≥500 mA.
  • Certifique-se de que o interruptor de alimentação esteja ON.
  • Tente uma fonte de alimentação USB diferente.

Problemas com Home Assistant / Integração

Problema: "Insufficient connection slots" ao adicionar dispositivos via Raspberry Pi + HA.

Isso geralmente acontece porque o adaptador Bluetooth integrado do Raspberry Pi atingiu seu limite de conexões simultâneas.

Erro: Insufficient connection slots Exemplo da mensagem "Insufficient connection slots".

Correção recomendada: use um dispositivo ESP32 (por exemplo, XIAO ESP32S3) como um ESPHome Bluetooth Proxy. Isso descarrega a conexão Bluetooth do Pi, fornecendo "slots" mais estáveis para seus displays de papel eletrônico.

Usando ESPHome Bluetooth Proxy

Se você encontrar "Insufficient connection slots" usando um Raspberry Pi com Home Assistant, um ESPHome Bluetooth Proxy é a correção mais eficaz.

Pré-requisitos

  • Um dispositivo ESP32 (por exemplo, XIAO ESP32S3).
  • ESPHome instalado no Home Assistant.
  • Um cabo de dados USB para conectar o ESP32 ao seu Pi (para o primeiro flash).

Configuração passo a passo

  1. Conecte o dispositivo — conecte o XIAO ESP32S3 a uma porta USB do seu Raspberry Pi.

  2. Crie uma nova configuração ESPHome com o YAML abaixo:

    Configuração YAML do 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:
  3. Instalar / gravar:

    • Escolha Install → Plug into this computer (ou o dispositivo que está executando o ESPHome).

      Processo de gravação do ESPHome

    • Na primeira gravação, o ESPHome pode baixar a cadeia de ferramentas esp-idf. Certifique-se de que seu ambiente tenha acesso estável à Internet para o GitHub.

    • Após a compilação, os logs mostram "WiFi connected" e atividade de varredura Bluetooth.

  4. Adicione o proxy ao Home Assistant:

    • O Home Assistant descobrirá automaticamente o novo Bluetooth Proxy.
    • Depois de adicionado, seus displays de papel eletrônico devem ser descobertos por meio do proxy sem o erro de "insufficient slots".

    Sucesso: Bluetooth Proxy conectado

    Sucesso: display de papel eletrônico adicionado

Recursos

Suporte técnico e discussão sobre o produto

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...