Откат с прошивки v1.5.1 на самокате Xiaomi Mijia M365
Подготовка
Данный способ описывает перепрошивку затронутых модулей — контроллера самоката и головного модуля (BLE, плата в руле) с помощью программатора ST-Link V2. Возможны другие способы отката, если Вам про них известно - пишите по контактным адресам, указанным на главной странице. Исходные требования:
- Самокат Xiaomi M365 с оригинальной головной платой (не клон)
- Программатор ST-Link v2, не перешитый в J-Link (работа с ним также возможна, однако конфигурационные файлы придётся выбирать другие)
- OpenOCD под Вашу ОС (в статье рассматривается версия под Windows, в Linux с ядром 3.2 и новее всё будет ровно так же)
- Чистая прошивка BLE-модуля без шифрования канала
- Желаемая прошивка основного модуля (1.4.0 DownG, например)
Прошивка BLE-модуля головы
Подключение выполняется по следующей схеме:
Ниже приведён пример соединения (впаян разъём 0.1", четвёртый пин соединён с шиной +5).
На время прошивки необходимо убрать (отпаять) резистор R1 на плате BLE-модуля и конденсатор C16 на основной плате, в противном случае контроллер невозможно программно перезагрузить и начать прошивку по SWD, OpenOCD будет выдавать Error: init mode failed
.
Подключенный ST-Link должен определиться в Windows в диспетчере устройств, при этом все четыре светодиода на панели будут гореть белым/зелёным, при подключении будет короткий писк.
Распакуте чистую прошивку BLE-модуля в подкаталог share/openocd/scripts
в том месте, куда Вы распаковали OpenOCD.
В каталоге с распакованным OpenOCD перейдите в share/openocd/scripts
и выполните команду для прошивки ..\..\..\bin\openocd.exe -f interface\stlink.cfg -f target\nrf51.cfg -c init -c "reset halt" -c "nrf51 mass_erase 0" -c "flash write_image CODE 0" -c "flash write_image UICR 0x10001000" -c reset -c exit
Если все действия ранее выполнены корректно, Вы получите следующий вывод:
После этого можно отсоединить ST-Link и подключить голову к самокату. В случае успеха при включении голова будет издавать короткий писк, а тормозной габаритный огонь мигать. При попытке подключения по Bluetooth сторонние приложения снова будут видеть самокат:
Можно приступать к понижению версии прошивки основного модуля, в том числе по Bluetooth. Для этого есть отличная инструкция.
Основная работа по расковыриванию была выполнена nickkee / r1kaomsk. Сердечное спасибо!