CrossPoint Reader is open-source firmware that replaces the stock software on Xteink X3 and X4 e-ink readers. It handles EPUB rendering, wireless transfer, OPDS, and ships 24 UI languages with RTL support — but it does not deal with CJK scripts. This fork adds CJK reading on top of it.
What I added
- Vertical text (縦書き) — Japanese books read in their intended direction. Vertical typesetting is not a matter of rotating glyphs; each character class needs its own treatment
- Bracket rotation and padding — corner brackets like 「」『』 must be offset rather than rotated, and opening and closing brackets need different padding
- Tate-chu-yoko (縦中横) — one- and two-digit numbers stay horizontal inside vertical text; three digits and up go back to stacking upright
- CJK font rendering — a built-in CJK font, SD card
.epdfontsupport, and fallback lookup for glyphs a font is missing - Lazy loading for large fonts — CJK fonts are far larger than Latin ones, and the ESP32C3 does not have memory to spare
- Korean UI — interface translation and font fallback
- Word lookup and vocabulary — select a range in the text to look up a word, then review what you collected as flashcards
- Dictionary conversion tools — scripts that turn JMdict and the Japanese Wiktionary into a format the device can read
Why I built it
An e-ink reader is unusable if the firmware does not support your language, however good the hardware is. Fixing the firmware was faster than replacing the device.
I built on top of the original rather than rewriting it. Upstream keeps moving, and I need to be able to follow — this fork has merged upstream several times since.