Прошивка BLE и приложение Ninebot

#прошивка
+
1
2
Zoydberg
Участник
КиевRating: 31
Zoydberg
30 august 2019, 1:13
Posted: 30 august 2019, 1:13

В общем, после прошивки М365ПРО, BLE от Про через St-Link , приложение Ninebot  - перестало находить самокат.(вообще поиск не находит устройство) Остальные приложения - без проблем работают!

Причем, если шить обычную (от М365 не про) версию 072, в голову ПРО - положение работает. (Но экран не показывает)

А следовательно, прошивка восстанавлюющая по St-link для Про и в приложении "Rollback" - не корректно работает(

Для тесТа ещё одну заведомо рабочую голову от ПРО пролил ST-Link-ом  - тоже перестала видится.

Я предполагаю, что дамп был с европейского аппарата, или он не полный!

Может есть у кого нибудь полный, или рабочий дамп с Китайца, что б Ninebot смог увидеть BLE

Или как мне слить дамп с головы без ограничений* , чтоб восстановить работу приложения у подопытных ?

Zoydberg
Участник
КиевRating: 31
Zoydberg
30 august 2019, 12:52
Posted: 30 august 2019, 12:52

И ещё вопрос, дабы не плодить темы:

Как называется БТ модуль, который установлен в PRO и Ninebot ESx ? Хочу заказать

Нашел похожий (приложил фото), но отличается(

Также  на Ninebot Max, используется аналогичный Бт Модуль


Ed01
Продвинутый форумчанин
Rating: 567
Ed01
31 august 2019, 23:06
Posted: 31 august 2019, 23:06

Приложение Segway-Ninebot не поддерживает самокат M365 начиная с европейской версии (и далее). Их отличие от китайской в первых цифрах серийного номера основного контроллера. Заводской образ прошивок одинаковый.

Приложение Ninebot, не поддерживает и обе версии PRO. При установке и перепрошивке дисплея в оригинал, формально получается апгрейд M365-->PRO. Для PRO используется MiHome от Сяоми. То, что Ninebot не работает с этой прошивкой, только подтверждает ее оригинальность)


Прошивка клона дисплея с Ali имеет много отличий от оригинала. В чатах встречал кастомную прошивку дисплея на основе BLE 0.90. Она работает с Ninebot (при условии не европейского S/N контроллера) и близка к оригиналу.

Спойлер


А также, кастомную прошивку BLE 0.74 для дисплея, которая работает с M365 (без необходимости перепрошивки контроллера) и с PRO. Прошивка отключает BT по тайм-ауту. Имеет настройки газа и тормоза в m365 Tools (скриншот). Работает с Ninebot, но мне не удалось подключиться к MiHome.

---

Приложение Ninebot может предлагать обновление BLE 0.91. В данном случае, обновляться не следует. Т.к прошивка 0.91 для платы с 4-мя диодами и с дисплеем она не работает. Кроме того, откат с нее почти не возможен без ST-Link.


 3   
Zoydberg
Участник
КиевRating: 31
Zoydberg
02 september 2019, 14:43
Posted: 02 september 2019, 14:43
Ответ пользователю
Zoydberg : 30 august 2019, 1:13
на это сообщение (развернуть)
В общем, после прошивки М365ПРО, BLE от Про через St-Link , приложение Ninebot  - перестало находить самокат.(вообще...

В общем, после прошивки М365ПРО, BLE от Про через St-Link , приложение Ninebot  - перестало находить самокат.(вообще поиск не находит устройство) Остальные приложения - без проблем работают!

Причем, если шить обычную (от М365 не про) версию 072, в голову ПРО - положение работает. (Но экран не показывает)

А следовательно, прошивка восстанавлюющая по St-link для Про и в приложении "Rollback" - не корректно работает(

Для тесТа ещё одну заведомо рабочую голову от ПРО пролил ST-Link-ом  - тоже перестала видится.

Я предполагаю, что дамп был с европейского аппарата, или он не полный!

Может есть у кого нибудь полный, или рабочий дамп с Китайца, что б Ninebot смог увидеть BLE

Или как мне слить дамп с головы без ограничений* , чтоб восстановить работу приложения у подопытных ?

[quote="Ed01"]Приложение Segway-Ninebot не поддерживает самокат M365 начиная с европейской версии (и далее).[/quote]

Почему тогда оригинальные Прошки - привезенные с Китая конектились?

Я лично проверял что модули БЛЕ - НЕ ПАЯНЫ и ОРИГИНАЛ. (Спецом сделал скрины)

А при подключении европейца пишет "не поддерживаемая модель"

Но когда прошил Европейскую БЛЕ, через Ст-Линк - вообще перестало приложение находить.

Затем проверил на Оригинале Для Китайского рынка - он тоже, после прошивки вообще не видит его Ninebot приложение:(

Вопрос, почему вообще перестало приложение видить ПРОшные БЛЕ ?

Из-за другой прошивки, в которой что-то не так  - логично?

[quote="Ed01"]Их отличие от китайской в первых цифрах серийного номера основного контроллера.[/quote]


Согласен, но это для оБычных М365.

Почему после подключения обычного дисплея на Про - он нормально опять видитися по Приложением Ninebot?

Чтоб исключить совпадение,  перепроверил:

[quote="Zoydberg"]Для тесТа ещё одну заведомо рабочую голову от ПРО пролил ST-Link-ом  - тоже перестала видится.[/quote]



[quote="Ed01"]В чатах встречал кастомную прошивку дисплея на основе BLE 0.90. Она работает с Ninebot[/quote]


Дело в том, что была такая оригинальная!

Выложите пожалуйста, или дайте ссыль.

Или ткните на инструкцию, как слить приедет ещё хоть один такой - сделаю дамп, будет вам на исследование.

Я более чем уверен, что это ориг прошивка была. Самокаты новые, из коробок


 1   
Ed01
Продвинутый форумчанин
Rating: 567
Ed01
02 september 2019, 22:45
Posted: 02 september 2019, 22:45

Новый дисплей при установке на самокат и первом включении, сам инициализируется. Получает имя и заполняет таблицу пользователя. Дамп дисплея с самоката индивидуален и из него получатся только клоны. Но можно попробовать снять дамп с дисплея из коробки, поставляемого как запчасть. Может он не инициализирован. Если найду, тоже попробую. 


@Zoydberg Спасибо, интересная информация. Завтра постараюсь добавить тут прошивку. Ссылка на нее в Telegram.

Но она для обновления по BT, а значит не перекрывает весь образ.


В архиве: Оригинальная BLE_PRO_090, патченная от White Power и прошивальщик по BT для них.

 2   
Conejo
Форумчанин
МадридRating: 309
Conejo
03 september 2019, 3:07
Posted: 03 september 2019, 3:07

В той прошивке из Telegram изменён код модели с M365Pro на классический М365 (код модели виден приложению ещё на этапе сканирования). Классический М365 будет видеться в скане Ninebot всегда, дальше при подключении приложение попытается отфильтровать модели с европейскими серийными номерами, но т.к. у Про свои форматы серийного номера - в них "европейцев" не признают и пускают. 

Старые версии BLE от Про (в ремкомплекте для st-link как раз такая) будут отсекаться Ninebotом на этапе сканирования. Свежая версия (поддерживающая шифрованный протокол Ninebot) будет опознана в скане и допущена, но от неё все рвутся избавиться st-linkом, т.к. с ней не работают прошивальщики.


Прошивки от CamiAlfa (те, где таймаут подключения и настраиваемые ручки) не будут подключаться к MiHome (не умеют авторизовываться в облаке Сяоми).

 3   
Zoydberg
Участник
КиевRating: 31
Zoydberg
03 september 2019, 9:21
Posted: 03 september 2019, 9:21
[quote="Ed01"]Новый дисплей при установке на самокат и первом включении, сам инициализируется[/quote]

Знаю и после прошивки St-linkом, подключал голову от Про к М365, для Китайского рынка.(для инициализации)

Но все равно опыт не увенчался успехом.

Также пробовал пролить прошу От Еs2 - приложение с ей работает, но экран не показывает.

Ed01
Продвинутый форумчанин
Rating: 567
Ed01
03 september 2019, 10:58
Posted: 03 september 2019, 10:58

@Zoydberg Дамп можно считать, добавив в ble365rec еще один командный файл: BLE_Backup.bat. Если его запустить при подключенном дисплее, будут созданы файлы CODE.BAK и UICR.BAK. Это и есть слитая прошивка. Убедиться, что они не пустые (не забиты нулями). И в дальнейшем их можно использовать для отката к начальному состоянию. Переименовав соответственно в CODE_PRO и UICR. Сам часто пользуюсь.
Если чип закрыт от чтения (как в случае с клоном дисплея с Ali), нужен другой метод, описанный здесь.

Файл в архиве ZIP под распаковку.

 2   
Ed01
Продвинутый форумчанин
Rating: 567
Ed01
03 september 2019, 12:10
Posted: 03 september 2019, 12:10

@Conejo Большое спасибо за разъяснение. Все встало на свои места. Интересно, в каком модуле полной прошивки отличие. Может быть в USER DATA. Ведь главная APP идентична и заливается по BT. Попробовать с BLE_100. Тоже посмотрю по мере возможности.


@Zoydberg При обновлении по BT, меняется не вся прошивка, а только ее часть. На рисунке отмечена красным.

А когда те, новые самокаты Pro подключались к Ninebot, он предлагал обновление?


 1   
Conejo
Форумчанин
МадридRating: 309
Conejo
03 september 2019, 13:38
Posted: 03 september 2019, 13:38

@Ed01 на стадии сканирования из видимого в эфир кроме имени устройства (берётся из настроек) и MAC адреса (из FICR) все остальные данные происходят из обновляемой части и фиксированы для конкретной версии. Подозреваю что в тех ситуациях с переставшими обнаруживаться после перепрошивки  st-linkом платами просто были разные версии до и после.

 2   
Ed01
Продвинутый форумчанин
Rating: 567
Ed01
03 september 2019, 22:47
Posted: 03 september 2019, 22:47

В Ninebot случайно обновил дисплей на шифрованную BLE_0.91 от 365-го. Интересно, что после этого, МiHome предложила обновление и откатила ее обратно на нешифрованную BLE_100 для Pro. Видимо потому, что номер больше. На этот раз обошлось без ST-Link) - Эксперимент с прошивкой от White Power.

[quote="Zoydberg"]Я предполагаю, что дамп был с европейского аппарата[/quote]
[quote="Conejo"]В той прошивке из Telegram изменён код модели с M365Pro на классический М365[/quote]
[quote="Conejo"]все остальные данные происходят из обновляемой части и фиксированы для конкретной версии[/quote]

Значит, начальное предположение было верным. А само отличие, в байтах кода модели. Коррекция европейская-китайская, вероятно возможна по BT. А сами прошивки BLE существуют парами. Осталось дальше искать дамп.

Пробовал ставить раннюю BLE_0.68 и обновлять в китайском регионе. Но не дало результата - оставалась EU.

 2   
Zoydberg
Участник
КиевRating: 31
Zoydberg
04 september 2019, 9:55
Posted: 04 september 2019, 9:55
[quote="Ed01"]Интересно, что после этого, МiHome предложила обновление и откатила ее обратно на нешифрованную BLE_100 для Pro. Видимо потому, что номер больше. [/quote]

Полезная инфа для даунгрейда, без пайки

А серийник контроллера Про версии?

Conejo
Форумчанин
МадридRating: 309
Conejo
04 september 2019, 11:14
Posted: 04 september 2019, 11:14

@Ed01 Немного не то имел в виду. Прошивки BLE с одним номером версии (говорим об оригинальных, в кастоме - понятно, можно вбить что угодно) одинаковы, китайских/европейских нет, определить во время скана что вот этот скутер с BLE vX.Y.Z - EU, а вот тот с той же BLE vX.Y.Z - CN - нет, они либо оба будут видны, либо оба нет в зависимости от выставленного в приложении региона и параметров самой прошивки (одинаковых для всей версии X.Y.Z, о параметрах - ниже). В самом скутере единственный индикатор региона - серийный номер ESC (который читается только после подключения, когда скутер пикнул, вот тогда выдаётся «неподдерживаемая модель»).

Параметры BLE, видимые в скане, по которым решается видеть ли скутер: их всего два - код модели (там без вариаций по регионам, одно число для каждой модели - М365, ESx, M365Pro, ESMax) и версия протокола (классический открытый как в v0.7.2, шифрованный-miservice как в v0.8.1, шифрованный-miservice+шифрованный-ninebot как в v0.9.1). По их комбинациям и по региону, выбранному в приложении, решается, показывать ли скутер в скане. Другой информации во время скана нет.

Работать со вторым типом протокола (шифро-miservice) приложение Ninebot просто не умеет (там нужен доступ к Mi Cloud, а это чужая епархия), поэтому такие прошивки отсекутся. Не проверял как сейчас, но до начала массовых поставок версия Pro с классическим протоколом показывалась только если выбран регион Китай (видимо считали что в ЕС их ещё нет). Версии с поддержкой протокола шифро-ninebot вроде показываются везде. Полной статистики по всем комбинациям у меня нет, но по крайней мере пространство возможных вариантов очертил.

Не уверен, но кажется дальнейшее определение региона уже по серийному номеру ESC как-то учитывает и код модели из BLE, при несовпадении (BLE - Pro, SN - классика) не может понять регион и допускает???

 1   
Ed01
Продвинутый форумчанин
Rating: 567
Ed01
05 september 2019, 0:46
Posted: 05 september 2019, 0:46

@Zoydberg Серийник был от 365. Но дело может не в нем. С прошивкой BLE от White Power, самокат в MiHome определяется как PRO, а в Ninebot как 365-й. И соответственно, оба приложения предлагают обновиться.

С платой от 365-го (4 диода), к сожалению, такой фокус не проходит.

---

К слову о пайке и клонах: Они тоже заходят в Ninebot. Прошивок клона дисплея с Ali было уже 2 версии. Старая определялась в MiHome как M365. А текущая, как PRO. Обе не обновляемые по BT. Также, в новой ревизии заменили площадки для ST-Link на сквозные отверстия, что позволяет обходиться без пайки при программировании:

Спойлер

 1   
Ed01
Продвинутый форумчанин
Rating: 567
Ed01
05 september 2019, 2:42
Posted: 05 september 2019, 2:42

@Conejo Потом тоже подумал, было-бы не технологично выпускать разные обновления для каждой версии (CN-EU). Даже у BMS PRO теперь общая c M365 прошивка 1.26. В Ninebot не нашел смену региона, возможно он действует по реальной геопозиции. Проверил также, что при обновлении, на пути (файл-->буфер-->чип), первичное содержимое файла не меняется.

На скриншотах из Ninebot видны ESC1.5.5 и 1.6.0. Значит версии BLE, скорее всего были 0.90 и 100. В нашем случае, из тех двух условий при скане, наверное больше влияет код модели. Ведь прошивка 0.90 из Telegram была ориентирована на его правку. Но т.к обновляемая часть прошивки (App) у всех одинаковая, то сам код модели, вероятно, прописан не в ней. App, возможно, его только читает из другой области и рапортует приложению. Код модели может быть в таблице USER DATA вместе с именем. Предположение конечно.

Zoydberg
Участник
КиевRating: 31
Zoydberg
05 september 2019, 7:43
Posted: 05 september 2019, 7:43
[quote="Ed01"]В Ninebot не нашел смену региона[/quote]

Надо разлогинится и в правом верхнем углу можно выбрать регион (всегда так было)

Проверьте пожалуйста.

[quote="Conejo"]Подозреваю что в тех ситуациях с переставшими обнаруживаться после перепрошивки  st-linkом платами просто были разные версии до и после.[/quote]

После St-link, я через МiHome обновил прошивку, все равно NineBot не увидел БЛЕ, хотя на прошке прошла инициализация + прописались часть SN в конце названия BT

Причём, обе ориг платы теперь не видятся в поиске вообще!

А в 90% случаев, когда приходят Про, они видятся, но не подключаются, пишет вроде: "Модель не поддерживается"

[quote="Ed01"]BLE от White Power[/quote]


[quote="Ed01"]кастомную прошивку BLE 0.74 [/quote]

Где можно прочесть изменения ?

[quote="Ed01"]в новой ревизии заменили площадки для ST-Link на сквозные отверстия[/quote]

У Прошек Ориг, ещё сквозных не встречал

Клоны видимо быстрее улучшают:)


Ed01
Продвинутый форумчанин
Rating: 567
Ed01
05 september 2019, 20:40
Posted: 05 september 2019, 20:40

Спасибо, регион синхронизировал. Забыл уже). Описания кастомных прошивок я тоже не нашел. Они помогли разобраться в некоторых вещах. Но не решают данную проблему полностью. Ведь цель - восстановить прошивку в ее первоначальном виде.

---

Оригинальный коробочный дисплей, судя по всему, имеет такую же прошивку. С пустой USER DATA.

А ведь без разницы, европейская это модель или китайская. В случае с европейской, Ninebot должен видеть самокат на этапе сканирования и писать "Неподдерживаемая модель". Можно поспрашивать владельцев "нешитых" PRO на этот предмет. Вариант с регионами может даже отпасть. Использование контроллера с SN от PRO ничего не дал. И дамп с другого про BLE 100 тоже. И еще есть некоторые исследования.

Скриншоты неоспоримы, но и Ninebot мог за это время обновиться. Но это все только предположения.


@Zoydberg А когда самокаты подключались, Ninebot предлагал им обновление?

Zoydberg
Участник
КиевRating: 31
Zoydberg
06 september 2019, 8:50
Posted: 06 september 2019, 8:50
[quote="Ed01"]

когда самокаты подключались, Ninebot предлагал им обновление?



[/quote]

Не помню,(

Вчера взял себе Ninebot Max. Он конектится без проблем.

Хотел подключить прошный экран, но коннектор круглый как у ES2(он чуток меньше)

Под рукой рабочего не было (

Ed01
Продвинутый форумчанин
Rating: 567
Ed01
08 september 2019, 4:00
Posted: 08 september 2019, 4:00

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

33232-84.jpg33233-84.jpg

18832 - СN

21886 - EU


Второй параметр - это код модели. Он прописан в обновляемой части прошивки BLE и прилетает вместе с обновлением. Этот код не учитывает деление на европейский и китайский, а определяет только группы:

20 - M365

21 - ESx

22 - PRO

24 - MAX

Код модели можно посмотреть в эфире приложением "nRF Connect" из Play Маркета.

При обновлении прошивки на новые версии с шифрованием, добавляются индикаторы этого. Но сам номер модели остается неизменным. На скринах соответственно BLE 0.90 и 100:

33234-84.jpg33235-84.jpg

При замене кода на модель 21 и 24, самокат становится виден, но не подключается. При 20, подключается как M365.

И только, стандартное для PRO - 22 отбрасывается, еще на этапе сканирования. Причем, фильтр работает автономно. Очистка таблиц user-data не дала результата, xотя туда пишутся данные MiHome и Ninebot.

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

[quote="Zoydberg"]Вчера взял себе Ninebot Max. Он конектится без проблем.[/quote]

Поздравляю )

 2   
Zoydberg
Участник
КиевRating: 31
Zoydberg
10 september 2019, 16:35
Posted: 10 september 2019, 16:35
Ответ пользователю
Zoydberg : 30 august 2019, 12:52
на это сообщение (развернуть)
И ещё вопрос, дабы не плодить темы:Как называется БТ модуль, который установлен в PRO и Ninebot ESx ? Хочу...

И ещё вопрос, дабы не плодить темы:

Как называется БТ модуль, который установлен в PRO и Ninebot ESx ? Хочу заказать

Нашел похожий (приложил фото), но отличается(

Также  на Ninebot Max, используется аналогичный Бт Модуль

Как называется БТ модуль, который припаян к плате.(хочу заказать)

Это фото с Ninebot Max

Ни одно кастомное приложение не цепляется, как узнать версию БЛЕ?

Судя по расположению элементов - это прошный экран +1 светодиод(ассист)


 1   
Ed01
Продвинутый форумчанин
Rating: 567
Ed01
17 september 2019, 2:19
Posted: 17 september 2019, 2:19

Небольшой сводный список на основе темы. Варианты представления BLE-модуля в строке эфира nRF Connect.

Пример 24 02 00 00 00 D9.

1-й байт - код модели. Показывает возможность работы с офф.приложениями.

     20 - M365  Ninebot(CN), MiHome(все)
     21 - ESx      Ninebot
     22 - PRO     MiHome
     24 - MAX    Ninebot
 
2-й байт - тип протокола BT. Дополнительно показывает возможность работы со сторонними приложениями.

     00 - Открытый (BLE 0.72, 0.90). Все приложения работают. Свободная перепрошивка.
     01 - шифрованный MiService (BLE 0.81, 100). Большинство приложений работает. Возможен откат по BT.
     02 - шифрованный MiService+Ninebot (BLE 0.91, PRO 1.6.6, MAX). Приложения не работают. Откат через ST-Linк.

Последний байт (D9) - контрольная сумма (0xFF минус сумма всех байт).

---

Дисплей MAX похож по железу, но в нем другая прошивка и соответственно протокол обмена с контроллером.

 1     1   
1
2