Прошивка с открытым исходным кодом для электронных книг Xteink X4 и Xteink X3 на базе CrossPoint Reader v1.6.6.
BookPoint оптимизирован для комфортного ежедневного чтения, высокой стабильности на устройствах с ограниченным объемом оперативной памяти (ESP32-S3 / ESP32-C3) и чистоты архитектуры. Поддержка устаревшего формата FB2 исключена намеренно в пользу максимальной скорости парсинга EPUB, чистоты кода и отсутствия утечек памяти.
- Адаптивная область текста: полоса примечаний резервирует место под текст (около 60 px) только на тех страницах, где реально присутствуют сноски. На всех остальных страницах текст книги занимает 100% полезной высоты экрана вплоть до строки состояния, без пустых отступов.
- Поддержка книг без гиперссылок
[4]: распознавание текстовых сносок в книгах без тегов<a>(характерно для сетевых библиотек, самиздата и оцифровок). Номер сноски форматируется компактным верхним индексом, а определение автоматически подтягивается из конца главы или книги в нижнюю полосу. - Встроенные пояснения
[текст]: автоматическое сворачивание внутритекстовых примечаний в аккуратную компактную метку[*]с выносом пояснения в нижнюю полосу примечаний. - Настройка распознавания: пункт меню «Сноски [текст] и [4]» в настройках чтения позволяет гибко включать или отключать сканирование скобочных примечаний.
- Два режима работы:
- «Внизу страницы» — текст примечания отображается непосредственно под линией разделителя внизу текущей страницы.
- «Переход с возвратом» — классический переход к разделу сносок по клику с гарантированным возвратом на исходную страницу по кнопке Back или Power.
- Сохранение прогресса: при чтении сноски текущая позиция книги не сбивается — переход в режим сна, автовыключение или синхронизация KOReader никогда не переместят позицию чтения в раздел примечаний.
BookPoint включает несколько вариантов оформления главного экрана под разные предпочтения:
- Минимализм (4 тайла): лаконичный интерфейс без визуального шума — четыре крупные плитки («Книги», «Сейчас читаю», «Файлы», «Настройки»).
- Дашборд: информативный рабочий стол с фокусом на текущую книгу: крупная обложка, процент прогресса, прочитанные страницы, расчетное оставшееся время и общая статистика.
- Классические темы: сохранены проверенные варианты Classic, Lyra, Lyra 3 Covers и Rounded Raff.
- Умный учет времени: подсчет времени ведется посекундно с автоматической отсечкой пауз дольше 5 минут (время не накручивается, если ридер оставлен включенным). Сессии короче одной минуты фильтруются.
- Прогноз даты завершения книги: автоматический расчет темпа чтения (секунд на страницу) на основе скользящего окна активности за последние дни. В статистике книги отображается расчетная дата: «Закончите к: ДД.ММ.ГГГГ».
- Серия чтения (Reading Streak): подсчет непрерывной серии дней чтения («Серия: N дн.») с отображением рекорда и текущей активности.
- Трехстраничный экран аналитики:
- Книга: подробные метрики по текущему произведению (время, сессии, страницы, темп, оценка окончания, статус «Прочитано»).
- Устройство: суммарные показатели ридера за все время (общее время, сессии, прочитано книг, серии дней).
- Активность: визуальный 14-дневный график распределения нагрузки, статистика по дням недели и времени суток (утро, день, вечер, ночь).
- Надежность хранения: данные сохраняются в каталог
/.crosspoint/stats/на SD-карте в формате CSV (reading_stats.csv) с атомарной записью через.bak. Очистка кэша книг или обновление прошивки не затрагивают статистику. - Миграция с inkMOD: статистика из прошивки inkMOD автоматически подхватывается при первом запуске.
- Статистика: информативная заставка с обложкой читаемой книги, названием, автором, процентом прогресса, темпом чтения и оставшимся временем.
- Оверлей страницы: E-Ink экран сохраняет последнюю открытую страницу книги с аккуратным полупрозрачным бейджем спящего режима и системными часами.
- Календарь: заставка с календарем на текущий месяц, крупной датой и часами.
- Классические экраны: Темный, Светлый, Обложка книги, Своя заставка (
custom.bmpв корне SD), Пустой экран.
- Позиционирование: возможность размещения строки состояния у нижнего или верхнего края экрана.
- Скрытие строки: режим полного отключения строки состояния для максимального заполнения экрана текстом книги.
- Часы: варианты отображения времени Слева, Справа или По центру.
- Поддержка Xteink X4: программный RTC в сочетании с фоновой синхронизацией по NTP при подключении к Wi-Fi. Время корректно сохраняется при глубоком сне без расхода батареи.
- Формат StarDict: поддержка словарей StarDict из каталога
/dictionaries/на SD-карте с быстрым поиском слова прямо во время чтения. - Загрузка по Wi-Fi: встроенная загрузка русско-английского и англо-русского словарей WikDict через меню «Настройки → Система → Словари (скачать)».
- Встроенные шрифты: Noto Serif (размеры 12–18) и Noto Sans (включая компактный размер 8 для максимальной плотности текста).
- Пользовательские шрифты: загрузка любых TTF/OTF шрифтов через конвертацию в формат
.cpfontс поддержкой размеров от 10 до 24 pt. - Настройка полей: регулировка полей страницы от 0 px для полного использования диагонали экрана.
- Переносы слов: качественные бинарные словари переносов на базе алгоритмов Hypher.
- Автоотключение Wi-Fi: таймер автоматического отключения радиомодуля (по умолчанию 3 минуты) на экранах передачи файлов и OPDS для экономии заряда аккумулятора.
- Каталоги OPDS: преднастроенные каталоги Flibusta (основной домен и зеркало) и Project Gutenberg с автоматическим добавлением при запуске.
- Синхронизация KOReader: поддержка сервера синхронизации прогресса чтения KOReader Sync.
- Диагностический лог батареи: опциональная запись динамики разряда в
/.crosspoint/battery_log.csvпри каждом старте и переходе в режим сна.
| Характеристика | Xteink X4 | Xteink X3 |
|---|---|---|
| Микроконтроллер | ESP32-S3 / ESP32-C3 | ESP32-C3 |
| Дисплей | 4.26" E-Ink Carta, 800 × 480 | 3.52" E-Ink Carta |
| Часы (RTC) | Системный таймер + NTP (Wi-Fi) | Аппаратный чип RTC |
| Управление | 4 кнопки на нижней панели, 4 на боковой | 4 кнопки снизу, 4 сбоку, гироскоп |
| Поддерживаемые форматы | EPUB, TXT, XTC, XTCH | EPUB, TXT, XTC, XTCH |
| Таблица разделов | Стандартная CrossPoint (без риска окирпичивания) | Стандартная CrossPoint |
Прошивка устанавливается стандартным способом для устройств экосистемы CrossPoint:
-
Через Web-флешер по USB:
- Перейдите в веб-программатор crosspointreader.com/#flash-tools.
- Подключите устройство через кабель USB-C.
- Выберите файл
BookPoint_1.6.6_xteink_x4_x3.binи выполните прошивку.
-
Через SD-карту:
- Скопируйте файл прошивки на SD-карту и воспользуйтесь штатной функцией обновления.
-
Через esptool (для разработчиков):
esptool.py --chip esp32c3 write_flash 0x10000 BookPoint_1.6.6_xteink_x4_x3.bin
Актуальный бинарный файл сборки: BookPoint_1.6.6_xteink_x4_x3.bin (доступен в разделе Releases).
Внимание: не используйте пункт «Проверить обновления» в меню устройства, так как он загрузит оригинальный CrossPoint без доработок BookPoint.
Для сборки проекта требуются PlatformIO Core (CLI) и Python 3.10+.
# Клонирование репозитория вместе с субмодулями
git clone --recurse-submodules https://github.com/klanva/BookPoint.git
cd BookPoint
# Установка зависимостей
pip install -r requirements.txt
# Сборка под Windows (собирает единый бинарник для X4 и X3)
build.batБинарный файл прошивки после компиляции будет находиться по пути .pio/build/default/firmware.bin.
- Руководство пользователя (USER_GUIDE.md) — подробная инструкция по управлению, горячим клавишам и настройкам.
- Словари (docs/dictionary.md) — установка и форматы словарей StarDict.
- Шрифты с SD-карты (docs/sd-card-fonts.md) — руководство по конвертации шрифтов.
- Веб-интерфейс (docs/webserver.md) — передача файлов по Wi-Fi и WebDAV.
- Восстановление устройства (docs/fix-bricked-xteink.md) — инструкция по раскирпичиванию через программатор при аппаратных сбоях.
Проект распространяется под лицензией MIT, как и оригинальный CrossPoint Reader.
Благодарность авторам CrossPoint, FreeInk SDK и сообществу 4PDA за тестирование и обратную связь.