Skip to content

Repository files navigation

BookPoint

Прошивка с открытым исходным кодом для электронных книг 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 автоматически подхватывается при первом запуске.

Расширенные экраны сна (Sleep Screens)

  • Статистика: информативная заставка с обложкой читаемой книги, названием, автором, процентом прогресса, темпом чтения и оставшимся временем.
  • Оверлей страницы: 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:

  1. Через Web-флешер по USB:

    • Перейдите в веб-программатор crosspointreader.com/#flash-tools.
    • Подключите устройство через кабель USB-C.
    • Выберите файл BookPoint_1.6.6_xteink_x4_x3.bin и выполните прошивку.
  2. Через SD-карту:

    • Скопируйте файл прошивки на SD-карту и воспользуйтесь штатной функцией обновления.
  3. Через 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.


Документация


Лицензия

Проект распространяется под лицензией MIT, как и оригинальный CrossPoint Reader.
Благодарность авторам CrossPoint, FreeInk SDK и сообществу 4PDA за тестирование и обратную связь.

About

Прошивка для Xteink X4/X3 на базе CrossPoint Reader: статистика чтения, сноски внизу страницы как в бумажной книге, экономия батареи, программные часы

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages