Skip to content

LogExE/microReader_improved

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

microReader firmware

2ebf9501-8533-4f2d-965f-56a87a58b872

Зачем я переделываю прошивку

На мой взгляд, оригинальная прошивка не очень поддается изменениям. Я модифицировал скетч и разбил его на несколько файлов, что должно (надеюсь) упростить мне задачу дописывания прошивки под себя. Плюс, мне было интересно опробовать среду platformio.

Отличия от исходной прошивки

  • Код переструктурирован, отдельные режимы работы читалки будут находиться в своих файлах исходного кода.
  • Самое заметное: в исходной прошивке был ньюанс с переносами текста на новую строку. Я добавил костыль, который, вроде бы, теперь позволяет корректно работать с текстами, в которых есть переносы строк (\n)
  • Кроме того, теперь прокрутка текста обратно работает адекватно. В оригинальной прошивке же текст просто откручивался на 500 символов назад вне зависимости от того, сколько было символов на текущей странице в действительности.

Планы на будущее

  1. Добавить режим часов
  2. Выбор режима wifi (sta, ap) хотелось бы осуществлять в момент перехода в режим загрузки файлов, булевый флажок в EEPROM удалить
  3. Сделать возможным просмотр картинок из загруженных файлов
  4. Добавить игр (?)
  5. ...

Как собрать прошивку

В папке с проектом запустить команду:

pio run

И затем по пути .pio/build/nodemcuv2/ найти файлик firmware.bin. Данный файл можно прошить по OTA прямо из меню WiFi читалки.

Либо же можно прошить все по припаянным проводам через преобразователь USB-UART с командой:

pio run -t upload -b nodemcuv2

Важно

Теперь, если оставить все как есть, в режиме чтения все текстовые файлы будут отображаться в одну строчку. Это происходит из-за недочета в библиотеке GyverOLED. Для его исправления нужно перейти по пути .pio/libdeps/nodemcuv2/GyverOLED/src/ и в файле GyverOLED.h вручную изменить функцию isEnd:

...
//было
bool isEnd() { return (_y > _maxRow); }
...

...
//нужно
bool isEnd() { return ((_y >> 3) > _maxRow); }
...

Либо, еще удобнее, можно накатить патч утилитой patch:

patch .pio/libdeps/nodemcuv2/GyverOLED/src/GyverOLED.h < patches/patch-isEnd.patch 

После изменения этой функции нужно вновь перепрошить читалку.

Credits

Естественно, хочу выразить благодарность пользователю Nich1con (https://github.com/Nich1con) за то, что он поделился проектом данной электронной читалки и кодом её прошивки.

About

переделка прошивки читалки microReader (https://github.com/Nich1con/microReader)

Resources

Stars

Watchers

Forks

Packages

No packages published