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

Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Разборка прошивки электросамоката Xiaomi M365
#прошивка
Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Разборка прошивки электросамоката Xiaomi M365
Open header post
nickkee
Участник
МоскваRating: 69
nickkee
21 september 2018, 14:38
Posted: 21 september 2018, 14:38
Ответ пользователю
Conejo : 21 september 2018, 14:36
на это сообщение (развернуть)
Теперь бродит шальная идея: залить всё это в М365 :D Что BLE не годится, понятно сразу (у ES2 индикаторы другие)....

Теперь бродит шальная идея: залить всё это в М365 :D

Что BLE не годится, понятно сразу (у ES2 индикаторы другие). Заливать часть от того, часть от того - тоже не годится, не смогут общаться между собой, у ES2 немного другой формат пакета. Да и вообще, для начала желательно вдумчиво сравнить платы, пошел разбирать ES2 :)


Навскидку полезная функция ES2, отсутствующая в М365 - поддержка второй батареи (ну там кроме софта немного железа добавлено - два транзисторных ключа для переключения между ними и ещё один порт для связи).

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

Conejo
Продвинутый форумчанин
МадридRating: 712
Conejo
21 september 2018, 15:28
Posted: 21 september 2018, 15:28

Вторая часть в полном BLE - bluetooth стек от Nordic. Он, как я понял, предоставляется без исходного кода, зашивается один раз, стандартен, дальше не обновляется. Часть, написанная разработчиками устройства (та, что в обновлении), общается с ним через SVC и ей всё равно что там за версия. Однако, как уже говорил выше, толку от неродного BLE всё равно будет мало - как минимум индикатор другой (ES2 показывает скорость и всякие статусы).


Прогнал патчер-конструктор на прошивке от ES2 - тот не опознал ни одного места, придётся смотреть вручную :( Неожиданно.

Answers: 1
nickkee
Участник
МоскваRating: 69
nickkee
21 september 2018, 15:33
Posted: 21 september 2018, 15:33
[quote="Conejo"]Вторая часть в полном BLE - bluetooth стек от Nordic. Он, как я понял, предоставляется без исходного кода, зашивается один раз, стандартен, дальше не обновляется.[/quote]

Угу, в этом и запара. Эти стеки разные и разных версий бывают. Я пересмотрел очень много дампов BLE от сяоката и от ес1\2 и этот бинарник часто отличается. Пока не знаю от чего зависит. Кстати в сяо и в ес BLE чипы разные.

SurgeSPB
Форумчанин
Rating: 118
SurgeSPB
22 september 2018, 2:20
Posted: 22 september 2018, 2:20
Ответ пользователю
Conejo : 21 september 2018, 14:36
на это сообщение (развернуть)
Теперь бродит шальная идея: залить всё это в М365 :D Что BLE не годится, понятно сразу (у ES2 индикаторы другие)....

Теперь бродит шальная идея: залить всё это в М365 :D

Что BLE не годится, понятно сразу (у ES2 индикаторы другие). Заливать часть от того, часть от того - тоже не годится, не смогут общаться между собой, у ES2 немного другой формат пакета. Да и вообще, для начала желательно вдумчиво сравнить платы, пошел разбирать ES2 :)


Навскидку полезная функция ES2, отсутствующая в М365 - поддержка второй батареи (ну там кроме софта немного железа добавлено - два транзисторных ключа для переключения между ними и ещё один порт для связи).

У меня есть два контроллера на руках, живые М365 (1.3.0)  и ninebot (1.2.2). Есть стлинк и прочие приблуды, вплоть до ИК-650. Могу чем то подсобить? Бут от сяо подойдет, не смотрел?

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

Answers: 1
Boris0ff
Участник
МоскваRating: 92
Boris0ff
22 september 2018, 9:41
Posted: 22 september 2018, 9:41
Ответ пользователю
Conejo : 21 september 2018, 15:28
на это сообщение (развернуть)
Вторая часть в полном BLE - bluetooth стек от Nordic. Он, как я понял, предоставляется без исходного кода, зашивается...

Вторая часть в полном BLE - bluetooth стек от Nordic. Он, как я понял, предоставляется без исходного кода, зашивается один раз, стандартен, дальше не обновляется. Часть, написанная разработчиками устройства (та, что в обновлении), общается с ним через SVC и ей всё равно что там за версия. Однако, как уже говорил выше, толку от неродного BLE всё равно будет мало - как минимум индикатор другой (ES2 показывает скорость и всякие статусы).


Прогнал патчер-конструктор на прошивке от ES2 - тот не опознал ни одного места, придётся смотреть вручную :( Неожиданно.

На днях вышло обновление для ES, BLE так же обновляется в ней ( если мне не изменяет память )

Conejo
Продвинутый форумчанин
МадридRating: 712
Conejo
22 september 2018, 12:35
Posted: 22 september 2018, 12:35
Ответ пользователю
SurgeSPB : 22 september 2018, 2:20
на это сообщение (развернуть)
У меня есть два контроллера на руках, живые М365 (1.3.0)  и ninebot (1.2.2). Есть стлинк и прочие приблуды, вплоть до...

У меня есть два контроллера на руках, живые М365 (1.3.0)  и ninebot (1.2.2). Есть стлинк и прочие приблуды, вплоть до ИК-650. Могу чем то подсобить? Бут от сяо подойдет, не смотрел?

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

О, а можно хорошие фото контроллера ninebot с обеих сторон чтобы мне чужой скутер не разбирать? Сравнить хоть их сначала, может там какие фундаментальные отличия и зря возимся, ну и вообще вслепую не заливать, а то скоммутирует софт что-нибудь не то и погорит оно.


По даунгрейду не совсем понял - кого даунгрейдить? Ninebot? Для М365 даунгрейд уже есть выше в этой теме.

Answers: 2
Boris0ff
Участник
МоскваRating: 92
Boris0ff
22 september 2018, 12:44
Posted: 22 september 2018, 12:44
Ответ пользователю
Conejo : 22 september 2018, 12:35
на это сообщение (развернуть)
О, а можно хорошие фото контроллера ninebot с обеих сторон чтобы мне чужой скутер не разбирать? Сравнить хоть их...

О, а можно хорошие фото контроллера ninebot с обеих сторон чтобы мне чужой скутер не разбирать? Сравнить хоть их сначала, может там какие фундаментальные отличия и зря возимся, ну и вообще вслепую не заливать, а то скоммутирует софт что-нибудь не то и погорит оно.


По даунгрейду не совсем понял - кого даунгрейдить? Ninebot? Для М365 даунгрейд уже есть выше в этой теме.

куда кинуть фото?

SurgeSPB
Форумчанин
Rating: 118
SurgeSPB
22 september 2018, 15:29
Posted: 22 september 2018, 15:29
Ответ пользователю
Conejo : 22 september 2018, 12:35
на это сообщение (развернуть)
О, а можно хорошие фото контроллера ninebot с обеих сторон чтобы мне чужой скутер не разбирать? Сравнить хоть их...

О, а можно хорошие фото контроллера ninebot с обеих сторон чтобы мне чужой скутер не разбирать? Сравнить хоть их сначала, может там какие фундаментальные отличия и зря возимся, ну и вообще вслепую не заливать, а то скоммутирует софт что-нибудь не то и погорит оно.


По даунгрейду не совсем понял - кого даунгрейдить? Ninebot? Для М365 даунгрейд уже есть выше в этой теме.

Я конечно про найнбот) 

Контроллер отфоткаю дома. Он почти идентичен, элементная база одна и та же, даже трассировка платы плюс минус одинаковая

Answers: 1
Conejo
Продвинутый форумчанин
МадридRating: 712
Conejo
22 september 2018, 15:43
Posted: 22 september 2018, 15:43

Borisoff, да лучше сюда прямо - больше посмотрят - больше заметят, тут и обсудим.


SurgeSPB, прошивальщика отдельного (как для M365) для Ninebot так и нет же? Там протокол практически один в один, разница в трёх байтах, но я не андроидист к сожалению, а на РС работа с BLE довольно мутна, нужно поразбираться. Либо попробовать СОМ кабелем через порт внешней батареи (там UART выведен). Ну и саму прошивку старую где-то взять нужно. Та, что я выложил, снята на этой неделе.

Answers: 2
Boris0ff
Участник
МоскваRating: 92
Boris0ff
22 september 2018, 16:21
Posted: 22 september 2018, 16:21
Ответ пользователю
Conejo : 22 september 2018, 15:43
на это сообщение (развернуть)
Borisoff, да лучше сюда прямо - больше посмотрят - больше заметят, тут и обсудим.SurgeSPB, прошивальщика отдельного...

Borisoff, да лучше сюда прямо - больше посмотрят - больше заметят, тут и обсудим.


SurgeSPB, прошивальщика отдельного (как для M365) для Ninebot так и нет же? Там протокол практически один в один, разница в трёх байтах, но я не андроидист к сожалению, а на РС работа с BLE довольно мутна, нужно поразбираться. Либо попробовать СОМ кабелем через порт внешней батареи (там UART выведен). Ну и саму прошивку старую где-то взять нужно. Та, что я выложил, снята на этой неделе.

попробовал телефоном, качество так себе получилось, сфотографирую на днях на нормальную камеру с штатива

Boris0ff
Участник
МоскваRating: 92
Boris0ff
22 september 2018, 16:22
Posted: 22 september 2018, 16:22
Ответ пользователю
SurgeSPB : 22 september 2018, 15:29
на это сообщение (развернуть)
Я конечно про найнбот) Контроллер отфоткаю дома. Он почти идентичен, элементная база одна и та же, даже...

Я конечно про найнбот) 

Контроллер отфоткаю дома. Он почти идентичен, элементная база одна и та же, даже трассировка платы плюс минус одинаковая

Элементная база похожа, а вот порта ввода/вывода STM могут быть другие назначены

Answers: 2
SurgeSPB
Форумчанин
Rating: 118
SurgeSPB
22 september 2018, 16:33
Posted: 22 september 2018, 16:33
Ответ пользователю
Conejo : 22 september 2018, 15:43
на это сообщение (развернуть)
Borisoff, да лучше сюда прямо - больше посмотрят - больше заметят, тут и обсудим.SurgeSPB, прошивальщика отдельного...

Borisoff, да лучше сюда прямо - больше посмотрят - больше заметят, тут и обсудим.


SurgeSPB, прошивальщика отдельного (как для M365) для Ninebot так и нет же? Там протокол практически один в один, разница в трёх байтах, но я не андроидист к сожалению, а на РС работа с BLE довольно мутна, нужно поразбираться. Либо попробовать СОМ кабелем через порт внешней батареи (там UART выведен). Ну и саму прошивку старую где-то взять нужно. Та, что я выложил, снята на этой неделе.

Есть инфа, с какого адреса тянет обновления? Я сколько ни пытался через Charles траффик понюхать, так и не прокатило. Так можно было бы DNS поднять на роутере и скормить стоковому приложению архив.
52кб даже на ESP8266 влезет

SurgeSPB
Форумчанин
Rating: 118
SurgeSPB
22 september 2018, 16:33
Posted: 22 september 2018, 16:33
Ответ пользователю
Boris0ff : 22 september 2018, 16:22
на это сообщение (развернуть)
Элементная база похожа, а вот порта ввода/вывода STM могут быть другие назначены

Элементная база похожа, а вот порта ввода/вывода STM могут быть другие назначены

Гляну

LogitechFX from PCi.by
Новичок
МинскRating: 5
LogitechFX from PCi.by
22 september 2018, 16:40
Posted: 22 september 2018, 16:40



 1   
SurgeSPB
Форумчанин
Rating: 118
SurgeSPB
22 september 2018, 17:02
Posted: 22 september 2018, 17:02
Ответ пользователю
Boris0ff : 22 september 2018, 16:22
на это сообщение (развернуть)
Элементная база похожа, а вот порта ввода/вывода STM могут быть другие назначены

Элементная база похожа, а вот порта ввода/вывода STM могут быть другие назначены

И спрятавшиеся ребята


 1   
Conejo
Продвинутый форумчанин
МадридRating: 712
Conejo
23 september 2018, 16:39
Posted: 23 september 2018, 16:39

Отлично! Похоже действительно по железу отличия только в дополнительных цепях - ещё один UART для внешней батареи и схема переключения между батареями.

Однако всплыло вот что: прошивка ES2 ощутимо больше М365 (не влезет в отведённое ей в М365 место), также видны обращения к адресам за пределами 64к. Я так понимаю, в ES2 стоит STM32F103CBT6 (128к версия). Интересно, чего они там такого добавили кроме поддержки второй батареи? (та столько не добавляет явно).


Параллельно потряс автора M365DownG насчёт добавления поддержки флеширования ES2, обещает посмотреть (там совсем чуть-чуть изменений).

Answers: 1
SurgeSPB
Форумчанин
Rating: 118
SurgeSPB
23 september 2018, 16:57
Posted: 23 september 2018, 16:57
Ответ пользователю
Conejo : 23 september 2018, 16:39
на это сообщение (развернуть)
Отлично! Похоже действительно по железу отличия только в дополнительных цепях - ещё один UART для внешней...

Отлично! Похоже действительно по железу отличия только в дополнительных цепях - ещё один UART для внешней батареи и схема переключения между батареями.

Однако всплыло вот что: прошивка ES2 ощутимо больше М365 (не влезет в отведённое ей в М365 место), также видны обращения к адресам за пределами 64к. Я так понимаю, в ES2 стоит STM32F103CBT6 (128к версия). Интересно, чего они там такого добавили кроме поддержки второй батареи? (та столько не добавляет явно).


Параллельно потряс автора M365DownG насчёт добавления поддержки флеширования ES2, обещает посмотреть (там совсем чуть-чуть изменений).

Да, это так, действительно стоит B.

Шим на подстветку, один UART на батарею, больше новых функций с точки зрения отличий - я не заметил. 
Скорее всего сунули по принципу "Что было на складе" 

Conejo
Продвинутый форумчанин
МадридRating: 712
Conejo
23 september 2018, 17:30
Posted: 23 september 2018, 17:30

Пробежался по прошивке - что-то многовато там отличий - кнопка, выход включения, стоп-сигнал перенесены на другие пины, дополнительных каких-то пинов не менее 5 появилось, в лоб оно не заработает явно, нужно искать что куда идёт, переназначать пины в прошивке итд :(

Boris0ff
Участник
МоскваRating: 92
Boris0ff
23 september 2018, 17:33
Posted: 23 september 2018, 17:33
[quote="Conejo"]Я так понимаю, в ES2 стоит STM32F103CBT6 (128к версия)[/quote]

подтверждаю

nickkee
Участник
МоскваRating: 69
nickkee
23 september 2018, 19:22
Posted: 23 september 2018, 19:22

По поводу размера флеша не парьтесь, сяокатовский контроллер спокойно принимает образы флеша 128Кб.