Skip to content

Repository files navigation

BookPoint

Прошивка с открытым исходным кодом для электронных книг Xteink X4 и Xteink X3 на базе CrossPoint Reader.

BookPoint оптимизирован для комфортного ежедневного чтения, высокой стабильности на устройствах с ограниченным объемом оперативной памяти (ESP32-S3 / ESP32-C3) и чистоты архитектуры. Поддержка устаревшего формата FB2 исключена намеренно в пользу максимальной скорости парсинга EPUB, чистоты кода и отсутствия утечек памяти.


Ключевые возможности

Новый интерфейс меню чтения

  • Карточный дизайн: структурированное меню с четкими рамками и скругленными углами для каждого пункта.
  • Информационная карточка вверху: отображение названия книги, автора, текущей страницы, общего числа страниц, прогресс-бара и процентов.
  • Быстрые переключатели: включение/выключение ночного режима (инверсии) и подсветки экрана прямо из меню без лишних подменю.
  • Системные настройки: прямой переход в системные настройки ридера из читалки с автоматическим сохранением позиции и возвратом в меню.
  • Аппаратное управление: полная навигация физическими кнопками (Up/Down для выбора, Confirm для применения, Back для выхода).

Динамические сноски внизу экрана

  • Адаптивная область текста: полоса примечаний резервирует место под текст (около 60 px) только на тех страницах, где реально присутствуют сноски. На всех остальных страницах текст книги занимает 100% полезной высоты экрана вплоть до строки состояния, без пустых отступов.
  • Поддержка книг без гиперссылок [4]: распознавание текстовых сносок в книгах без тегов <a> (характерно для сетевых библиотек, самиздата и оцифровок). Номер сноски форматируется компактным верхним индексом, а определение автоматически подтягивается из конца главы или книги в нижнюю полосу.
  • Встроенные пояснения [текст]: автоматическое сворачивание внутритекстовых примечаний в аккуратную компактную метку [*] с выносом пояснения в нижнюю полосу примечаний.
  • Настройка распознавания: пункт меню «Сноски [текст] и [4]» в настройках чтения позволяет гибко включать или отключать сканирование скобочных примечаний.
  • Два режима работы:
    • «Внизу страницы» — текст примечания отображается непосредственно под линией разделителя внизу текущей страницы.
    • «Переход с возвратом» — классический переход к разделу сносок по клику с гарантированным возвратом на исходную страницу по кнопке Back или Power.
  • Сохранение прогресса: при чтении сноски текущая позиция книги не сбивается — переход в режим сна, автовыключение или синхронизация KOReader никогда не переместят позицию чтения в раздел примечаний.

Темы главного экрана

BookPoint включает несколько вариантов оформления главного экрана под разные предпочтения:

  • Минимализм (4 тайла): лаконичный интерфейс без визуального шума — четыре крупные плитки («Книги», «Сейчас читаю», «Файлы», «Настройки»).
  • Дашборд: информативный рабочий стол с фокусом на текущую книгу: крупная обложка, процент прогресса, прочитанные страницы, расчетное оставшееся время и общая статистика.
  • Классические темы: сохранены проверенные варианты Classic, Lyra, Lyra 3 Covers и Rounded Raff.

Цитаты и вырезки Kindle (My Clippings.txt)

  • Совместимость с Kindle: чтение и экспорт заметок и цитат в стандартном формате My Clippings.txt на SD-карте.
  • Просмотр цитат: список вырезок с группировкой по главам, страницам и датам.
  • Навигация: поддержка как фронтальных кнопок навигации, так и боковых клавиш перелистывания (PageBack / PageForward).

Аналитика и статистика чтения

  • Умный учет времени: подсчет времени ведется посекундно с автоматической отсечкой пауз дольше 5 минут (время не накручивается, если ридер оставлен включенным). Сессии короче одной минуты фильтруются.
  • Прогноз даты завершения книги: автоматический расчет темпа чтения (секунд на страницу) на основе скользящего окна активности за последние дни. В статистике книги отображается расчетная дата: «Закончите к: ДД.ММ.ГГГГ».
  • Серия чтения (Reading Streak): подсчет непрерывной серии дней чтения («Серия: N дн.») с отображением рекорда и текущей активности.
  • Трехстраничный дашборд аналитики:
    • Книга: подробные метрики по текущему произведению (время, сессии, страницы, темп, оценка окончания, статус «Прочитано»).
    • Ридер: суммарные показатели устройства за все время (общее время, сессии, прочитано книг, серии дней, экспорт CSV).
    • Активность: визуальный 14-дневный график распределения нагрузки со сплошным акцентом текущего дня, статистика по дням недели и времени суток.
    • Управление вкладками: циклическое переключение вкладок кнопками влево/вправо/вверх/вниз и боковыми клавишами.
  • Надежность хранения: данные сохраняются в каталог /.crosspoint/stats/ на SD-карте в формате CSV (reading_stats.csv) с атомарной записью через .bak. Очистка кэша книг или обновление прошивки не затрагивают статистику.
  • Миграция с предыдущей прошивки: статистика из предыдущей прошивки автоматически подхватывается при первом запуске.

Диагностика и файловый менеджер

  • Аппаратная диагностика: экран подробных сведений об устройстве (ревизия ESP32, рабочая частота, доступная память PSRAM/DRAM, напряжение аккумулятора, тип и ревизия контроллера дисплея E-Ink, статус SD-карты).
  • Сортировка файлов: переключение порядка сортировки в проводнике (по имени, дате изменения или размеру).
  • Адаптация под физические кнопки: списки и меню оптимизированы для кнопочных электронных книг без сенсорного экрана.

Расширенные экраны сна (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.8_xteink_x4_x3.bin и выполните прошивку.
  2. Через SD-карту:

    • Скопируйте файл прошивки на SD-карту и воспользуйтесь штатной функцией обновления.
  3. Через esptool (для разработчиков):

    esptool.py --chip esp32c3 write_flash 0x10000 BookPoint_1.6.9.2_xteink_x4_x3.bin

Актуальный бинарный файл сборки: BookPoint_1.6.9.2_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