LILYGO T5 E-Paper S3 Pro Lite: stavím vlastní open-source čtečku
Místo dalšího Kindlu jsem sáhl po vývojové platformě s ESP32-S3 a e-paperem. T5S3 Reader už umí překvapivě dost - a právě proto jsem se pustil do vlastního forku.
Když se řekne elektronická čtečka knih, většině lidí se pravděpodobně vybaví Kindle nebo Kobo. Koupíte hotové zařízení, přihlásíte se, nahrajete knihy a čtete.
Jenže pak existuje ještě trochu jiná cesta.
Co kdyby čtečka nebyla uzavřený hotový produkt, ale zařízení, jehož firmware můžu upravovat, opravovat a postupně si jej přizpůsobovat podle sebe?
Přesně tady začal můj experiment s LILYGO T5 E-Paper S3 Pro Lite.
A jak už to u podobných projektů bývá, původně jednoduchý nápad „udělám si vlastní čtečku“ se poměrně rychle změnil v podstatně větší projekt.
Co je LILYGO T5 E-Paper S3 Pro Lite?
T5S3 není klasická elektronická čtečka. Ve skutečnosti jde spíše o vývojovou platformu postavenou kolem mikrokontroléru ESP32-S3 a e-paperového displeje.

Konkrétně moje varianta používá modul ESP32-S3-WROOM-1-N16R8, tedy ESP32-S3 s:
- 16 MB Flash,
- 8 MB PSRAM,
- Wi-Fi a Bluetooth.
K tomu dostaneme přibližně 4,7" e-paperový displej s rozlišením 540 × 960 pixelů, dotykovou vrstvu, přední osvětlení, slot na microSD kartu a USB-C.

Na první pohled tedy skoro všechno, co by jednoduchá čtečka potřebovala.
A právě to mě zaujalo.
Nechtěl jsem stavět elektronickou čtečku úplně od nuly včetně vlastního PCB, napájení a řízení displeje. T5S3 nabízí hotový hardware, na kterém se dá začít experimentovat hlavně se softwarem.
Proč vůbec vlastní čtečka?
Nemám nic proti hotovým čtečkám. Kindle, Kobo a podobná zařízení jsou pravděpodobně lepší volbou pro člověka, který chce jednoduše číst.
T5S3 jsem ale nekupoval proto, abych získal nejpohodlnější čtečku na trhu.
Zajímala mě především otevřenost.
Chtěl jsem zařízení, u kterého můžu časem říct například:
„Tahle funkce mi chybí.“
…a místo čekání, jestli ji někdy výrobce přidá, se ji můžeme pokusit přidat sami.
Stejně tak pokud něco nefunguje správně, nemusí řešení skončit u čekání na další aktualizaci firmwaru.
Můžu se podívat, kde je problém.
A přesně to se později ukázalo jako velmi důležité.
T5S3 Reader: první použitelný základ
Samotný hardware samozřejmě ještě čtečku nedělá.
Pro T5S3 existuje několik projektů a experimentálních firmwarů, ale pro skutečné používání jako e-book reader mě v době, kdy jsem s projektem začínal, zaujal především T5S3 Reader.
Po prvním spuštění bylo velmi příjemným překvapením, kolik věcí už v tehdejší verzi fungovalo.
Čtečka dokázala pracovat s knihami uloženými na microSD kartě, otevřít EPUB i TXT soubory, pamatovat si rozečtené knihy a nabídnout základní knihovnu.
Knihy jsem proto v téhle fázi ukládal především na microSD kartu.
Na zařízení založené na ESP32-S3 je to už poměrně působivé.
Čím déle jsem jej ale používal, tím více jsem začínal narážet na drobnosti, které z vývojové platformy stále dělaly spíš zajímavý experiment než úplně spolehlivou každodenní čtečku.
A tím začala ta zajímavější část projektu.
Co už funguje překvapivě dobře
Než začnu popisovat problémy, bylo by nefér vytvořit dojem, že firmware nefunguje.
Naopak.
Základ je podle mě velmi dobrý.
Už s verzí, ze které jsem při experimentování vycházel, jsem mohl na T5S3 vzít EPUB, otevřít jej a normálně číst. Fungovalo dotykové ovládání, knihovna, ukládání rozečtených knih i základní nastavení.
Po doplnění vhodných fontů není problém ani česká diakritika.
E-paperový displej je navíc pro čtení velmi příjemný a rozlišení 540 × 960 pixelů je při této velikosti obrazovky naprosto použitelné.
ESP32-S3 samozřejmě není procesor z telefonu nebo klasického tabletu. Máme omezené množství RAM, omezený výkon a celý software musí být navržen trochu jinak.
Právě to ale dělá projekt zajímavým.
První problémy
Při delším používání se začaly objevovat chyby, které při krátkém vyzkoušení zařízení nemusí být vůbec vidět.
Například jsem narazil na problém při práci s TXT soubory.
Po otevření jednoho TXT souboru se za určitých okolností stalo, že jsem následně kliknul na úplně jinou knihu, ale čtečka znovu otevřela předchozí TXT.
Nejdříve jsem měl podezření na velikost souboru, protože první problém nastal u poměrně velkého TXT.
Pozdější test ale ukázal, že totéž dokáže způsobit i malý soubor.
Najednou už tedy nevypadalo pravděpodobně, že by problém byl pouze v nedostatku paměti.
Podezření se přesunulo spíš někam do práce s identifikací souborů, indexem knihovny nebo cache.
Další test ukázal ještě jednu zajímavost.
Po restartu zařízení začala správná kniha znovu fungovat, ale rozečtená pozice byla přibližně o dvě stránky jinde, než kde jsem čtečku před vypnutím opustil.
To jsou přesně chyby, které člověk při pětiminutové recenzi pravděpodobně nikdy nenajde.
Při skutečném používání jsou ale velmi důležité.
Bootování a microSD karta
Další oblastí, která si zaslouží pozornost, je start zařízení.
Firmware, ze kterého jsem tehdy vycházel, počítal s microSD kartou na několika místech způsobem, který nebyl vždy úplně odolný proti chybám.
Co když karta chybí?
Co když obsahuje poškozený konfigurační soubor?
Co když se nepodaří správně připojit?
Co když uživatel kartu při startu jednoduše zapomene vložit?
Zařízení by podle mě v takové situaci nemělo skončit v nepředvídatelném stavu. Mělo by se pokusit bezpečně nastartovat a uživateli jasně říct, co se stalo.
Právě tato část se nakonec stala jednou z prvních oblastí, do kterých jsme se pustili ve vlastním forku.
Postupně jsme nový bootstrap proces nejen navrhli, ale i implementovali a testovali. Start bez vložené microSD karty a recovery už mají vlastní řízený tok, načítání nastavení je odolnější proti chybám a řešili jsme i to, aby se při pozdějších změnách stavu neztratil původní důvod probuzení.
Je to možná méně efektní funkce než nové menu nebo pěknější knihovna.
Jenže pokud se čtečka nespolehlivě zapíná, nové menu vám příliš nepomůže.
Proto jsme se rozhodli nejdříve řešit základy.
A pak je tu tlačítko POWER
Samostatnou kapitolou je zapínání zařízení.
T5S3 se občas nechová úplně tak, jak bych od čtečky očekával.
Může se stát, že ani po delším stisku tlačítka POWER zařízení nenaběhne a je nutné použít tlačítko RESET.
Není to něco, co by se dělo při každém spuštění, což podobné problémy dělá ještě zajímavějšími na hledání.
Na napájení a chování při probouzení už také pracujeme, ale tahle oblast ještě není definitivně vyřešená. Cílem zůstává dostat zařízení do stavu, kdy bude jedno tlačítko opravdu znamenat:
zapnout, uspat, probudit a vypnout.
Tak, jak bychom od běžné čtečky očekávali.
Proč jsem se rozhodl udělat vlastní fork
V určitém okamžiku už přestávalo dávat smysl opravovat jednotlivé věci izolovaně.
Začal se totiž tvořit poměrně dlouhý seznam toho, co jsem tehdy chtěl postupně změnit.
Kromě oprav stability například:
- spolehlivější boot a recovery režim,
- lepší správu SD karty,
- kvalitnější zpracování a textový layout EPUB,
- další vylepšení nastavení velikosti písma,
- lepší zarovnání textu,
- vyhledávání v otevřené knize,
- přepracovaný horní rychlý panel,
- Wi-Fi a Bluetooth ovládání,
- rychlé nastavení jasu,
- rychlé přepínání orientace obrazovky,
- inverzní režim,
- screenshoty a jejich anotace,
- lepší informace o baterii,
- synchronizaci času přes NTP,
- později jednoduchý TXT editor.
A to už začíná být něco víc než několik drobných patchů.
Rozhodl jsem se proto vytvořit vlastní fork.
Nechci původní projekt přepisovat od nuly. Naopak, jeho základ je velmi užitečný a bez něj by byl celý projekt výrazně složitější.
Část těchto změn už se mezitím přesunula z plánů do reálné implementace a testování.
Nejprve stabilita, potom nové hračky
Je velmi lákavé okamžitě přidávat nové funkce.
Screenshot!
Nové menu!
Lepší práce se soubory přes Wi-Fi!
Poznámky!
Textový editor!
A možná časem ještě mnohem víc.
Jenže přesně tím se dá poměrně snadno vytvořit software plný zajímavých funkcí, který se při třetím startu zasekne.
Proto jsme si stanovili trochu nudnější pořadí.
Nejdříve spolehlivý základ.
Boot.
SD karta.
Recovery.
Ukládání stavu.
Správné otevírání knih.
Napájení.
Až potom další funkce.
U zařízení s ESP32-S3 to dává dvojnásobný smysl. Modul ESP32-S3-WROOM-1-N16R8 má v téhle konfiguraci 16 MB Flash a 8 MB PSRAM, takže při návrhu větších funkcí musíme počítat s omezenou pamětí, úložištěm i výkonem samotného ESP32-S3.
Každá větší funkce bude muset mít své opodstatnění.
Open-source čtečka nemusí být další Kindle
Čím déle nad projektem pracuji, tím méně mám potřebu vytvořit z T5S3 kopii některé komerční čtečky.
Naopak.
Výhoda takového zařízení je právě v tom, že může být trochu jiné.
Může mít například rychlý panel podobný telefonu.
Může nabídnout pohodlnější správu souborů přes lokální Wi-Fi a propojit ji s dalšími funkcemi čtečky.
Může mít systémovou schránku použitelnou mezi čtečkou a budoucím textovým editorem.
Může umožnit udělat screenshot stránky, něco na něm rovnou zvýraznit a výsledek uložit na SD kartu.
A protože používáme ESP32-S3, některé věci budou muset být řešeny výrazně jednodušeji než na Androidu nebo Linuxu.
To ale nemusí být nevýhoda.
Naopak mě docela baví otázka:
Jak dobré zařízení lze vytvořit v omezeném hardwaru, pokud se software navrhne rozumně?
Je T5S3 vhodná pro každého?
Rozhodně ne.
Pokud chcete koupit čtečku, večer ji vybalit a dalších pět let vůbec neřešit firmware, T5S3 bych vám momentálně nedoporučil.
Kindle nebo Kobo budou mnohem bezpečnější volba.
Pokud vás ale baví open-source software, ESP32, bastlení nebo prostě možnost zařízení upravovat podle sebe, T5S3 je velmi zajímavá hračka.
A v mém případě už pomalu přestává být jen hračkou.
Začíná z ní vznikat zařízení, které opravdu používám a které si zároveň můžu postupně přizpůsobovat.
A právě o téhle cestě bude tato série.
Co bude dál?
Tohle je teprve začátek. V dalších částech se chci postupně podívat na jednotlivé části projektu podrobněji.
Nejdřív se chci vrátit k samotnému firmwaru a jeho instalaci.
Ukážeme si, jak z T5S3 dostat použitelnou e-book čtečku, jak připravit microSD kartu a jak do zařízení dostat knihy i fonty s českou diakritikou.
Pak už můžeme jít hlouběji pod kapotu.
K bootování a recovery scénářům, které už reálně testujeme.
Ke zpracování EPUB a kvalitě textového layoutu.
A samozřejmě k dalšímu vývoji vlastního forku.









Sbírka fotek T5S3 E-paper-u
A nakonec snad i na to, jestli se nám podaří z relativně malé vývojové desky s ESP32-S3 vytvořit čtečku, kterou budu bez výhrad používat každý den.
Protože přesně tam bych se s tímhle projektem chtěl dostat.