avatar_13_chip_13

Замена или модернизация TF-100

Автор 13_chip_13, 18 Март 2020 в 16:33

« назад - далее »

rokat и 1 гость просматривают эту тему.

13_chip_13

В шапку переношу самое главное из темы.

Идея следующая: поставить дисплей-курок типа как на  G-booster и написать прошивку для него чтобы работало с текущим контроллером мотора или написать прошивку для TF-100 с некоторыми доп опциями (например с теми же настройками момента<->положения курка). Но чтобы заморочиться нужен протокол обмена и донорский дисплей?
Да и вообще тема кому-то интересна?


B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19
0114010205801E5A00010564000C0000000005BE


B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19
0114010205801E5A00010564000C0000016605D9


B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19
0114010205801E005A010564000C0000000005BE


Байт0 - начало посылки

Байт1 - 

Байт2 -

Байт3 -

Байт4 - скорость

Байт5 -   6-й бит если установлен то нулевой старт включен, 5-й бит это признак включённого света (когда mode зажать появляется синий значок света на индикаторе)

Байт6 - количество полюсов ротора (все пишут количество магнитов, но я думаю это верно только для машин где полюс состоит из одного магнита)

Байт7, Байт8 - диаметр колеса

Байт9

Байт10

Байт11

Байт12

Байт13

Байт14

Байт15

Байт16, Байт17 - значение задания с курка

Байт18

Байт19 - CRC




B0B1B2B3B4B5B6B7B8B9B10B11B12B13
020E01002000000000000000002D
020E01000000000300AA000000A4
020E01000000000100AA000000A6


Байт0 - начало посылки

Байт1 -

Байт2 -

Байт3 -

Байт4 -

Байт5 - 

Байт6 -

Байт7 - ток потребления контроллером мотора.

Байт8, Байт9 - значение  периода вращения колеса 

Байт10

Байт11

Байт12

Байт13 - CRC.

13_chip_13

#1
В общем пока снял логи передачи от TF-100 к контроллеру мотора. Пока не в втыкну что к чему, логи после того как включил TF-100 и ничего больше не трогал. Кстати снимал телефоном, удобно, ноут таскать не надо  :-). Выяснил что логи сняты неправильно, удаляю.

Sonar

[user]13_chip_13[/user], где начало пакета? Какие настройки выставлены и что показывает дисплей в момент снятия логов? По хорошему бы выкладывать посылку (пакет) с расшифровкой того, что было сделано в плане управления. Например нажат курок или изменена какая-то настройка.
Kugoo S2 blue, 36v 20,8A/h, 2x600W, Prog disp v3.8, Prog drive v1.9 odo: 26174km.
Все материалы по альтернативным контроллерам для Kugoo S2: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

vlad-2015

Неверные настройки интерфейса. Скорее всего неверно выбран битрейт.
Kugoo S2 10S3P (6470 км)
У меня нет решения. Но я восхищен красотой проблемы.

Виталий40

Цитата: 13_chip_13 от 18 Март 2020 в 16:33
Идея следующая: поставить дисплей-курок типа как на  G-booster и написать прошивку для него чтобы работало с текущим контроллером мотора или написать прошивку для TF-100 с некоторыми доп опциями (например с теми же настройками момента<->положения курка). Но чтобы заморочиться нужен протокол обмена и донорский дисплей (покупать его ради этого не хочеться) может есть вариант купить поломаный?
Да и вообще тема кому-то интересна?
не проще купить LH-100 который имеет 20  настроек и поставить его? меняешь распиновку разьема на правильную и все работает
https://www.youtube.com/watch?v=tXlPIR3u2NQ
1:Kugoo M2 2019 18 а.ч 48в 350ватт установ. зеркало LH-100,мотор с датчиками холла,сигнализация
2:Kugoo MaxSpeed 18 а.ч 52в 600ватт уст. зерк.LH-100 Сигнализация
3:Электровелосипед Custom: 500ватт 52в 16а.ч уст.зеркала  пов,сигнализация

13_chip_13

#5
Sonar, ну я собственно и хотел чтобы с этим помогли.
vlad-2015, посмотрел настройки офигел - стояло 19200, а не 9600 сам не знаю как так получилось, видимо по сенсору пальцем не туда куда то попал, вот и минус сниферить с телефона. Спасибо за наводку.
Виталий40 без комментариев.

Думаю вообще курок с вольтметром только поставить, а TF-100 вообще на полку кинуть и всё ;-D, остальные параметры мне особо и ненужны, ну да ладно это пока мыли вслух.

В принципе за часик времени всё что можно было снял и разложил, пример посылки (всё в HEX):
От TF-100 -> контроллеру мотора
Курок отпущен:

B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19
0114010205801E5A00010564000C0000000005BE
Курок полностью нажат на первой скорости:

B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19
0114010205801E5A00010564000C0000016605D9
Курок в отпущен, но после сохранения настройки диаметр колеса 7 и 8 биты меняются бывает, какой то глюк наверное прошивки или я чего то не догоняю:

B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19
0114010205801E005A010564000C0000000005BE


Байт0 - начало посылки

Байт1 - возможно количество байт в посылке (считать все байты от 0 до 19)

Байт2 - может быть как то связано с опознаванием версии протокола, нужен курок где можно выбирать протокол передачи чтобы исследовать

Байт3 - может быть как то связано с опознаванием версии протокола, нужен курок где можно выбирать протокол передачи чтобы исследовать

Байт4 - скорость (0x5 - 1-я скорость, 0xA - 2-я скорость, 0xF - 3-я скорость), возможно скоростей можно задавать 16 штук по младшим 4-м битам, но нужно проверять, величина передаётся скорее всего просто так либо у неё другое назначение, для текущего контроллера мотора она не используется, все расчёты с этой величиной внутри TF-100

Байт5 -   6-й бит если установлен то нулевой старт включен, 5-й бит это признак включённого света (когда mode зажать появляется синий значок света на индикаторе)

Байт6 - количество полюсов ротора (все пишут количество магнитов, но я думаю это верно только для машин где полюс состоит из одного магнита)

Байт7, Байт8 - диаметр колеса в дюймах с фиксированной точкой (если значение до переполнения то нулём может быть как 7 так и 8 байты, если диаметр больше 25.5 то в 7 байте старшая часть, в 8 - младшая), величина передаётся просто так, для текущего контроллера мотора она не используется, все расчёты с этой величиной внутри TF-100

Байт9

Байт10

Байт11 - возможно ограничение скорости (предположение по описанию из других протоколов), но этот параметр в текущей конфигурации ни на что не влияет

Байт12

Байт13

Байт14

Байт15

Байт16, Байт17 - значение задания с курка, опытным путём выяснил что имеет диапазон 0-991 dec (наверное 1000 предел всё таки и это очень похоже на задание скважности ШИМ с точностью 0,1%) (посылал значения до 1500 - результата по более интенсивному ускорению на холостую не наблюдал), выбранная скорость только меняет предел задания с курка (что то типо на первой скорости 0-381 и т.п.)

Байт18

Байт19 - CRC8 по методу XOR между всеми байтами посылки (от 0 до 18).
От контроллера мотора ->TF-100



B0B1B2B3B4B5B6B7B8B9B10B11B12B13
020E01002000000000000000002D
020E01000000000300AA000000A4
020E01000000000100AA000000A6


Байт0 - начало посылки

Байт1 - возможно количество байт в посылке (считать все байты от 0 до 13)

Байт2 -

Байт3 - бит 6 отображает E001 на TF-100, бит 4 - Е003, бит 3 - Е005

Байт4 - 5-й бит это статус концевика тормоза, 4-й бит устанавливается если оборвать связь с дисплеем (возможно ошибка потери связи) - Е007

Байт5 - 

Байт6 -

Байт7 - в общем на выбеге колеса здесь нули (когда курок отпущен), значения максимум до 0x15 плящут, что косвенно указывает на ток потребления (0-21 А), хотя в свете информации о том что новый курок TF-100 умеет показывать ток с точностью 0,1 ампер, возможно это токи 0-2,1 ампер мне на холостую в пике удалось получить, в общем нужно проверять в движении

Байт8, Байт9 - значение  периода вращения колеса  очень похоже на единицы измерения мс, обнуляется если колесо стоит на месте

Байт10

Байт11

Байт12

Байт13 - CRC8 по методу XOR между всеми байтами посылки (от 0 до 12).
Еще выяснил что ограничение мощности в TF-100 (параметр Р15) это тупо ограничение задания по курку пропорционально для каждой скорости, т.е. для контроллера мотора это значение не используется.
Также рекуперация включается после того как концевик тормоза срабатывает, возможно в протоколе есть заданный уровень рекуперации, но на холостую этого не увидел меняя задания по неизвестным байтам.

13_chip_13

#6
Запилил немного видео, о результатах, в принципе этого достаточно чтобы сделать свой или адаптировать другой курок. На видео не попало, но также делал и с самим дисплеем, в итоге выяснил некоторые ошибки которые индицируются при тех или иных битах в посылке, значение тока не при каких посылках не менялось (это или вообще невозможно или нужно иметь описание протокола от разработчика, долго и нужно ковырять).
https://www.youtube.com/watch?v=gB9iaPNKLXw

Toxrq

Очень интересна эта тема, как раз имею М4 PRO.  :wow:

dstasv

Цитата: 13_chip_13 от 26 Март 2020 в 09:06Думаю вообще курок с вольтметром только поставить, а TF-100 вообще на полку кинуть и всё

Ну тогда не надо делать такого титанического труда как разбираться с протоколом.

Но за описание протокола огромное спасибо!

sergo842

Цитата: Toxrq от 30 Март 2020 в 13:43Очень интересна эта тема, как раз имею М4 PRO. 
И я его имею, а может и он меня, пока до конца , не разобрались в отношениях, но возит...

Toxrq

Цитата: sergo842 от 30 Март 2020 в 19:39а может и он меня, пока до конца , не разобрались в отношениях, но возит...
Ну каждому свое, меня только возит, провез уже 800км. Может, позже проблемы начнутся.
Проблем и с тф-100 нет, кроме сброса одометра (в меню настроек норм показывает).
Я почти всю тему прочёл М4 ПРО 16Аh,к некоторым проблемам сразу приложил подорожник, может по этому нет сейчас.

13_chip_13

#11
Цитата: dstasv от 30 Март 2020 в 19:26
Ну тогда не надо делать такого титанического труда как разбираться с протоколом.

Но за описание протокола огромное спасибо!
Вроде не сложно было (главное начать, я бы даже сказал - это самое лёгкое в этой затее.), в целом день возни, если бы только этим занимался , а ну и день чтобы накодить софтинку для управления с ноута ( ну это было необязательно, да и была кой какая заготовка с другого проекта, достаточно было стандартных сниферов). Да и как по другому сделать без замены контроллера мотора (гавно и палки не предлагать), чтобы например задание с курка работало нормально, а не включить/выключить (нет конечно плавная регулировка там есть, но она в таком узком диапазоне положения курка, что нормально этим управлять невозможно когда по кочкам едешь). Ну и как бонусом можно получить данные потребляемого тока, тоже можно использовать в управлении. Да и вообще занимаюсь приводом SRM и мощности у меня совсем не такие детские:), интересно посмотреть было что тут китайцы используют, может пригодиться.

dstasv

Цитата: 13_chip_13 от 30 Март 2020 в 23:28
Вроде не сложно было (главное начать, я бы даже сказал - это самое лёгкое в этой затее.), в целом день возни, если бы только этим занимался , а ну и день чтобы накодить софтинку для управления с ноута ( ну это было необязательно, да и была кой какая заготовка с другого проекта, достаточно было стандартных сниферов). Да и как по другому сделать без замены контроллера мотора (гавно и палки не предлагать), чтобы например задание с курка работало нормально, а не включить/выключить (нет конечно плавная регулировка там есть, но она в таком узком диапазоне положения курка, что нормально этим управлять невозможно когда по кочкам едешь). Ну и как бонусом можно получить данные потребляемого тока, тоже можно использовать в управлении. Да и вообще занимаюсь приводом SRM и мощности у меня совсем не такие детские:), интересно посмотреть было что тут китайцы используют, может пригодиться.

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

sergo842

Цитата: dstasv от 31 Март 2020 в 20:06Ну подключить к Вашему контроллеру обычный курок, а тф100 убрать на полку должно получится.
Надо просто вывести разъем для подключения курка из  контроллера.
Все просты, как лисопеды, не хрена не получится с подобной затеи, на полку пойдет не только курок, но и контроллер в придачу.     Все это добро не пропадет конечно, востребовано на рынке, а вот что в замен воткнуть, вопрос?
        Самое интересное, подобрать под нашу деку в размере, она не резиновая, как выяснилось со временем.

dstasv

Цитата: sergo842 от 31 Март 2020 в 20:44
             Все просты, как лисопеды, не хрена не получится с подобной затеи, на полку пойдет не только курок, но и контроллер в придачу.     Все это добро не пропадет конечно, востребовано на рынке, а вот что в замен воткнуть, вопрос?
        Самое интересное, подобрать под нашу деку в размере, она не резиновая, как выяснилось со временем.
Если у тебя навернется экрана,а контроллер живой, не торопись выкидывать контроллер его можно запустить без экрана.
Точнее экран можно и сохранить, а вот управлять аналогом, а не цифрой.
По крайней мере контроллер от куги М2 2019г с экраном jх169 может и без экрана управлятся обычным курком/ручкой
Ваш надо попробовать скорее всего тоже заработает.

dstasv

[user]13_chip_13[/user], А при включении экран в контроллер или контроллер в экран расширенного пакета не кидает?

13_chip_13

Цитата: dstasv от 31 Март 2020 в 21:24
Если у тебя навернется экрана,а контроллер живой, не торопись выкидывать контроллер его можно запустить без экрана.
Точнее экран можно и сохранить, а вот управлять аналогом, а не цифрой.
По крайней мере контроллер от куги М2 2019г с экраном jх169 может и без экрана управлятся обычным курком/ручкой
Ваш надо попробовать скорее всего тоже заработает.
Даже если и получиться, получаем те же грабли, вкл/выкл и никакой плавности, я понимаю зачем так сделано, но мне так не нравиться, хочу как в машине на коробке автомат и медленно плавно ездить и быстро нормально ездить давя только на один орган управления ( :-) как то прозвучало странно).

13_chip_13

Цитата: dstasv от 01 Апр. 2020 в 23:23
[user]13_chip_13[/user], А при включении экран в контроллер или контроллер в экран расширенного пакета не кидает?
Куда ж еще " расширенней "  :-). Ну а по делу при включении дисплея сразу по логу фреймы идут все одинаковые, дальше второго уже не смотрел, но думаю одинаково будет. Тоже самое и с контроллером мотора. Единственно что меня удивило передача не запрос-ответ, а каждый сам шпарит со своими таймингами, хотя если смотреть одновременно и RX и TX линии возможно там переключается на запрос-ответ, но работает и когда каждый сам по себе шлёт, у меня так софтина работает (лень было делать с ожиданиями), осциллографом смотрел, пауза между передачами от курка 40мс, от контроллера мотора непомню, но помоему больше в раза в 2-4.
Может там есть какие то еще служебные сообщения, но нужно знать протокол чтобы их запрашивать, ну или долго и нужно сидеть и ..... на логер.