## Summary * **What is the goal of this PR?** Update project documentation to match the current master implementation for cache formats, i18n, file transfer/web server workflows, SD-card fonts, and root user-facing docs. * **What changes are included?** Refreshes `book.bin`/`section.bin` docs for v6/v25, updates File Transfer/Calibre/WebDAV/API docs, documents 24 UI languages and JSON language persistence, updates root README/USER_GUIDE cache and network details, and syncs the tracked CLAUDE skill doc cache-version notes. ## Additional Context * Docs-only change. Verified with `git diff --check origin/master..HEAD` and stale-reference greps for old cache versions, removed i18n APIs, old WiFi screen wording, and raw `Serial.printf` examples. No firmware build was run. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**NO**_
4.5 KiB
SD Card Fonts
CrossPoint supports loading additional fonts from the SD card, including fonts with extended Unicode coverage (CJK, Cyrillic, Greek, etc.).
Installing Fonts
There are three ways to install fonts:
Option 1: Download from device (recommended)
- Connect your CrossPoint reader to Wi-Fi
- Go to Settings > System > Manage Fonts
- Browse available font families and tap to download
- Downloaded fonts appear immediately in Settings > Reader > Font Family
Option 2: Upload via web browser
- Start File Transfer and connect through Join Network or Create Hotspot
- Open the web interface URL shown on the reader
- Navigate to the Fonts tab
- Upload
.cpfontfiles using the upload form
Option 3: Manual SD card copy
-
Download font files from the crosspoint-fonts repository
-
Copy font family folders to one of two locations on your SD card:
/.fonts/— hidden directory (preferred; keeps the SD root tidy when mounted on a desktop)/fonts/— visible directory (use this if your OS hides dot-files and you'd rather see the folder in your file manager)
Both roots are always scanned at boot and the results are merged: a family installed in
/fonts/shows up even when/.fonts/also exists, and vice versa. The two roots only collide if the same family name appears in both — in that case the copy in/.fonts/wins and the duplicate in/fonts/is ignored.SD Card Root/ ├── .fonts/ ← Hidden root (preferred) │ └── Literata/ │ ├── Literata_12.cpfont │ ├── Literata_14.cpfont │ ├── Literata_16.cpfont │ └── Literata_18.cpfont └── fonts/ ← Visible root (equally valid) └── Merriweather/ ├── Merriweather_12.cpfont └── ... -
Insert the SD card and power on your CrossPoint reader
Available Pre-Built Fonts
The current list of pre-built fonts is maintained in the crosspoint-fonts repository.
Converting Custom Fonts
To convert your own TrueType/OpenType fonts:
Prerequisites
pip install freetype-py fonttools
Single font (one style)
python3 lib/EpdFont/scripts/fontconvert_sdcard.py \
MyFont-Regular.ttf \
--intervals latin-ext \
--sizes 12,14,16,18 \
--style regular \
--name MyFont \
--output-dir ./MyFont/
Multi-style font
python3 lib/EpdFont/scripts/fontconvert_sdcard.py \
--regular MyFont-Regular.ttf \
--bold MyFont-Bold.ttf \
--italic MyFont-Italic.ttf \
--bolditalic MyFont-BoldItalic.ttf \
--intervals latin-ext \
--sizes 12,14,16,18 \
--name MyFont \
--output-dir ./MyFont/
Available Unicode interval presets
| Preset | Coverage |
|---|---|
ascii |
U+0020–U+007E (Basic Latin) |
latin1 |
U+0080–U+00FF (Latin-1 Supplement) |
latin-ext |
European languages (Latin + Extended-A/B + punctuation + ligatures) |
greek |
Greek + Extended Greek |
cyrillic |
Cyrillic + Supplement |
hebrew |
Hebrew + Alphabetic Presentation Forms |
georgian |
Georgian + Georgian Supplement |
armenian |
Armenian |
ethiopic |
Ethiopic + Extended |
vietnamese |
Vietnamese subset (ơ/ư and combining marks) |
punctuation |
General punctuation (U+2000–U+206F) |
cjk |
CJK Unified Ideographs + Hiragana + Katakana + Fullwidth |
hangul |
Korean Hangul syllables + Jamo + Compatibility Jamo |
cherokee |
Cherokee (historic + supplement block) |
tifinagh |
Tifinagh |
symbols |
Math, currency, arrows, box-drawing, misc symbols, dingbats |
reading |
Literary fiction coverage: Latin, Greek, Cyrillic, math/symbol blocks, supplemental punctuation, and CJK quote marks |
builtin |
Matches the firmware's built-in font conversion intervals |
Combine presets with commas: --intervals latin-ext,greek,cyrillic
You can also specify arbitrary Unicode ranges directly:
--intervals latin-ext,(0x2100-0x214F)
To list all presets with codepoint counts:
python3 lib/EpdFont/scripts/fontconvert_sdcard.py --list-presets
Additional options
--force-autohint — force FreeType's auto-hinter instead of the font's native hinting (useful when a font's built-in hints produce poor results at small sizes).
Install custom fonts via the web interface or manual SD card copy.