О JK Preset Studio

JK Preset Studio — бесплатный открытый инструмент для тех, кто обслуживает аккумуляторные сборки на платах JK BMS (инверторная серия JK-PB, например JK-PB2A16S20P, и платы B2A на том же протоколе). Он подключается к BMS по Bluetooth прямо из браузера, так что любую настройку можно просмотреть и изменить на компьютере или телефоне с Android без приложения JK. Файлы, экспортированные из приложения JK, тоже поддерживаются.

Прямое подключение по Bluetooth

Браузер общается с BMS через Web Bluetooth по тому же протоколу JK02, что и приложение JK (сервис 0xFFE0, характеристика 0xFFE1). При чтении редактор запрашивает у BMS кадр настроек и кадр сведений об устройстве; вместе они в точности составляют содержимое файла .jkcfg.

AA 55 90 EB reg len  value (u32 LE)  00 × 9  CS   write, 20 bytes
AA 55 90 EB C8 01 01 | 00 | 02  ……            accepted | refused | no such setting

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

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

Web Bluetooth работает в Chrome и Edge на Windows, macOS, ChromeOS и Android по HTTPS. Перед подключением закройте приложение JK: BMS принимает только одно Bluetooth-подключение за раз.

Формат .jkcfg

Файл .jkcfg занимает 600 байт: два 300-байтных кадра Bluetooth-протокола JK02, записанных подряд.

55 AA EB 90 01 xx  ……  settings  ……  CS   bytes 0–299
55 AA EB 90 03 xx  ……  device info …  CS   bytes 300–599

Кадр 1 (тип 0x01) содержит настройки: 32-битные значения little-endian — напряжения в mV, токи в mA, температуры в 0,1 °C, затем сопротивление проводов для каждой ячейки, адрес устройства и битовое поле с переключателями.

Кадр 2 (тип 0x03) содержит сведения об устройстве: модель, версии железа и прошивки, серийный номер, пароли, протоколы связи и таймеры заряда.

Последний байт каждого кадра — контрольная сумма: сумма предыдущих 299 байт по модулю 256. Редактор пересчитывает её при экспорте.

Конфиденциальность

Настройки, прочитанные по Bluetooth, и открытые файлы остаются в вашем браузере: ни загрузки на сервер, ни аккаунта. Список настроек, которых нет в вашей BMS, хранится только в этом браузере с привязкой к серийному номеру BMS. Сайт использует Google Analytics для статистики использования. Без вашего согласия он получает только анонимные пинги без cookies и без идентификатора, а с согласием ещё и использует аналитические cookies, чтобы считать повторные визиты. Что передаётся: просмотры страниц, модель BMS, версия прошивки и химия батареи загруженной конфигурации, получена ли она по Bluetooth или из файла, названия изменённых параметров, коды правил проверки, коды ошибок Bluetooth и действия в интерфейсе (пресеты, запись, скачивание, язык, тема). Никогда не передаются: имена файлов, их содержимое, значения настроек и серийные номера. Свой выбор можно изменить в любой момент.

Отказ от ответственности

Благодарности

Смещения полей основаны на реверс-инжиниринге из проекта syssi/esphome-jk-bms. Рекомендации взяты из руководств JK, даташитов ячеек, Battery University и сообщества DIY Solar; у каждого параметра указаны источники.