CrossPoint supports loading additional fonts from the SD card, including fonts with extended Unicode coverage (CJK, Cyrillic, Greek, etc.).
There are three ways to install fonts:
- 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
- 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
-
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
The current list of pre-built fonts is maintained in the crosspoint-fonts repository.
To convert your own TrueType/OpenType fonts:
pip install freetype-py fonttools
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/
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/
| 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
--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.