D1 - https://github.com/syssi/esphome-jk-bms
https://youtu.be/cACXBgohrmg?feature=shared
Andy JK BMS settings
https://off-grid-garage.com/my-settings/
jk bms code https://mirofromdiro.github.io/JK-firmware-code/
1251020357
Andy soc 100% https://youtu.be/maTqnSs_XAI?feature=shared
Update BMS - https://youtu.be/NtJ9aUTIWxk?feature=shared
Andy shares detailed configuration settings for his LiFePO₄ battery system, using Victron equipment, JK-BMS, and the VE.Smart Network. Below are his recommended values and how he applies them.
'3.45 V per cell' (≈13.8 V for 4S, ≈55.2 V for 16S)'~1 hour''3.35 V per cell' (≈13.4 V for 4S, ≈53.6 V for 16S)'Float voltage − 0.1 V' (e.g., 13.3 V or 53.5 V)'VE.Smart Network' to synchronize charger and shunt'3.45 V per cell'To detect 100% SOC accurately:
'absorption voltage''tail current' threshold'charge detection time'This ensures the shunt resets SOC to 100% correctly.
| Component | Absorption Voltage | Duration | Float Voltage | Re-bulk Trigger |
|---|---|---|---|---|
| Solar MPPT | 13.8 V | ~1 hour | 13.4 V | 13.3 V |
| BMS (JK/Overkill) | 13.8 V | — | — | — |
| Victron Smart Shunt | auto via MPPT | — | — | — |
To apply this to a 48 V (16S) system, just multiply by 4:
'55.2 V' Absorption'53.6 V' Float'3.45 V/cell absorption' ensures full charge and BMS balancing'Float at 3.35 V/cell' avoids overcharging while keeping the system full'Re-bulk at float minus 0.1 V' ensures charging resumes under load or SOC drop'3.45 V per cell' and ~1 hour duration'3.35 V per cell''−0.1 V''VE.Smart Network / DVCC' between charger, BMS, and shuntLet me know if you want a ready-to-use config file or screenshots for Victron SmartSolar or JK-BMS!
Andy from Off‑Grid‑Garage recommends the following voltage settings for a 12 V (4S) LiFePO₄ battery system. These values can be scaled for larger battery banks.
'13.6 V' (≈ 3.4 V per cell)'13.6 V' (maintains charge without stress)'0.1 V below float' (≈13.5 V)This means:
For a 48 V (16S) LiFePO₄ system:
'54.4 V' (3.4 V × 16)'54.0 V' (≈ 0.1 V per cell lower)| Stage | Voltage | Purpose |
|---|---|---|
| Absorption | 13.6 V (3.4 V/cell) | Bulk charging + cell balancing |
| Float | 13.6 V | Maintain full charge |
| Re-bulk | ~13.5 V | Restart charge when needed |
To apply these values to your specific system, just scale based on the number of cells in series (S).
Below are two ready-to-load profiles:
• Daily / long-life – keeps you at ≈ 90 % usable capacity for maximal cycle life. • Full-capacity / top-balance – run only when you need every last Wh or to re-sync SOC.
| JK menu item (16 s) | Daily / long-life | Full-capacity / top-balance | Why |
|---|---|---|---|
| Cell OVP | 3.55 V | 3.60 V | Below datasheet max 3.65 V, but high enough for 95–98 % SoC |
| Cell OVPR | 3.50 V | 3.55 V | 0.05 V hysteresis prevents relay chatter |
| Pack OVP | 56.8 V | 57.6 V | 16 × cell limit |
| Charge CV (charger / inverter) | 55.2 V (3.45 V / cell) | 56.5 V (3.53 V / cell) | 3.45 V gives longest life |
| Absorption time / tail current | 15–30 min or 0.05 C (≈ 14 A) | Hold until ≤ 0.02 C (≈ 6 A) | Lets 2 A active balancer catch up |
| Float (optional for LFP) | 53.6 V (3.35 V / cell) | Off | Zero-float is fine on solar-only systems |
| Balance-start V | 3.45 V | 3.48 V | Balancer sleeps below this |
| Cell UVP | 2.85 V | 2.70 V | Adds margin above 2.50 V spec limit |
| Cell UVPR | 2.90 V | 2.80 V | 0.05 V hysteresis |
| Pack UVP | 45.6 V | 43.2 V | 16 × cell limit |
| BMS power-off V | 2.70 V | 2.60 V | Leaves a small reserve for the MOSFET driver |
| SOC-100 % reset V | 3.48 V | 3.58 V | Needed for accurate SOC on JK BD-series |
• Daily – leave the inverter/charger at the “Daily” limits for routine cycling (≈ 13–14 kWh usable). • Monthly or after maintenance – switch to “Full-capacity”, let it absorb until tail-current ≤ 0.02 C and balancer quits, then drop back to “Daily”.
• Keep charge/discharge ≤ 0.5 C (≈ 140 A) for longevity, even though the V4 / V5 rack can tolerate short peaks. • Balancing only becomes effective above ≈ 3.45 V / cell. • Verify every sense lead and bus-bar is tight—loose sense wires can spoof the JK-BMS into false OVP trips.
• Cell specs: 3.65 V max / 2.50 V min per LF280K cell. • Longevity studies: best life around 3.45–3.50 V / cell. • JK-BMS best practice: 3.55 V OVP with 0.1 V total hysteresis is the community standard.
These numbers line up with the two battery profiles I gave earlier. Use VE.Configure or VictronConnect → “Inverter/Charger settings” and enter the values exactly. All voltages below are battery-side (48 V nominal).
| Parameter | Daily / long-life | Full-capacity / top-balance | Comment |
|---|---|---|---|
| Battery type / charge algorithm | Lithium (fixed) | idem | Keeps temperature-comp disabled and lets you type manual voltages.  |
| Absorption (Bulk/CV) voltage | 55.20 V (3 .45 V /cell) | 56.50 V (3 .53 V /cell) | Matches JK “Charge CV” in the previous table.  |
| Absorption time (fixed curve) | 0 h 30 m | until tail ≤ 0 .02 C (≈ 6 A) → 2 h max | Lets the 2 A active balancer finish |
| Tail current (% of charger A) | 5 % (≈ 3 A) | 3 % (≈ 2 A) | Charger exits Absorb once current drops below this |
| Float voltage | 53.60 V (3 .35 V /cell) | OFF | LFP can sit at zero-float; leave “Storage mode” OFF |
| Repeated Absorption interval | 7 days | 14 days | Only matters if Float ≠ OFF |
| Charge current limit | 60 A (≤ 0 .22 C) | 70 A (factory max) | Keeps charger heat down; raise only if you have plenty of AC input |
Disable Equalise, Weak-AC, and Bulk-time limit.
| Parameter | Recommended value | Why / relation to BMS |
|---|---|---|
| DC input low shut-down | 45.6 V | 16 × cell UVP (2 .85 V /cell) — same “stop-discharge” point as the JK-BMS |
| DC input low restart | 48.0 V | ≥ 2.4 V above shut-down avoids oscillation  |
| DC input pre-alarm | 47.2 V | Gives ~30 s heads-up before shut-down |
| Low SOC alarm (optional) | 10 % | If you use a Victron SmartShunt |
| AES / ECO Search mode | OFF (for ESS) | LFP voltage is too flat for ECO to work well |
| Output frequency & voltage | 50 Hz / 230 V (EU) | default |
• AC Input current limit – match your feeder breaker: e.g. 25 A for a 6 kW circuit. • Power-Assist – leave ON (default). • UPS mode – leave ON unless your loads can tolerate a short break.
If you bridge the JK-BMS CAN port to VE.Can (or run Node-RED/Can-to-VE.Bus), enable DVCC on the GX device. The JK will then push live max-charge Voltage & Current, overriding the fixed numbers above during faults or cold temps.
• Daily use – keep the charger on the “Daily” voltages. • Once a month – switch to the “Full-capacity” preset, start a Forced Absorption (VE.Configure → “Charger” → Start forced absorption), wait until tail current ≤ 0 .02 C and the JK balancer is quiet, then revert to “Daily”.
⸻
| Parameter | Long-life (≈ 90 % SoC, 3.45 V cell) | Full-capacity (≈ 100 % SoC, 3.60 V cell) | Why it matters |
|---|---|---|---|
| Peak cell voltage | 3.45 V | 3.60 V | Every extra 0.10 V roughly doubles chemical stress, speeding SEI growth and lithium plating |
| Stored energy per cycle (16 × 280 Ah pack) | ≈ 12.6 kWh | 14 kWh | Only ~10 % more energy because LFP’s curve is already flat above 3.45 V |
| Cell expansion & heat | Minimal | Noticeable at the knee | Higher lattice strain at 3.60 V raises internal resistance over time |
| Need for balancing | Monthly | Every cycle | Cells drift mainly when they sit above 3.5 V |
⸻
| Metric (to 80 % state-of-health) | Long-life | Full-capacity | Notes |
|---|---|---|---|
| Laboratory spec @ 0.5 C | — | 6 000 cycles between 2.5–3.65 V | Manufacturer’s published test window |
| Field / fleet data | 8 000–12 000 cycles | 5 000–7 000 cycles | Real-world experience at ≤ 0.5 C |
| Calendar fade after one year @ 25 °C | ~ 2 % (pack idles near 50 % SoC) | 7–10 % (pack parked full) | High-voltage storage accelerates corrosion |
| Main degradation driver | Mechanical stress is low; cycling dominates | Continuous high-SoC corrosion & SEI repair |
⸻
• Long-life profile • 12.6 kWh × ≈ 10 000 cycles ≈ 126 MWh delivered • Full-capacity profile • 14 kWh × ≈ 6 000 cycles ≈ 84 MWh delivered
Limiting the top charge sacrifices ~10 % each cycle but delivers ≈ 50 % more total energy over the pack’s life.
⸻
| If you charge to 3.45 V … | If you charge to 3.60 V … |
|---|---|
| + Best €/kWh over lifetime | + Extra ~1.4 kWh available each day |
| + Less balancing time, cooler operation | – Must absorb longer at high V (more heat) |
| + Pack can last 15–20 years in daily solar use | – Likely replacement after ~10 years under same duty |
| – ~10 % less peak range / autonomy | + SOC gauge resets automatically every cycle |
⸻
• Stay in long-life mode for routine cycling (solar ESS, backup, RV, boat). • Once a month or before a deep discharge • switch charger/BMS to the full-capacity preset, • absorb until tail current ≤ 0.02 C and the JK balancer is quiet, • then revert to long-life settings. • Avoid leaving the pack at 100 % SoC for more than a few hours; high-voltage storage ages LFP faster than cycling.
With this regime your LF280K rack can realistically exceed 100 MWh of delivered energy and still retain > 80 % capacity after a decade—far better than an always-full strategy.