Протокол KT-LCD

Автор Blik86, 30 Апр. 2019 в 01:32

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

0 Пользователи и 1 гость просматривают эту тему.

Blik86

Накидал в EXCEL табличку для расшифровки данных посылаемых KT LCD в контроллер. Возможно, кому то сгодится для программирования KT контроллера без LCD, или каких поделок. В старых excel может понадобится включить функции VBA в сервис/надстройки.
Основу почерпнул здесь: https://opensourceebikefirmware.bitbucket.io/development/Motor_controllers--BMSBattery_S_series--LCD_control_panel--LCD_protocol.html

С описанным в LCD3_to_S12SN-1.txt есть расхождения и дополнения.

Обмен данными KT дисплея и контроллера идет по UART 9600.
Вне зависимости от наличия контроллера дисплей шлет по желтому проводу 13 байт, примерно каждые 105мс Дисплей выключается в случае длительного отсутствия ответа контроллера (около десяти минут).
При получении правильного пакета контроллер шлет ответ по зеленому проводу (непонятную белиберду игнорирует, нет строгой привязки по времени).
Копирование настроек из дисплея в дисплей осуществляется приемом (по зеленому проводу) увеличенного по длине пакета данных. Из-за чего значительное снижение периода выдачи данных самодельным контроллером может приводить к сбитию настроек дисплея.
При удержании кнопки вниз дисплей активирует круиз  выставив на некоторой время соответствующий бит в "1".

LCD>controller CRC = (xor B1,B2,B3,B4,B6,B7,B8,B9,B10,B11)

controller>LCD CRC = (xor B1,B2,B3,B4,B5,B7,B8,B9,B10,B11)

edw123

Цитата: Blik86 от 30 Апр. 2019 в 01:32
Накидал в EXCEL табличку для расшифровки данных посылаемых LCD6 в контроллер. Возможно, кому то сгодится для программирования KT контроллера без LCD, или каких поделок.
Основу почерпнул здесь: https://opensourceebikefirmware.bitbucket.io/development/Motor_controllers--BMSBattery_S_series--LCD_control_panel--LCD_protocol.html

С описанным в LCD3_to_S12SN-1.txt есть расхождения и дополнения.
А пробовали пообмениваться?

Blik86

#2
Дисплей шлет эти пачки примерно каждые 105мс, вне зависимости от наличия контроллера. Контроллер шлет ответ с рассинхронизацией (без  привязки по времени ) примерно с той же частотой.
Подключил контроллер к ноутбуку через usb-uart на CH340 (платка от модуля ESP-8266 Witty). Отправлял пакеты через Terminal. Контроллер отвечает и настройки меняются (вроде даже на ходу). Думаю если блютуз модуль использовать то можно контроллер с мобилы настраивать.



Blik86

Обновил файл: нашел бит активирующий круиз (становится "1" на некоторой время при удержании кнопки вниз), добавил расчет CRC.

Blik86

#4
Набросал 2KTnoLCD.ino (нужно переименовать из тхт и прошить через arduino ide) для модуля Witty Cloud.
Позволяет без KT-LCD и  лазаний по меню ( двумя кнопками) изменять уровень PAS, ограничение батарейного тока, включать свет и сопровождение у двух KT контроллеров (с разными настройками).



nitro263

[user]Blik86[/user], в Вашем изделии используется только порт RX. Почему никак не задействован TX и какую он нагрузку несёт, если знаете?
Полноприводный пепелац на базе CUBE Attention blackngreen 29''. Перед: MXUS MX01; зад: MXUS XF19 (GDR-19); 2 контроллера Mark I; батарея: 48 В, 20,8 А*ч, дисплей LCD8h, работает только с 1 двигателем. Max дальность: 110 км, max скорость: 52 км/ч.

Blik86

Цитата: nitro263 от 01 Авг. 2020 в 08:19Почему никак не задействован TX и какую он нагрузку несёт
По зеленому проводу контроллер отвечает на полученные пакеты. В отсутствии устройств отображения обрабатывать пакеты полученные от контроллера смысла мало, разве что попробовать урезать батарейный ток одного из них в попытке распределить равномерно нагрузку на моторы и синхронизировать обороты . Возможно если дойдут руки до подключения к этой платке KT-LCD (для управления двумя контроллерами, с независимыми настройками, кнопками KT-LCD) заведу в программу обработку и "суммирование" ответов и подсовывание данных с датчиков температуры моторов.

nitro263

[user]Blik86[/user], правильно ли я понял, что по TX дисплей получает и отвечает на запросы со стороны контроллера, а по RX отдаёт команды без обратной связи?
Полноприводный пепелац на базе CUBE Attention blackngreen 29''. Перед: MXUS MX01; зад: MXUS XF19 (GDR-19); 2 контроллера Mark I; батарея: 48 В, 20,8 А*ч, дисплей LCD8h, работает только с 1 двигателем. Max дальность: 110 км, max скорость: 52 км/ч.

Blik86

Цитата: nitro263 от 01 Авг. 2020 в 19:05правильно ли я понял
Нет. По желтому проводу дисплей спамит команды, получая их контроллер шлет ответ по зеленому.

miklelv

#9
Blik86 здравствуйте, можете ли вы пересохранить лист exel в версии 2016, чтобы он работал ?
Может быть программу конфигурации для контроллеров KT написать для windows, было бы удобно
прочитать и записать нужные значения:)

Blik86

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

Viamtu

Здравствуйте. А возможно сделать подобное на arduino nano?

edw123

Цитата: Viamtu от 09 Сен. 2021 в 07:52
Здравствуйте. А возможно сделать подобное на arduino nano?
Да через среду ардуино всё одинаково. Порты-выводы только попереназначать.

Blik86

Цитата: Viamtu от 09 Сен. 2021 в 07:52А возможно сделать подобное на arduino nano?
По моему они не поддерживает SoftwareSerial.h и без приличного уровня в программировании не получится организовать  коммуникацию более чем с одним контроллером (придется использовать единственный аппаратной UART). 

edw123

Цитата: Blik86 от 09 Сен. 2021 в 17:56
По моему они не поддерживает SoftwareSerial.h и без приличного уровня в программировании не получится организовать  коммуникацию более чем с одним контроллером (придется использовать единственный аппаратной UART).
Поддерживают и софт.

user020413

#15
[user]Blik86[/user], Большое спасибо за табличку!
Запрограммировал с помощью нее контроллер KT с наклейкой KT26-60SVPRL-XFC01JI 17-11-16, куплен в 2018г.
Но такой же контроллер, но более старый, KT26-60SVPL-XFC08D6 15-04-01 (куплен в 2015) не отвечает на посылки.
Возможно в нем другой алгоритм подсчета CRC?
На форуме https://endless-sphere.com/forums/viewtopic.php?f=2&t=73471&start=25 пишут об этом различии.
Не могли бы Вы добавить этот алгоритм подсчета в таблицу?

edw123

Цитата: user020413 от 13 Сен. 2021 в 19:03
[user]Blik86[/user], Большое спасибо за табличку!
Запрограммировал с помощью нее контроллер KT ...
С помощью чего програмировали?

user020413

с помощью адаптера CH340G и прогами Terminal1_9_b под виндой и Serial USB Terminal 1.43 для андроид