Export and Import JK BMS Settings: The .jkcfg File Guide

You can export and import JK BMS settings with the export and import functions in the JK BMS phone app. Export writes a small .jkcfg file with your whole configuration. Import sends it back to the BMS. Keep that file as a backup, and edit it only with a tool that fixes the checksums, such as the JK Preset Studio editor. If you only want to change settings, you can skip the file entirely and write them over Bluetooth from the browser.

What the .jkcfg file is

The file is exactly 600 bytes. It holds two 300-byte frames, the same frames the BMS sends over Bluetooth.

  • Frame 0 holds the settings: voltages, currents, balance, delays, temperatures.
  • Frame 1 holds device information: model, hardware and software version, serial number, device name and the passcode fields.

The last byte of each frame is a checksum. It is the sum of the previous 299 bytes, cut to one byte. If the checksum does not match the data, the file is damaged.

The layout comes from the open-source syssi/esphome-jk-bms project, which documents the JK02_32S protocol. The example file in the JK Preset Studio repository was exported from a JK-PB2A16S20P on firmware 19.26.

Export and import JK BMS settings: back up first

The app's own menu names can differ between versions, so treat these steps as a guide.

  1. Connect to the BMS in the JK BMS app.
  2. Open the settings screen and look for Export and Import entries.
  3. Choose Export and save the file.
  4. Copy it somewhere safe, such as cloud storage or your computer.

Where the file is saved depends on your phone and the app version. Watch for a save or share dialog that lets you pick the location. If you cannot find the file, search the phone for .jkcfg.

Back up before every firmware update and before every big settings change.

Why you should not edit it by hand

A hex editor lets you change any byte, but a file with a wrong checksum is damaged and can be rejected. You would also have to know each field's offset, size and scale. Voltages are stored as integers, for example 3450 for 3.45 V. One wrong byte can turn a limit into nonsense.

The file is binary. A text editor will show garbage and will damage it if you save.

Edit it safely in the browser

  1. Open the editor and drop your .jkcfg file on it. Nothing is uploaded. All work happens in your browser.
  2. Change the values you need. Every parameter has help text and a recommended range.
  3. Read the warnings. The editor checks values against the rules the JK firmware enforces on import, such as OVPR below SOC-100% voltage below RCV.
  4. Optionally start from a ready preset for your chemistry and wear level, then adjust.
  5. Download the result.

The editor patches only the fields you changed onto a copy of your original bytes. Unknown and reserved bytes survive. It then recomputes both checksums. See the parameter reference for every field.

Or skip the file: write over Bluetooth

In Chrome or Edge on a computer or an Android phone, the editor can connect to the BMS directly. Close the JK app, press Connect BMS and pick your BMS. The editor reads the same two frames that make up a .jkcfg file, so everything above works the same way.

When you press Write to BMS, the editor writes one setting at a time, in an order the firmware accepts, and reads the BMS back after every step. There are no step files to import and no guessing which value failed. Settings your model does not have are detected right after connecting and skipped. The Bluetooth guide walks through it.

The file is still the right tool for backups, for Firefox, Safari and iPhone, and for preparing settings before the pack is built.

Import the file back

  1. Copy the edited file to your phone.
  2. Connect to the BMS in the app.
  3. In the settings screen, choose Import and pick the file.
  4. Check the values in the app after it finishes.

The app writes settings one by one, and the firmware checks each one against what the BMS holds at that moment. A file with valid final values can still fail in the middle. That is why the editor may give you several numbered step files. Import them in order, or write over Bluetooth, where the editor handles the order for you. If you see "This parameter does not apply to the connected device. (Sending failure)", read the Sending failure guide.

Use cases

  • Clone to a second pack. Export from the first BMS and import into the second, or open the file and write it to the second BMS over Bluetooth. Check the cell count and model first.
  • Known-good backup. Keep a file from a working setup before a firmware update.
  • Share settings. Send the file to another builder. Remove the passcodes first (see the FAQ).
  • Start from good values. See the LiFePO4 settings guide for typical ranges.

Common mistakes

  • Importing a file on a pack with a different cell count.
  • Importing the final file in one go when the editor gave several steps.
  • Editing bytes by hand and breaking a checksum.
  • Forgetting that the file contains your passcodes.

FAQ

Can I edit the file in a text editor?

No. It is a 600-byte binary file, so a text editor will corrupt it. Use a hex editor only if you can also fix both checksums, or use the browser editor, which does it for you. See also JK BMS parameters explained for what each field does.

Does the file contain my password?

Yes, it can. The device info frame has fields for the device passcode and the setup passcode, each up to 16 characters. Treat the file as private and clear those fields before sharing. More in the password guide.

Will a file from another model import?

Not reliably. The firmware rejects values that do not apply to the connected device, so differences in cell count, current rating or firmware version can cause failures. Some models also lack whole functions: a JK-B2A8S20P on firmware 19.25 has no float voltage, heating or CAN settings. Over Bluetooth the editor finds those gaps right after connecting and skips them. The file format was verified on a JK-PB2A16S20P with firmware 19.26.

Connect your BMS or open your .jkcfg in the editor to check the values before anything is written.

Related guides

All guides