7 pontos por GN⁺ 2026-02-26 | 2 comentários | Compartilhar no WhatsApp
  • Um Kindle Touch de 4ª geração antigo foi modificado para virar um painel de e-ink que atualiza os horários de chegada dos ônibus da NJ Transit a cada minuto
  • Foi criado um ambiente para executar apps customizados com jailbreak, KUAL, MRPI e configuração de SSH, e um servidor baseado em Node gera imagens para exibição no Kindle
  • O servidor busca dados de ônibus via API GraphQL, formata em HTML e depois gera PNG com wkhtmltoimage, que o Kindle carrega periodicamente
  • Um app KUAL próprio foi criado para permitir encerrar o painel por um botão de menu, com bash trap e rtcwake para gerenciamento de energia e controle de atualização automática
  • A bateria dura cerca de 5 dias, ainda há espaço para melhorar o problema de ghosting na tela, e o projeto mostra o potencial de uso de displays e-ink para informações em tempo real

Transformando um Kindle em um display de informações de chegada de ônibus

  • Um Kindle Touch de 4ª geração foi modificado para virar um painel de informações de chegada de ônibus em tempo real
    • A tela é atualizada a cada minuto, e é possível sair do modo painel pelo botão de menu
    • Entrega, de graça, uma função semelhante à do produto comercial TRMNL

1. Jailbreak no Kindle

  • Verificar a versão de firmware do Kindle e baixar o arquivo tar correspondente para executar o processo de jailbreak
  • Depois de concluir com sucesso, seguir para a instalação do KUAL e do MRPI

2. Instalação do KUAL e do MRPI

  • O KUAL é usado como launcher de apps customizados, e o MRPI como ferramenta de instalação de apps
  • Antes da instalação, é obrigatório fazer a configuração do Hotfix
  • Depois da instalação, desativar as atualizações OTA para bloquear updates automáticos

3. Configuração de SSH

  • Com a extensão USBNetwork, é possível acessar o Kindle via SSH
  • Um guia de blog externo foi usado como referência para configurar a conexão SSH via USB
  • Quando a conexão funciona, o Kindle aparece como um novo dispositivo na aba de rede do computador

4. Montagem do servidor e geração de imagens

  • A API GraphQL da NJ Transit é usada para buscar informações de chegada dos ônibus
    • A query getBusArrivalsByStopID coleta dados como linha, horário de chegada e lotação
  • Em vez de puppeteer, foi usado wkhtmltoimage para converter HTML em PNG
    • O servidor gera uma nova imagem a cada 3 minutos, e o Kindle a requisita
    • O código relacionado está publicado no repositório GitHub kindle-hax/server
  • A imagem é rotacionada e alinhada conforme a resolução da tela do Kindle (por exemplo, 600x800)
    • transform: rotate(90deg) translateX(-100px) translateY(-100px); é usado para exibição em orientação vertical

5. Criação do app KUAL

  • Foi criada uma extensão KUAL customizada para controlar o início e o encerramento do painel
    • Ao colocar a pasta em /mnt/us/extensions/, o menu “Start dashboard” aparece no KUAL
  • O script start.sh mantém a execução estável ignorando sinais (trap '' HUP, trap '' TERM)
    • A função refresh_screen() baixa a imagem do servidor e a exibe com o comando eips
    • No topo, são mostrados data, status do Wi‑Fi e nível de bateria
  • Com evtest, ao detectar a entrada do botão de menu (code 102 (Home), value 1), é executado o stop.sh
    • Isso encerra o painel e reinicia a interface do Kindle

6. Resultado e pontos de melhoria

  • A bateria dura cerca de 5 dias, e pode ganhar mais 2 dias se a energia for desligada à noite
  • O problema de ghosting na tela (color bleeding) pode possivelmente ser melhorado com um flash completo em preto e branco
  • O sistema já é usado no dia a dia, e confirmou o potencial de expansão para exibir calendário, clima, tarefas e outras informações

2 comentários

 
xguru 2026-02-26

Eu também fiz algo parecido recentemente, e se não te incomoda ver a barra de URL em cima, dá para simplesmente carregar uma página web.
O Kindle basicamente consegue acessar URLs no navegador, então é só abrir o dashboard por lá.
No trabalho uso um Kindle, e em casa um Paperwhite de geração antiga, carregando a mesma página, então até que é multiplataforma haha

Claro, no Kindle também é preciso fazer root ou algo semelhante para usar um modo em que ele fique sempre ligado.
No Paperwhite nem precisa chegar ao root; basta liberar a conexão adb e, por ali, desativar o protetor de tela.

 
GN⁺ 2026-02-26
Comentários do Hacker News
  • Como alguém que trabalhou anteriormente com consumo de energia do Kindle, a maior fonte de gasto era a conexão Wi‑Fi
    Isso porque o Wi‑Fi precisa responder periodicamente ao AP para que a conexão não seja encerrada
    Lembro que era algo como 700uA com o Wi‑Fi desligado e cerca de 1,5mA com ele ligado
    Ao mudar de página, o consumo subia momentaneamente para a casa das centenas de mA, e uma atualização completa da tela era feita a cada certo número de páginas para reduzir o efeito ghosting

    • Eu removi a bateria e alimentei o Kindle com 5V pela porta USB passando por um diodo
      Era necessária uma fonte capaz de fornecer cerca de 1,5A em picos, e ao conectar um hub USB alimentado externamente antigo ao Raspberry Pi e controlá-lo por SSH, ele funcionou de forma estável por meses sem Wi‑Fi
    • Meu RM2 nunca se conecta ao Wi‑Fi, e mesmo assim passa meses sem precisar carregar
      Eu o uso menos de 30 vezes por mês, mas com o Wi‑Fi desligado a eficiência da bateria é surpreendentemente boa
      Ainda não modifiquei meu Paperwhite Kindle, mas pelo menos pretendo remover os anúncios da tela de bloqueio
    • Estou pensando em testar a duração da bateria deixando o Wi‑Fi desligado e aumentando o intervalo de atualização para 2 minutos
      Só agora entendi de fato por que a bateria dura tanto no modo avião
    • Fico me perguntando se colar células solares de silício amorfo ao redor do Kindle evitaria a necessidade de carregá-lo a cada 5 dias
  • Eu usei um método mais simples
    Depois do jailbreak, entrei por SSH e criei dois scripts, um executado a cada 1 minuto e outro a cada 30 minutos
    Os dois exibem a mesma imagem, mas o de 30 minutos adiciona uma atualização completa
    No Raspberry Pi, uso rsync para transferir a imagem, e um script em Python busca os dados de qualidade do ar no MySQL e compõe a imagem
    O Kindle apenas exibe a imagem, então funciona de forma muito estável

    • Sorri ao ver alguém chamar isso de “método mais simples” e, logo em seguida, mencionar rsync, Python e MySQL
    • Se existisse um display eInk que simplesmente recebesse e exibisse um bitmap, isso já bastaria para muitos usos
      Bastaria suportar conexões seguras como TLS
    • Eu também fiz algo parecido, com jailbreak no Kindle para ler ePub no ônibus e perguntar à Siri qual é o próximo ônibus
    • É realmente satisfatório resolver o problema com dois scripts simples em vez de um framework complexo
  • Hackear Kindle é mesmo uma atividade divertida
    No eBay dá para achar Kindle antigos por 15 a 20 euros, e eu também me diverti fazendo o mesmo experimento no ano passado
    O processo em detalhes está no meu post no blog

    • Dá para comprar no AliExpress uma placa e-ink baseada em ESP32 chamada Xteink4
      Ela é pequena, mas se você instalar o firmware Crosspoint, pode usá-la como leitor portátil de e-ink
      Vídeo no YouTube, Crosspoint GitHub
    • Se engenharia reversa parecer demais, também existem displays e-ink que se conectam à porta DSI do Raspberry Pi
      São um pouco mais caros, mas podem até reutilizar telas de Kindle
    • É divertido ver outra pessoa alcançar o mesmo objetivo de um jeito diferente
      Este post me deu vontade de experimentar mais plataformas como Cloudflare Workers
    • Fico curioso se dá para começar o jailbreak imediatamente ou se é preciso vincular uma conta Amazon na configuração inicial
  • Eu transformei um Kindle antigo em uma moldura de imagens geradas por IA
    Uma nova imagem é gerada a cada poucas horas, e o prompt pode incluir clima, animais, país, manchetes de notícias etc.
    Todo o processamento é feito localmente no servidor de casa com ollama + stable-diffusion-webui
    Mas imagens baseadas em notícias ficavam deprimentes demais, então instruí a IA a usar um tom positivo
    Em dias de chuva, também chove na imagem; no inverno, neva, e assim por diante
    A bateria também dura várias semanas, e eu modifiquei a extensão Online Screensaver para alternar automaticamente para o modo avião

    • Usar reconhecimento de voz para visualizar conversas como imagens também parece que seria divertido
    • e-ink combina de um jeito curioso com arte generativa
  • A versão do dashboard para Kindle que eu fiz está publicada no GitHub
    Ela mostra o clima local e informações musicais do servidor de mídia
    O problema de ghosting na tela pode ser resolvido com atualizações completas periódicas usando o comando eips -f

    • Fiquei impressionado ao ver que foi feito em Rust
      Foi a primeira vez que pensei que queria aprender Rust
  • Em Queensland, na Austrália, já operam painéis de ponto de ônibus em e-paper movidos a energia solar
    São bem maiores que um Kindle, mas o princípio é parecido
    Apresentação do projeto, Vídeo de demonstração

  • Este projeto me lembrou o projeto SystemSix

    • Muito legal. Também fiquei com vontade de fazer um suporte personalizado
  • Parece que hoje em dia todo mundo está fazendo esse tipo de projeto de modificação de Kindle
    Eu também modifiquei um K4NT e criei um servidor que mostra o calendário da família
    Recebi uma ajudinha de IA, coloquei um inserto impresso em 3D em uma moldura da Ikea e anexei uma bateria externa MagSafe
    Basta apertar o botão de energia a cada 5 dias, e pretendo trocar a bateria interna
    Uma conexão com fio não era viável no meu ambiente

  • Se você desligar a rede entre as atualizações, a duração da bateria realmente aumenta bastante
    Eu bloqueava atualizações das 22h às 6h da manhã
    Há muitos scripts no GitHub para economizar bateria
    No passado, também fiz um mostrador de transporte público baseado em GTFS com Raspberry Pi Zero + e-ink de 2 polegadas
    Post sobre dashboard para Kindle, projeto Transit Pi

    • A ideia de um dashboard que mostra o tempo restante da máquina de lavar junto com ícones de Pokémon é fofa demais
      Esse tipo de visualização de eletrodomésticos inteligentes é realmente encantador
  • Eu gosto de usar Kindle como display de propósito único
    Na verdade, prefiro o Kindle Fire com LCD ao eInk
    Se você ativar o modo de desenvolvedor, dá para deixar uma página web aberta o tempo todo e usar sem anúncios
    Um Kindle Fire HD10 pode ser encontrado por cerca de 40 dólares

    • Valeu pela informação sobre o Kindle Fire
      LCD sem ghosting e legível no escuro é um ótimo upgrade para dashboards