v1.0.0 — Reading Companion
A reading companion for CrossPoint: a small pixel character that lives on your home screen and whose mood depends on how much you actually read.
Built on CrossPoint 1.5.0 (develop).
⚠️ Read this first
Developed and tested only on the Xteink X3.
| Device | Status |
|---|---|
| Xteink X3 | ✅ Tested |
| Xteink X4 | |
| Xteink X4 Pro | ❌ Do not flash this binary. X4 Pro is ESP32-S3, this is ESP32-C3. It will not boot. Build the x4pro environment from source instead |
Back up your firmware first. Two minutes, and it means you can return to exactly your current setup rather than a clean reinstall:
esptool --chip esp32c3 --port /dev/cu.usbmodemXXXX --baud 921600 read-flash 0 0x1000000 crosspoint-backup.bin
Restore with write-flash 0 crosspoint-backup.bin.
Install
- Download
firmware.binbelow - Connect by USB-C and wake the device
- Go to crosspointreader.com/#flash-tools
- Pick your device, choose Custom .bin, upload
Or: esptool --chip esp32c3 --port /dev/cu.usbmodemXXXX --baud 921600 write-flash 0x10000 firmware.bin
Books and reading progress live on the SD card and are not touched.
Turning it on
Settings → Companion, then pick a Character. Off by default; nothing about the reader changes until you enable it.
What's in it
- Five characters — a fox, a ghost, a robot, a moth, and a sprout
- Four moods driven by reading time and days skipped
- 180 written lines, a different one each time you land on Home
- A streak counter and a nudge showing how far you are from the top mood
- The character paces around as you move the menu cursor
Time is only credited while pages are actually turning, so a reader left open on one page earns nothing. Day rollover uses your local timezone so a late-evening session doesn't break a streak.
Costs about 16 KB of flash and 80 bytes of RAM when enabled.
Also fixed
A latent bug in CrossPoint's settings screen: enum settings whose options are runtime strings never opened their picker and then took a modulo by zero. This affects SD-card font selection too.
MIT licensed, same as CrossPoint. Not affiliated with Xteink, CrossPoint, or Pierce Brown.