- 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
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.
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
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
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
Só agora entendi de fato por que a bateria dura tanto no modo avião
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
Bastaria suportar conexões seguras como TLS
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
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
São um pouco mais caros, mas podem até reutilizar telas de Kindle
Este post me deu vontade de experimentar mais plataformas como Cloudflare Workers
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
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 -fFoi 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
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
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
LCD sem ghosting e legível no escuro é um ótimo upgrade para dashboards