About JK Preset Studio
JK Preset Studio is a free, open tool for people who maintain battery banks built on JK BMS boards (the JK-PB inverter series such as JK-PB2A16S20P, and B2A boards on the same protocol). It connects to the BMS over Bluetooth straight from the browser, so you can review and change every setting on a computer or an Android phone without the JK app. Files exported from the JK app work too.
Direct connection over Bluetooth
The browser talks to the BMS through Web Bluetooth with the same JK02 protocol the JK app uses (service 0xFFE0, characteristic 0xFFE1). Reading asks the BMS for its settings frame and its device information frame; together they are exactly the content of a .jkcfg file.
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
Changes are written one setting at a time. The firmware checks every value against what it holds at that moment, so the editor splits your changes into steps that are accepted in any order and reads the BMS back after each step.
The BMS answers every write: accepted, refused because the value clashes with another setting, or refused because the model has no such setting. Right after connecting, the editor writes the current value of each optional setting back to learn which ones your BMS has; nothing changes. The result is kept in this browser for that BMS.
Web Bluetooth works in Chrome and Edge on Windows, macOS, ChromeOS and Android over HTTPS. Close the JK app before connecting: the BMS accepts only one Bluetooth connection at a time.
The .jkcfg format
A .jkcfg file is 600 bytes: two 300-byte frames of the JK02 Bluetooth protocol stored back to back.
55 AA EB 90 01 xx …… settings …… CS bytes 0–299 55 AA EB 90 03 xx …… device info … CS bytes 300–599
Frame 1 (type 0x01) holds the settings: little-endian 32-bit values for voltages in mV, currents in mA, temperatures in 0.1 °C, followed by per-cell wire resistance, the device address and a bit field with switches.
Frame 2 (type 0x03) holds the device information: model, hardware and firmware version, serial number, passwords, communication protocols and charging timers.
The last byte of each frame is a checksum: the sum of the previous 299 bytes modulo 256. The editor recomputes it on export.
Privacy
Settings read over Bluetooth and files you open stay in your browser: there is no upload and no account. The list of settings your BMS does not have is stored only in this browser, keyed by the BMS serial number. The site uses Google Analytics for usage statistics. Without your consent it only receives cookieless anonymous pings (no cookies, no identifier); with your consent it also uses analytics cookies to count returning visits. What is sent: page views, the BMS model, firmware version and battery chemistry of a loaded configuration, whether it came over Bluetooth or from a file, the names of changed parameters, validation rule codes, Bluetooth error codes and interface actions (presets, writes, downloads, language, theme). Never sent: file names, file contents, setting values and serial numbers. You can change your choice at any time.
Disclaimer
Credits
Field offsets are based on the reverse-engineering work in syssi/esphome-jk-bms. Recommendations come from JK manuals, cell datasheets, Battery University and the DIY Solar community; every parameter lists its sources.