CrossPoint Fonts

Pre-built .cpfont font files for CrossPoint Reader, an open-source e-reader firmware for the Xteink X4 (ESP32-C3).

This repo hosts only release assets — the build tooling and font configuration live in the main firmware repository.

Installing fonts on your device

From the device (recommended)

  1. Go to Settings > System > Download Fonts
  2. Connect to WiFi when prompted
  3. Browse available fonts and select one to download
  4. The font appears immediately in Settings > Reader > Font Family

From a web browser

  1. Connect your CrossPoint reader to WiFi
  2. Open the device's web interface in your browser
  3. Go to the Fonts tab
  4. Upload .cpfont files from a release

Manual SD card copy

  1. Download .cpfont files from the latest release

  2. Create a font family folder on the SD card and copy the files:

    SD Card Root/
    └── fonts/
        └── Literata/
            ├── Literata_12.cpfont
            ├── Literata_14.cpfont
            ├── Literata_16.cpfont
            └── Literata_18.cpfont
  3. Insert the SD card and restart the device

Available fonts

Serif

FontDescription
LiterataScreen-optimized serif (Latin, Greek, Cyrillic)
SourceSerif4Adobe transitional serif (Latin, Greek, Cyrillic)
NotoSerifExtendedSerif (Latin, Greek, Cyrillic)
MerriweatherWarm serif for long-form reading (Latin, Cyrillic)
LoraCalligraphic serif for literary reading (Latin, Cyrillic)
GentiumBookPlusScholarly serif with wide Unicode coverage (Latin, Greek, Cyrillic, IPA)
IBMPlexSerifProfessional serif (Latin, Greek, Cyrillic)
BitterSlab serif designed for e-ink (Latin, Cyrillic)
AlegreyaCalligraphic serif/display (Latin, Greek, Cyrillic)

Sans-serif

FontDescription
NotoSansExtendedSans-serif (Latin, Greek, Cyrillic, Georgian, Armenian, Ethiopic)
InterModern sans-serif (Latin, Greek, Cyrillic)
SourceSans3Adobe humanist sans-serif (Latin, Greek, Cyrillic)
IBMPlexSansIBM corporate sans-serif (Latin, Greek, Cyrillic)

Monospace

FontDescription
IBMPlexMonoMonospace for code and technical reading (Latin, Greek, Cyrillic)
SourceCodeProAdobe monospace with excellent hinting (Latin)

Accessibility

FontDescription
AtkinsonHyperlegibleNextAccessibility font for low vision (Latin)
LexicaUltralegibleAccessibility font for low vision / dyslexia (Latin)

All fonts include regular, bold, italic, and bold-italic styles at 12, 14, 16, and 18pt.

Converting custom fonts

See the SD Card Fonts documentation in the main repo for instructions on converting your own TrueType/OpenType fonts to .cpfont format.

How releases are built

Releases are published automatically by a CI workflow in the main firmware repo. The pipeline:

  1. Reads font families from a declarative YAML config
  2. Downloads source TTF/OTF files from upstream font repositories
  3. Converts them to .cpfont binary format using fontconvert_sdcard.py
  4. Generates a fonts.json manifest for the device's download UI
  5. Publishes everything as a GitHub Release on this repo

License

The .cpfont files distributed here are converted from open-source fonts under their original licenses (primarily SIL Open Font License and Apache License 2.0). See each font's upstream repository for specific license terms.

This repository and its automation are part of the CrossPoint Reader project, licensed under the MIT License.