Műhely · Saját rendszerek

A firmware, amiről az AI le akart beszélni

Egy bankkártya méretű e-olvasóra saját firmware-ág került a nyílt forrású CrossPoint alapján, és egy felhős híd köti a Notionhöz és a Claude-hoz. Tizenkét nap alatt negyvenegyszer indult a felhőben a fordítás. Az első javaslat még az volt, hogy ne legyen saját ág.

Írta
Karner Kristóf — önálló fejlesztő, Budapest
Frissítve
2026. október 26.
„mindent, amit distraction-free módon akarok olvasni, azt az Xteinkről olvassam” Karner Kristóf, 2026. október 8.

Az Xteink X3 egy 3,7 hüvelykes e-olvasó, akkora, mint egy bankkártya. A gyári szoftvere helyett a CrossPoint fut rajta: egy MIT-licencű, nyílt forrású firmware (a készülék saját szoftvere), amit egy közösség fejleszt az Xteink olvasóira.

2026. október 8-án reggel azt kértem a Claude Code-tól, hogy építsünk rá. Az első válasza óvatos volt: firmware-ből „legfeljebb egy funkciót” javasolt, azt is inkább az eredeti projektnek beküldött javaslatként, nem saját ágként. Aznap mégis öt változatot fordítottunk, és ebből három sikerült. Október 19-ig a saját ágon 48 commit gyűlt össze, negyvenegyszer indult a fordítás, és reggelente egy felhős feldolgozó rakta össze, mit olvassak.

Az óvatosságnak volt oka. A CrossPoint szándékosan szűk projekt: az LWN 2026. augusztusi cikke szerint az RSS, a PDF és az interaktív alkalmazások kívül esnek a hatókörén, főleg az akkumulátor miatt. Amit én akartam — a naptáram, a jegyzeteim, egy felhős kapcsolat —, az pont az, amit a projekt kihagy. Ezért lett saját ág (fork), a CrossPoint 1.6.5-ös kiadásából indítva, kk néven.

Amit most csinál

Az olvasnivalómat a naptáramból rakja össze. A Notion-naptáramban tervezem, mit olvasok. Amelyik tétel nincs kipipálva, abból fejezet lesz egy e-könyvben, a naptár sorrendjében, és a könyv újraépül, ha a naptár változott. Ha egy tétel minden fejezetét végigolvastam, és megvan a tervezett idő legalább 30%-a, a tétel magától kipipálódik, a mért percek pedig bekerülnek a naptárba. A 30% az átlapozás ellen van.

Reggelre frissül. A készülék magától felébred, letölti a nap lapszámát, egy rövid könyvet a teendőkkel, aztán visszaalszik. Az alvóképernyőn a naptáram legrégebbi lezáratlan tétele áll, dátum nélkül, nagy, éles betűvel.

Másnap visszaadja, amit olvastam. Ha egy könyvet egy korábbi napon hagytam abba, belépéskor Claude összefoglalója vár arról, amit legutóbb ténylegesen olvastam: ez a Visszatekintő. Csak azokból az oldalakból dolgozik, amelyek legalább nyolc másodpercig a kijelzőn voltak. A kikeresett szavak félkövéren jönnek vissza benne, és ha egy szót újra kikeresek, újra visszajön. A szabályom szerint „a recapből csak úgy lehessen kilépni, ha végiglapoztam”: a könyvbe csak rajta át jutok be, a Vissza gomb pedig az egész könyvből kilép, és a Visszatekintő legközelebb újra elém kerül.

Megmagyarázza a szót. Ha egy szó nincs a szótárban, egy gombnyomásra Claude magyarázza el — magyar könyvnél a jegyzeteim ismeretében —, egy másikra a Wikipédia. A kérdést nem gépelem be, mert e-inken gépelni kínszenvedés: kijelölök egy bekezdést, és három kész kérdés közül választok.

Naponta legfeljebb tíz percet angolozok rajta. Új hétköznapi szavak, amerikai kiejtéssel, magyar betűkkel leírva — a water nálam UÁ-dör. A témák a saját film- és zenei jegyzeteimből jönnek. A szint a válaszaimat követi, nem a naptárt.

A magyar regényeimet cirill betűkkel is olvashatom, a szavak negyedétől az egészéig. Oroszul nem tanulok: a betűket akarom tudni, és tetszik, ahogy a lapon kinéz.

A statisztikája nem szépít. Egy oldal egy alkalommal egyszer számít, a visszalapozás ideje ahhoz az oldalhoz adódik, a mérés előtt elkezdett könyvnél pedig ki van írva, hogy csak egy része mérve. Ez onnan jött, hogy egy korábban kezdett könyvre három órát mutatott, és szóltam: „a Murakamit nem 3 óra volt elolvasni”.

És frissíti magát. Az új firmware elalváskor magától felkerül, próbaidővel: ha a próbaidő alatt háromszor összeomlik, vagy ötször rosszul szinkronizál, visszaáll a régire. Ez egyetlen kérdésből lett: „azt nem lehetne megoldani, hogy nekem semmit ne kelljen csinálnom manuálisan ahhoz, hogy pusholni tudjál ilyen frissítéscsomagokat?”

Buta készülék, okos híd

A készülék nyugodt maradt: nincs rajta értesítés, hírfolyam és böngésző. Minden okosság egy kis felhős programban lakik, egy Cloudflare Workerben, az ingyenes csomagon, bankkártya nélkül. Ez a híd beszél a Notionnel, a Claude-dal és a Letterboxddal, így a szolgáltatások kulcsai nincsenek a készüléken. A könyvek, a firmware és az olvasási napló egy postaládán át jár, aláírva; ami személyes, az titkosítva is. Claude egyik első javaslata volt, hogy a tartalom lezárt adagokban jöjjön, mint egy újság.

Buta készülék, okos híd Az e-olvasó a Wikipédián kívül csak a felhős híddal beszél, egy postaládán át. A híd kapcsolódik a Notionhöz, a Claude-hoz, a Letterboxdhoz és a felhős feldolgozóhoz; a szolgáltatások kulcsai nincsenek a készüléken. e-olvasó saját firmware: kk felhős híd Cloudflare Worker Notion naptár és jegyzetek Claude magyaráz, összefoglal Letterboxd a megnézett filmek felhős feldolgozó könyvek, lapszám posta a készülék a Wikipédián kívül csak a híddal beszél
  • e-olvasó saját firmware: kk — a Wikipédián kívül csak a híddal beszél, egy postaládán át
  • felhős híd Cloudflare Worker — ő beszél a többiekkel, a készülék helyett
  • Notion naptár és jegyzetek: innen jönnek a könyvek, ide megy vissza a pipa
  • Claude magyaráz, összefoglal
  • Letterboxd a megnézett filmek: amit naplózok, az a listámon is kipipálódik
  • felhős feldolgozó könyvek, lapszám: a GitHub felhőjében épülnek

a készülék a Wikipédián kívül csak a híddal beszél

A könyveket egy felhős feldolgozó építi a GitHub felhőjében, és a firmware is ott fordul, mert a helyi fordítókészlet közel kilenc gigabájtot foglalt a szinte tele lemezen.

Ami elsőre nem működött

Az ébresztés, ami nem ébresztett. A reggeli ébresztést október 9-én építettük be, és akkumulátorról egyszer sem működött. Az X3 elalváskor egy vezérlőlábbal (GPIO-lábbal) lekapcsolja a saját akkumulátorát. Az első javítás azt a lábat próbálta bekapcsolva tartani, de a CrossPoint alatti közösségi hardverréteg az SD-kártya tápjának hitte, és elalvás előtt újra lehúzta. A hibát az árulta el, hogy a híd naplójából hiányoztak a reggeli szinkron sorai. A javítás a kk.32-ben jött, és október 19-én reggel bizonyosodott be, hogy működik. A hiányzó naplósor is adat.

Telepítve, de nem fut. Ugyanaznap derült ki, hogy az X3 mélyalvásból ébredve mindig azt a változatot indítja, amelyik utoljára futott. A napló szerint feltelepült a kk.38, közben a kk.35 futott tovább. A kk.39 óta egy friss változat egy csendes újraindítással el is indul. Beágyazott eszközön a „telepítve” nem jelenti, hogy fut: a készülék saját indulási naplója dönt.

A pipa, ami sosem működött. A Letterboxd-szinkron az indulástól kezdve egyszer sem pipált ki semmit, és ez semmilyen hibát nem okozott. A valódi hírcsatorna az azonosító címkéjét egy plusz tulajdonsággal írja (<guid isPermaLink="false">), a feldolgozó viszont csak a csupasz alakot ismerte. A teszt egyszerűsített mintán futott, ezért zöld volt. Azóta a tesztadat a valódi adat formáját követi.

A kártya, ami nem fért ki. Az angol szókártyák első változataiban a betű akkora volt, hogy nem fért ki a képernyőre. Azóta minden új képernyő előbb a Macen készül el, a készülék valódi betűivel, mindkét tájolásban, és csak utána kerül fel.

A tanfolyam, ami magától haladt. A cirill tanfolyam első változata a saját bevallásomra épült, egy „Tudtam” gombra, és továbblépett akkor is, ha egy leckére két külön napon ránéztem. A harmadik leckéig jutott, miközben én csak nézegettem — „még nem is foglalkoztam vele valójában, csak megnéztem”. Azóta a haladást csak egy kétválaszos próba viszi előre, önértékelés nélkül.

Amiben én döntöttem

AI-val építettem. Én döntöttem el, mit kell tennie, és hogyan ellenőrzöm — és ez többször nem az volt, amit az AI javasolt. A főmenühöz Claude egy sötét, filmes tervet ajánlott, én a Zune és a Frutiger Metro világát választottam. A tárhelyhez az R2-t javasolta, de az bankkártyát kért, ezért a kártya nélküli KV-tár maradt. Az elválasztást (a szavak sor végi kettévágását) legalább hétszer ajánlotta, a készüléken kikapcsolva maradt.

Október 19-én délelőtt Claude egyhetes funkciószünetet javasolt, hogy az idő a vállalkozásra menjen. Aznap még két firmware-változat készült.

Amit csak én tudtam megtenni: létrehozni a fiókokat, beírni a titkos kulcsokat, mert azokat az AI nem kezeli, a korai változatokat feltenni a készülékre, és a készüléken kipróbálni mindent. A hardver meglepetései — a gombok bekötése, az akkumulátort tartó láb, az indítóprogram — gépi teszten nem látszanak. A munka nagyobbik része ez volt: megmondani, mi nem jó.

Amire figyelni kell

A híd mind a hármat érinti, amit Simon Willison halálos hármasnak nevez: privát adatot (a naptáramat, a jegyzeteimet), idegen tartalmat (könyveket és weboldalakat) és kifelé menő kapcsolatot (a Claude-hívásokat). Ha mind a három megvan, egy rosszindulatú szöveg elvileg kiszivárogtathatja az adatot.

Ami ezt nálam korlátozza: a hídnak napi hívásplafonja van, a Claude-kulcsnak havi költségkerete, a Visszatekintőhöz feltöltött szöveg a feldolgozás után törlődik, és a szolgáltatások kulcsai nincsenek a készüléken. A jegyzeteim egy része viszont kontextusként a Claude-hoz kerül, amikor egy bekezdést magyaráztatok vele, vagy egy magyar könyvben kérdezek rá egy szóra. Ezt tudva döntöttem így, és ezt tartom a rendszer legérzékenyebb pontjának.

Ami másnak is hasznos lehet

A híd mintája bármely CrossPoint-olvasóhoz átvihető: ingyenes felhős program, aláírt szinkron titkosított személyes tartalommal, folytatható letöltés, és magától települő firmware próbaidővel. Ehhez a személyes részeket ki kellene szedni belőle, beállítófájl kellene, angol leírás, felhasználónként saját kulcs és egy biztonsági átnézés.

A naptárból épülő e-könyv bárkinek jó, aki naptárban tervezi, mit olvas: állandó fejezetazonosítókkal, magától pipálva, átlapozás elleni küszöbbel. A Visszatekintő pedig annak, aki könyvből tanul nyelvet: másnap a ténylegesen olvasott szövegből, a kikeresett szavakkal, kvíz nélkül.

Néhány rész az eredeti projektbe is visszamehetne, külön beolvasztási kérelemként: a hely megtartása, amikor egy könyv új változata érkezik, a statisztika szabályai, a mohó sortörés (ami csak ott tör sort, ahol a következő szó már nem fér ki), és a kék zajos képraszter (szabálytalan pontminta a szürke árnyalatokhoz). A CrossPoint elfogadja az LLM-mel készült hozzájárulást, ha jelölik.

A munka mennyisége, a 2026. október 8. és 19. közötti szakaszra: 48 commit a firmware-ágon, 41 felhős fordítás, ebből 36 sikeres; a hídon 47, a feldolgozón 35 commit. A Claude Code kb. 28 órát dolgozott a rendszeren, 10 napon. A többi rendszerem és a köztük futó kapcsolatok a Saját rendszerek térképén vannak.

Kérdések a témáról

Működik ez más e-olvasón is?

A CrossPoint az Xteink X3-on és X4-en fut. Az én ágam az X3-ra van szabva, a gyári indítóprogramjára és az akkumulátort tartó vezérlőlábára, ezért máshol nem garantált. A híd mintája viszont bármely CrossPoint-olvasóhoz átvihető.

Mennyibe kerül a fenntartása?

A híd a Cloudflare ingyenes csomagján fut, bankkártya nélkül. Pénzbe a Claude-hívások kerülnek: a 2026. október 21-ig tartó hét napban 33 hívás ment el, 7,55 dollárért. A hídnak napi hívásplafonja van, a Claude-kulcsnak havi költségkerete.

Mi történik az olvasott szöveggel?

A Visszatekintőhöz a készülék feltölti a legalább nyolc másodpercig látott oldalak szövegét, titkosítva. Claude összefoglalja, utána a szöveg törlődik. A jegyzeteim egy része kontextusként a Claude-hoz kerül, amikor egy bekezdést magyaráztatok vele, vagy egy magyar könyvben kérdezek rá egy szóra; ezt tudva döntöttem így.

Kell hozzá programozni tudni?

AI-val építettem. A munka nagyobbik része az volt, hogy pontosan megmondjam, mit akarok, és a készüléken kipróbáljam: kifér-e a betű, reggel tényleg frissült-e a kép, azt mutatja-e a statisztika, ami történt. A hardver meglepetései csak a készüléken derültek ki.

← Vissza a Saját rendszerekhez