На мой взгляд, оригинальная прошивка не очень поддается изменениям. Я модифицировал скетч и разбил его на несколько файлов, что должно (надеюсь) упростить мне задачу дописывания прошивки под себя. Плюс, мне было интересно опробовать среду platformio.
- Код переструктурирован, отдельные режимы работы читалки будут находиться в своих файлах исходного кода.
- Самое заметное: в исходной прошивке был ньюанс с переносами текста на новую строку. Я добавил костыль, который, вроде бы, теперь позволяет корректно работать с текстами, в которых есть переносы строк (\n)
- Кроме того, теперь прокрутка текста обратно работает адекватно. В оригинальной прошивке же текст просто откручивался на 500 символов назад вне зависимости от того, сколько было символов на текущей странице в действительности.
Добавить режим часовВыбор режима wifi (sta, ap) хотелось бы осуществлять в момент перехода в режим загрузки файлов, булевый флажок в EEPROM удалить- Сделать возможным просмотр картинок из загруженных файлов
- Добавить игр (?)
- ...
В папке с проектом запустить команду:
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 После изменения этой функции нужно вновь перепрошить читалку.
Естественно, хочу выразить благодарность пользователю Nich1con (https://github.com/Nich1con) за то, что он поделился проектом данной электронной читалки и кодом её прошивки.
