Table of Contents

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

jk-bms voltage parameters

https://community.victronenergy.com/t/where-is-the-jk-bms-cvl-value-originating-from/33010/10

Andy reomnedation charging

https://www.youtube.com/watch?v=OpEQ4fV7-ZU

55.2volt

53.6 float

🔌 How Andy (Off-Grid-Garage) Configures His LiFePO₄ Charging

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.

⚙️ Victron Solar Charge Controller Settings

🔋 BMS Configuration (e.g. JK-BMS, Overkill BMS)

📊 Victron Smart Shunt Configuration

To detect 100% SOC accurately:

  1. Battery must reach 'absorption voltage'
  2. Current must fall below the 'tail current' threshold
  3. Voltage and current must meet conditions for a set 'charge detection time'

This ensures the shunt resets SOC to 100% correctly.

🛠️ Configuration Summary Table (for 4S system)

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:

🧭 Why These Values?

💡 Implementation Steps

  1. Set absorption to '3.45 V per cell' and ~1 hour duration
  2. Set float to '3.35 V per cell'
  3. In Victron Expert Settings, set re-bulk trigger to '−0.1 V'
  4. Enable 'VE.Smart Network / DVCC' between charger, BMS, and shunt
  5. Configure Smart Shunt charge detection:
    1. Absorption voltage threshold
    2. Tail current threshold
    3. Charge detection duration
  6. Scale voltages to match total series cell count

Let me know if you want a ready-to-use config file or screenshots for Victron SmartSolar or JK-BMS!

LiFePO₄ Charge Voltages Recommended by Andy (Off-Grid-Garage)

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.

This means:

🔋 Why These Voltages?

📏 Scaling to Larger Packs

For a 48 V (16S) LiFePO₄ system:

✅ Summary Table

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).

JK SoC calculation 100%

Voltage-related settings for EEL V4 / V5 racks (JK-BMS 16 s, EVE LF280K)

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

How to use the two profiles

•	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”.

Temperature & current reminders

•	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.

Why these numbers?

•	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.

Victron MultiPlus-II 48/5000 (70 A charger) — recommended menu values for a 16 × EVE LF280K rack on a JK-BMS

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).

1 · Charger tab

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.

2 · Inverter tab

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

3 · General tab

•	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.

4 · DVCC / BMS integration (optional but ideal)

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.

5 · Workflow

•	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”.

Long-life vs. full-capacity charging — what it really means for an LF280K pack

1. What changes between the two profiles?

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

2. Cycle-life & calendar-life impact

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

3. Lifetime energy you actually get

•	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.

4. Practical trade-offs

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.