ToyTool Firmware

Как поставить свою прошивку на SmallTV-Ultra

Как поставить ToyTool Firmware на GeekMagic SmallTV-Ultra из браузера через небольшой установщик, что покажет экран и что делать, если он остановился.

8 мин чтения

Маскот ToyTool — экран SmallTV-Ultra — показывает код активации

Чтобы сменить прошивку GeekMagic SmallTV-Ultra, его не нужно ни разбирать, ни подключать к компьютеру. У заводской прошивки есть страница обновления http://<ip-экрана>/update: она принимает файл прошивки по Wi‑Fi из любого браузера. ToyTool Firmware ставится через неё одной загрузкой: ты загружаешь небольшой установщик, а он сам скачивает полную прошивку, проверяет её и перезагружается в неё.

Написано для ToyTool Firmware 1.18.0, её установщика 1.0.0 и заводской прошивки GeekMagic V9.0.50.

Перед началом

  • Убедись, что это Ultra. ToyTool работает только на GeekMagic SmallTV-Ultra (ESP8266) — не на SmallTV Pro и не на похожих «часах с погодой» на ESP32. Заводская страница обновления сама предупреждает об этом заглавными буквами. Если не уверен, посмотри, какой у тебя SmallTV.
  • Запомни версию заводской прошивки. Она на странице Settings рядом с «Model» и «Ver». Установщик рассчитан на V9.0.50.
  • Экран должен быть в Wi‑Fi с интернетом. Установщик скачивает прошивку с toytool.work через ту же сеть, к которой подключён экран. Телефон или компьютер, с которого загружаешь файл, — в той же сети.
  • Питание — стабильное. Инструкция GeekMagic просит 5 В и не меньше 1 А и предупреждает, что кабели USB-C — USB-C не поддерживаются: используй кабель из коробки.
  • Нужна лицензия. ToyTool платная — базовая стоит $3.99 за экран, один раз. Установщик лежит в твоём аккаунте ToyTool в разделе Прошивка, а экран заработает, когда ты привяжешь его к лицензии (до этого он показывает только код активации).

Подключиться к экрану по USB для передачи данных нельзя: порт USB-C только питает его, а микросхемы USB-UART на плате нет. Всё, что ниже, делается по Wi‑Fi.

Зачем установщик, а не сам файл прошивки

Заводская страница обновления записывает новый файл в свободную флеш-память между работающей прошивкой и хранилищем файлов экрана и переключается на него, только когда файл пришёл целиком. На V9.0.50 места там примерно на полмегабайта; файл больше этого она отвергает с ошибкой Not Enough Space (этот текст есть в самой прошивке V9.0.50). ToyTool Firmware больше этого предела, и даже в сжатом виде она к нему вплотную. Установщик маленький, и места ему хватает с запасом:

ФайлРазмерНа заводской V9.0.50
Установщик ToyTool toytool-installer.bin381 КБпомещается
ToyTool Firmware 1.18.0 .bin.gz500 КБвпритык к пределу
ToyTool Firmware 1.18.0 .bin724 КБне принимается: слишком большой
GeekMagic FW-Smalltv-Ultra-V9.0.50.bin493 КБ—

Что он делает, когда запустится: читает сеть Wi‑Fi, которую сохранила заводская прошивка, скачивает ToyTool Firmware с toytool.work и сверяет её с размером и MD5, которые твой аккаунт вписал в установщик, когда ты его скачивал. Заменить установщик может только целый файл, который с ними совпал. В ту же стену упираются и другие проекты для этого экрана: smalltv-mod, например, тоже ставится через маленький загрузчик.

Установка из браузера, по шагам

  1. Скачай установщик. В аккаунте открой Прошивка и нажми Скачать установщик. Получится файл toytool-installer.bin, около 381 КБ. В каждом скачанном установщике — версия прошивки, которая была актуальной в тот день; более старый файл ставит свою версию, пока мы её храним.

    Страница «Прошивка» в аккаунте ToyTool: ToyTool Firmware 1.18.0, кнопка «Скачать установщик» и кнопки поменьше .bin.gz и .bin
    Страница «Прошивка» в аккаунте. Для первой установки с заводской прошивки нужен установщик.
  2. Узнай адрес экрана. Заводская прошивка показывает IP-адрес на экране сразу после подключения к Wi‑Fi, при каждом запуске. Ещё он есть в списке подключённых устройств на роутере.
  3. Открой страницу обновления. В браузере перейди на http://<ip-экрана>/update, например http://192.168.1.50/update. На ту же страницу ведёт кнопка 7. Firmware update → UPLOAD на заводской странице Settings.

    Заводская страница обновления GeekMagic: «PLEASE CHECK PRODUCT MODEL BEFORE UPDATE!!!», три пронумерованных шага, выбор файла Firmware и кнопка Update
    Заводская страница обновления V9.0.50, отрисованная из страницы внутри файла прошивки.
  4. Загрузи установщик. Нажми Choose File, выбери toytool-installer.bin, нажми Update — и, как просит сама страница, жди и ничего не трогай. Когда всё готово, страница пишет «Update Success! Rebooting...», и экран перезагружается в установщик.
  5. Дальше экран всё сделает сам. Сначала на нём «Ставлю ToyTool», пока он читает сохранённый Wi‑Fi, потом «Подключаюсь к …» с именем твоей сети, потом Ставлю ToyTool… и кольцо, которое заполняется по мере загрузки. Когда файл пришёл и прошёл проверку, экран пишет Готово, перезапуск. Всё это время не выключай его из розетки.

    Два экрана, нарисованные кодом самого установщика: кольцо на 42% с надписью «Ставлю ToyTool…, не выключай питание» и полное кольцо с галочкой и надписью «Готово, перезапуск»
    Пока прошивка скачивается, и когда она прошла проверку.
  6. Активируй экран. После перезагрузки ToyTool подключается к тому же Wi‑Fi и показывает QR-код и код из шести символов. Наведи на QR-код камеру телефона: откроется твой аккаунт с уже вписанным кодом. Дай экрану имя, если хочешь, и нажми Привязать. Нет камеры — открой аккаунт, нажми Добавить экран и введи код вручную.

    Два экрана, нарисованные прошивкой: QR-код с надписью «Отсканируй телефоном, или введи код K7P3XM, toytool.work/smalltv» и второй QR-код с надписью «Выбери циферблаты, наведи камеру телефона»
    Слева — экран активации после установки. Справа — экран привязан, QR-код ведёт к выбору циферблатов.
  7. Выбери циферблаты. Аккаунт предложит несколько для начала. Пока ты не выбрал, экран показывает второй QR-код, который ведёт туда же.

Установщик говорит на том языке, на котором был твой аккаунт, когда ты его скачивал, и ToyTool начинает на нём же.

Если что-то остановилось

Установщик никогда не оставляет экран без выхода: при любой ошибке он коротко пишет, что случилось, а по адресу экрана открыты две страницы — http://<ip-экрана>/log (что он делал, по шагам) и http://<ip-экрана>/update (чтобы загрузить файл вручную). Если пишешь нам, журнал с первой страницы — самое полезное, что можно прислать.

Два экрана установщика: красное кольцо с надписью «Загрузка оборвалась, снова через 30 с» и экран настройки Wi‑Fi с просьбой подключиться к ToyTool-Setup и открыть 192.168.4.1, внизу — «Home — неверный пароль»
Слева — он сам попробует ещё раз. Справа — не смог подключиться к твоему Wi‑Fi и просит его.
  • Заводская страница пишет «Not Enough Space». Ты выбрал файл прошивки (.bin или .bin.gz), а не установщик. Выбери toytool-installer.bin, около 381 КБ. Если не принимается и установщик, на твоей версии заводской прошивки места меньше, чем на V9.0.50, — напиши нам и укажи версию со страницы Settings.
  • На экране «Настройка Wi‑Fi» и ToyTool-Setup. Он не нашёл сохранённой сети или не смог к ней подключиться; нижняя строка говорит почему (например, «неверный пароль»). Подключись с телефона к открытой сети ToyTool-Setup, открой http://192.168.4.1, выбери свой Wi‑Fi и введи пароль. Все причины разобраны в статье про Wi‑Fi.
  • «Нет интернета», «Сервер занят», «Загрузка оборвалась» или «Файл пришёл битым». Он сам попробует ещё раз: через 10 секунд, потом через 30, потом раз в минуту — обратный отсчёт виден на экране. Пока не пришёл целый файл с верным MD5, на экране ничего не меняется, так что его можно оставить. Если он всё время пишет «Нет интернета», проверь, есть ли интернет у самого роутера.
  • Проценты стоят на месте. Если 20 секунд не приходит ни байта, установщик считает загрузку оборвавшейся и начинает её заново с 0%.
  • Во время установки пропало питание. Пока кольцо заполняется, это не страшно: установщик остаётся на месте, запускается снова при следующем включении и находит тот же Wi‑Fi. Опасны только несколько секунд после Готово, перезапуск, когда чип переносит новую прошивку на место, — как при любом обновлении этого экрана. В этот момент не выдёргивай его из розетки.
  • «Установщик устарел». Версии прошивки, для которой сделан этот установщик, на нашем сервере больше нет. Скачай новый установщик в аккаунте и загрузи его по адресу, который показан на экране (он заканчивается на /update).
  • «Файл повреждён». Установщик первым делом проверяет сам себя, и эта копия испорчена. Загрузи его ещё раз по адресу на экране.
  • «Установщик неполный». Файл скачан не из твоего аккаунта, а именно скачивание вписывает в него версию прошивки и её контрольную сумму. Скачай установщик в разделе Прошивка и загрузи его по адресу на экране.

Что сохранится, а что нет

После установки
Сеть Wi‑Fi и парольСохраняются — их читают из хранилища заводской прошивки или из настроек самого чипа
Заводские настройки (город, тема, яркость, ночной режим)Не сохраняются — задай их заново в аккаунте
GIF и фото, загруженные в заводскую прошивкуНе сохраняются — ToyTool использует это хранилище для своих файлов; GIF можно загрузить заново в аккаунте
Заводская веб-консольЕё заменяют страница самого экрана и твой аккаунт

Если ToyTool уже стоит

Для обновления установщик не нужен: начиная с прошивки 1.14, когда выходит новая версия, на карточке экрана в аккаунте появляется Обновить, экран сам скачивает её, сверяет с ожидаемым размером и MD5 и перезагружается. Циферблаты и настройки остаются.

Вручную тоже можно: скачай .bin.gz (после установки ToyTool подойдёт и обычный .bin), открой страницу экрана, выбери файл в разделе Прошивка и нажми Прошить. С этой же страницы работает и установщик — он оставляет циферблаты, настройки и привязку к аккаунту как есть и ставит прошивку заново, — но нужен он, только если экран не может обновиться иначе.

Как вернуть заводскую прошивку

  1. Скачай заводскую прошивку из репозитория GeekMagic на GitHub (самая новая папка там — V9.0.50). В их README советуют сверить MD5 файла, если обновление ругается.
  2. Открой страницу самого экрана: в аккаунте на карточке экрана — Настроить → Страница экрана в домашней сети, или введи его адрес в браузере.
  3. В разделе Прошивка выбери файл .bin и нажми Прошить. Экран перезагрузится в заводскую прошивку.

Заводские настройки, фото и GIF не вернутся: они лежали в хранилище файлов экрана, которое ToyTool занимает под свои. Заводская веб-консоль тоже берёт скрипты и стили из этого хранилища, а не из файла прошивки, поэтому обещать, что она вернётся целиком, мы не можем. Если собираешься вернуться, сначала напиши нам.

Это безопасно?

  • Циферблаты не запускают код. Циферблат — это короткое описание фигур, текста и данных, а не программа.
  • Скачанное проверяется. И установщик, и обновление одной кнопкой сверяют прошивку с ожидаемыми размером и MD5, прежде чем экран на неё переключится; оборванная или битая загрузка оставляет экран как был.
  • Безопасный режим ловит прошивку, которая падает при каждом запуске, и экран остаётся доступен по Wi‑Fi. Подробнее — в статье про сброс и восстановление.
  • Чего мы не исправим удалённо: USB для данных нет, поэтому экран, у которого пропало питание, пока он переносил новую прошивку на место, восстанавливается только вскрытием и прошивкой по UART — этот способ страница ESPHome об устройстве называет альтернативой установке по воздуху.

Коротко

Можно загрузить с заводской прошивки сам файл прошивки? Обычный .bin слишком большой для заводской V9.0.50. .bin.gz версии 1.18.0 пока помещается впритык, а следующие версии могут уже не поместиться; установщику места хватает с запасом.

Нужен ли компьютер? Нет. Все шаги проходятся в браузере телефона, включая выбор файла на заводской странице обновления.

Нужен ли установщику интернет? Да: он скачивает прошивку с toytool.work через Wi‑Fi самого экрана.

Один установщик на несколько экранов? Можно. Но для активации каждому экрану нужна своя лицензия.

Подойдёт для SmallTV Pro? Нет. ToyTool сделана только под ESP8266 и экран модели Ultra.

*Источники: исходный код прошивки и установщика, файл заводской прошивки V9.0.50, инструкция GeekMagic и открытые обсуждения на GitHub.*