Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
Своя прошивка для Ulanzi TC001
2023-02-20 18:52 | Автор: jekader | Filed under: FedoraMD
Пришло время обновить настольные часы в спальне. Основные требования - большой шрифт и точный ход. С нуля делать не имело смысла, поэтому были куплены Ulanzi TC001:
Устройство выполнено качественно. В наличии - цветная светодиодная панель 8x32, батарейка, три кнопки, датчик освещённости и пищалка. Это, собственно, не совсем часы, так как умеют из коробки отображать множество видов информации (погоду на Луне, число подписчиков на ютубе, и т.д, какие-то анимации). Функционал можно расширить, подключив устройство к софту по имени AWTRIX, позволяющему выводить на панель ещё больше всяких свистоперделок. Поигравшись вдоволь, я решил что мне всё же нужны лишь точные часы, и держать для этого Java приложение на отдельном компьютере - перебор. Поэтому решил изучить вопрос изменения прошивки, тем более в софте со всех сторон торчали уши платформы ESP32. Ещё хотелось иметь контроль над софтом, так как ботнет у себя в спальне иметь в планы не входило, а с китайскими прошивками такое часто бывает.
Изначальный поиск по гитхабу особо ничего не дал, поэтому скачал прошивку из часов и даже было начал пытаться её реверсить, чтобы понять без вскрытия корпуса, как подключена периферия.
К счастью, спустя всего пару дней всё поменялось: видимо, не мне одному пришла посылочка из Китая. Работа в сообществе закипела, произведя на свет форк проекта PixelIt:
https://github.com/aptonline/PixelIt_Ulanzi
Установил PlatformIO, склонировал репозиторий, после этого достаточно было нажать заветную кнопку Upload Filesystem Image, чтобы собралась прошивка и отправилась по USB проводу прямиком в часы. Заработала почти без нареканий, был в ней и крупный шрифт, правда не такой как мне хотелось бы.
Не беда: у нас ведь все исходники под рукой! Набросал в GIMP новые циферки, перегнал их в нужный формат и вот уже всё тикает:
Теперь всем доволен: часы работают автономно, в интернет лезут только сверить время по NTP, внешнего "мозга" для работы не требуют. При этом, при желании на них можно по сети выводить текст, картинки, и прочие глупости.
Как вывод могу отметить, что поддержка OpenSource разработки ESP32 за последние годы вышла на качественно новый уровень. Инструменты, такие как PlatformIO, позволяют прямо из VScode вести разработку и отладку сложных проектов с множеством зависимостей, а количество имеющихся готовых библиотек для всяческой периферии сильно упрощает процесс.
Это на руку и разработчикам устройств. Как уже упоминал, оригинальная прошивка была собрана абсолютно этими же инструментами, с использованием этих-же библиотек. Исходников не публиковалось, Столлман негодует, но к счастью они и не требуются, учитывая что более качественные прошивки появились за какие то пару недель с момента поступления устройства в продажу. Тем не менее надеюсь, что оригинальная прошивка благодаря OpenSource библиотекам получилась менее дырявая, чем если-б её писали с нуля на коленке.
UPD: На данный момент, оригинальный PixelIt поддерживает TC001 из коробки, включая шрифт часов, описанный в этой статье.
Метки:
29, 2023 17:36
Привет! Как можно с тобой связаться? Есть вопросы по прошивке этих часов.
Спасибо!
30, 2023 18:19
Привет, скачиваешь vscode и platformio, клонируешь репозиторий и открываешь его в vscode — это должно скачать все зависимости для сборки. Подключаешь часы и выбираешь опцию сборки «Upload Filesystem Image» — это прошьёт полный образ. Если что — обращайся в телеге. Ник тот-же, что и тут.
3, 2023 16:22
[…] упоминал в прошлых записях, платформа ESP32 стала очень популярной в мире IoT […]