Configuring a JK BMS for Non-LFP Chemistries: Sodium-Ion, LTO, and NMC
The JK BMS supports profiles beyond LFP — but defaults are set for LFP and will cause problems with sodium-ion or LTO cells. Here's what to change and why.
The JK BMS defaults are set for LFP. If you connect it to sodium-ion or LTO cells without changing the voltage parameters first, it will malfunction immediately — either refusing to charge or disconnecting a pack that still has usable capacity. This comes up in the forum every few weeks from someone who skipped this step. Fix it before first connection.
Chemistry-Specific Voltage Parameters
| Chemistry | Voltage Range | Nominal | Low-Voltage Protection | High-Voltage Cutoff |
|---|---|---|---|---|
| LFP (default) | 2.5V – 3.65V | 3.2V | 2.5V | 3.65V |
| LTO (lithium titanate) | 1.5V – 2.8V | 2.4V | 1.8V | 2.85V |
| Sodium-ion (hard carbon / layered oxide) | 2.0V – 4.0V | 3.0V | 2.2V | 4.05V |
| NMC | 2.5V – 4.2V | 3.6V | 2.8V | 4.2V |
Get these right before powering up. Balancing activation voltage and SoC estimation also need chemistry-specific adjustment. The SoC issue is worst with sodium-ion: its voltage curve is steeper than LFP's flat discharge, so the default SoC calculation reports garbage until recalibrated. A JK BMS firmware update from earlier this year added a pre-configured sodium-ion profile that handles this correctly — confirm you're on current firmware before programming a sodium-ion pack. Community-verified parameter sets for each chemistry are in the forum's BMS configuration thread.
External Monitoring: Set It Up
The official JK app shows live data but doesn't log it over time in any useful way. For non-LFP builds where you're operating in less-charted territory than standard LFP, you want long-term per-cell voltage history to catch early divergence before it becomes a problem. The jkbms Python library on GitHub reads cell voltages, temperatures, current, SoC, and cycle count via Bluetooth and integrates with Home Assistant and MQTT. Read-only — it won't change BMS settings — but it gives you the degradation history the official app never will. For a first sodium-ion or LTO build especially, set this up. You'll want the data.