Разборка прошивки электросамоката Xiaomi M365

Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Разборка прошивки электросамоката Xiaomi M365
#прошивка
+
Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Разборка прошивки электросамоката Xiaomi M365
Открыть шапку темы
phalt
Новичок
phalt
03 october 2018, 1:47
Posted: 03 october 2018, 1:47
Ответ пользователю
nickkee : 03 october 2018, 1:39
на это сообщение (развернуть)

Контроллером, который в самокате стоит, его серийный номер влияет на это поле, и оно физически перезаписывается. Я сравнивал дампы до и после этого процесса.

а есть дамп всей флеши нордика? вместе с сеттингсами и бле стеком....

nickkee
Участник
Rating: 59
nickkee
03 october 2018, 1:48
Posted: 03 october 2018, 1:48
Ответ пользователю
phalt : 03 october 2018, 1:47
на это сообщение (развернуть)

а есть дамп всей флеши нордика? вместе с сеттингсами и бле стеком....

Есть, я же выше выкладывал, смотри внимательно.

nickkee
Участник
Rating: 59
nickkee
03 october 2018, 1:50
Posted: 03 october 2018, 1:50

Адрес апликейшена хранится в UICR области, ее дамп тоже могу прикрепить, правда я не уверен, что он от этой версии.

 1   
phalt
Новичок
phalt
03 october 2018, 2:05
Posted: 03 october 2018, 2:05
Ответ пользователю
nickkee : 03 october 2018, 1:48
на это сообщение (развернуть)

Есть, я же выше выкладывал, смотри внимательно.

сорри - видимо пропустил.
дамп аппликешена не помешал бы, или же всей флеши - разобрать ее на запчасти...

nickkee
Участник
Rating: 59
nickkee
03 october 2018, 2:06
Posted: 03 october 2018, 2:06
Conejo
Форумчанин
МадридRating: 309
Conejo
03 october 2018, 2:06
Posted: 03 october 2018, 2:06

phalt, бут патченый не заработал?


С прошивальщиком такое: попытался было поправить m365 downg в APK Studio, быстро понял почему автор до сих пор тормозит с добавлением ninebot - там внутри костыль на костыле )) Забросил, заказал USB-BLE донгл (Silabs BLED112, он вроде довольно распространённый, у роботостроителей/ардуйнистов популярен), буду делать прошивальщик на компьютере (заодно и активаторы свои на bluetooth переведу).

 1   
phalt
Новичок
phalt
03 october 2018, 2:12
Posted: 03 october 2018, 2:12
Ответ пользователю
nickkee : 03 october 2018, 2:06
на это сообщение (развернуть)

да, спасибо - уже нашел - но полный дамп сообщением раньше ))).

надо таки напоминать себе не торопиться и перечитывать форум не по диагонали! )

а ведь пол часа назад зевал ))))).... теперь и в одном глазу ....

phalt
Новичок
phalt
03 october 2018, 2:15
Posted: 03 october 2018, 2:15
Ответ пользователю
Conejo : 03 october 2018, 2:06
на это сообщение (развернуть)

phalt, бут патченый не заработал?


С прошивальщиком такое: попытался было поправить m365 downg в APK Studio, быстро понял почему автор до сих пор тормозит с добавлением ninebot - там внутри костыль на костыле )) Забросил, заказал USB-BLE донгл (Silabs BLED112, он вроде довольно распространённый, у роботостроителей/ардуйнистов популярен), буду делать прошивальщик на компьютере (заодно и активаторы свои на bluetooth переведу).

да ))) - заработал )))..... карта памяти верная.


дык, выходит аппликейшн для заливки бинарников будет хардкорный - на С/С++ ? ))))))

phalt
Новичок
phalt
03 october 2018, 2:37
Posted: 03 october 2018, 2:37
Ответ пользователю
Conejo : 03 october 2018, 2:06
на это сообщение (развернуть)

phalt, бут патченый не заработал?


С прошивальщиком такое: попытался было поправить m365 downg в APK Studio, быстро понял почему автор до сих пор тормозит с добавлением ninebot - там внутри костыль на костыле )) Забросил, заказал USB-BLE донгл (Silabs BLED112, он вроде довольно распространённый, у роботостроителей/ардуйнистов популярен), буду делать прошивальщик на компьютере (заодно и активаторы свои на bluetooth переведу).

но, увы - ошибку неверного серийника пока не переборол... продолжаем неравную борьбу с ассемблернм листингом...

Vladimir Lavrulin
Генератор лайков
МоскваRating: 3566
Vladimir Lavrulin
03 october 2018, 21:05
Posted: 03 october 2018, 21:05

Друзья! 


Если кто-то из участников может свести в одно сообщение всю самую важную информацию по этой теме, прикрепить к ней основные файлы и указать главные ссылки, пожалуйста, напишите мне :) Сделаем из этого сообщения шапку темы, добавим в базу знаний, это будет всем удобно! Спасибо! :)


P.S.

Что-то Ed01 давно не заходил :(

phalt
Новичок
phalt
03 october 2018, 21:59
Posted: 03 october 2018, 21:59
Ответ пользователю
Vladimir Lavrulin : 03 october 2018, 21:05
на это сообщение (развернуть)

Друзья! 


Если кто-то из участников может свести в одно сообщение всю самую важную информацию по этой теме, прикрепить к ней основные файлы и указать главные ссылки, пожалуйста, напишите мне :) Сделаем из этого сообщения шапку темы, добавим в базу знаний, это будет всем удобно! Спасибо! :)


P.S.

Что-то Ed01 давно не заходил :(

Может дизассемблит?)))))

Conejo
Форумчанин
МадридRating: 309
Conejo
09 october 2018, 13:48
Posted: 09 october 2018, 13:48

Ed01, возвращайтесь! Нам вас очень не хватает!


Для разработчиков, желающих пообщаться со скутером, но опасающихся работы с BLE, на основе примера от Nordic сделал вот такую штуку: https://github.com/flowswitch/nRFUARTBridge - Android-приложение, пробрасывающее nRF UART BLE порт в сеть.

Подключаетесь из приложения к скутеру, с PC подключаетесь к телефону на указанный порт и просто шлёте/принимаете данные. После некоторого облагораживания выложу PC часть, посылающую/принимающую пакеты в обоих форматах (и Xiaomi и Ninebot ES).

Apk там есть готовый, собирать не обязательно.

 3   
nickkee
Участник
Rating: 59
nickkee
09 october 2018, 17:09
Posted: 09 october 2018, 17:09

Полный дамп новой, неактивированной BLE платы от ES2. ;-)

 2   
M365 spain
Участник
Rating: 41
M365 spain
12 october 2018, 22:28
Posted: 12 october 2018, 22:28

Может ли кто-то собрать прошивку для БМС на основе 115 но чтоб не падала мощность до 30% заряда как на БМС 107?

 

Проблема БМС 107 - это неправильное отображение заряда.. -10%

 

Или я ошибаюсь и падение мощности запрограммированно в самой прошивке контроллера ? 

 

Спасибо!

nickkee
Участник
Rating: 59
nickkee
14 october 2018, 0:30
Posted: 14 october 2018, 0:30
[quote="Conejo"]Подключаетесь из приложения к скутеру, с PC подключаетесь к телефону на указанный порт[/quote]

Connecting и ничего дальше =(

Borisoff
Участник
МоскваRating: 15
Borisoff
14 october 2018, 12:25
Posted: 14 october 2018, 12:25
[quote="M365 spain"]Или я ошибаюсь и падение мощности запрограммированно в самой прошивке контроллера ?[/quote]

BMS следит только за "здоровьем" АКБ и передает данные о ней контроллеру. Все же "плюшки", вроде падения мощности при разряженной батареи, прописаны в основной программе.

Conejo
Форумчанин
МадридRating: 309
Conejo
15 october 2018, 15:24
Posted: 15 october 2018, 15:24
Ответ пользователю
nickkee : 14 october 2018, 0:30
на это сообщение (развернуть)
[quote="Conejo"]Подключаетесь из приложения к скутеру, с PC подключаетесь к телефону на указанный порт[/quote]

Connecting и ничего дальше =(

В каком месте "connecting"? Там если к телефону по кабелю подключаться - нужно сделать adb forward обязательно, если по WiFi - могут быть проблемы с роутером (client isolation какой-нибудь включён, который отсекает соединения между устройствами внутри сети)


Залил ответную PC-часть на Python: https://github.com/flowswitch/py9b

Сыроватое там всё пока ещё, но работает.  Пример запрашивает серийный номер батареи (либо ESC, внутри закомментирована строчка).

По мере наличия свободного времени планирую добавлять следующие слои обёрток - команды, работа с "регистрами", флеширование...

dssoft
Новичок
Rating: 3
dssoft
16 october 2018, 11:57
Posted: 16 october 2018, 11:57

Добрый день, господа. Помогите, если кому не сложно.

Пишу свою железку, живущую на самокатовской шине (очередной дисплейчик) и хочу прошивать его по блютусу.

Казалось бы, ничего сложного, выбрал неиспользуемый адрес, поменял на него 0x20 в патченном прошивальщике,

и заливай, не хочу.

Однако столкнулся с тем, что на левые адреса пакеты просто не проходят через голову. Приложение пишет таймаут

при засылке длины (07), а я даже этот пакет на шине не вижу. От горя попробовал адрес 0x24, в который засылается

имя, такая же фигня.

Предложите как его обмануть, чтобы не самой большой кровью. Ну или под какие команды тогда лучше мимикрировать.


Conejo
Форумчанин
МадридRating: 309
Conejo
16 october 2018, 14:23
Posted: 16 october 2018, 14:23

Голова пересылает в провод только пакеты, адресованные ESC (20) или BMS (22), и обратно только от них (23, 25). Можно сесть на адрес ESC, но с неперекрывающимися с ним командами (ESC их проигнорирует, никаких ответов "ошибка, неизвестная команда" он не шлёт). Команды от 0x80 и выше свободны.

Т.е. в итоге в прошивальщике адрес оставляем 20, а команды 07, 08, 09, 0A меняем на 87, 88, 89, 8A.


24 - адрес, с которого отвечает BLE.

dssoft
Новичок
Rating: 3
dssoft
16 october 2018, 14:29
Posted: 16 october 2018, 14:29

Спасибо большое за ответ, сегодня попробую!

Раз уж зашла речь, то не подскажете есть ли в контроллере или BMS признак включения зарядки? Ну не мигание же светодиодов разбирать.