Site Tools


en:tech:jkbmscan

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:tech:jkbmscan [2024/05/12 06:20] – [Software] bullaren:tech:jkbmscan [2024/05/18 04:52] (current) – [Software] bullar
Line 3: Line 3:
 ===== Motivation ===== ===== Motivation =====
  
-Part of the [[en:tech:solarvilla|Solar System]] is the battery management system (BMS). In my case I used a Chinese company [[https://www.jkbms.com|JKBMS]] that has made a name for itself online. One drawback was the missing link between BMS and inverter. So that the inverter can only estimate the charge level for instance. The following project closes the gap.+Part of the [[en:tech:solarvilla|Solar System]] is the battery management system (BMS). In my case I used a Chinese company [[https://www.jkbms.com|JKBMS]] that has made a name for itself online. One drawback was the missing link between BMS and inverter. Without this link the inverter can only estimate the battery charge level for instance. The following project closed the gap.
  
  
Line 10: Line 10:
 ==== INVERTER ==== ==== INVERTER ====
  
-In order to allow two systems to talk to each other we have to find a compatible protocol or adapt one side to fit to the other. The inverter [[https://www.ginverter.com|GROWATT]] SPF5000ES from my [[en:tech:solarvilla|Solar System]] supports RS485 and CAN. +In order to allow two systems to talk to each other we have to find a compatible protocol or adapt one side to fit to the other. The inverter [[https://www.ginverter.com|GROWATT]] SPF5000ES from my [[en:tech:solarvilla|Solar System]] supports RS485 and CAN protocols
  
 <WRAP group> <WRAP group>
Line 21: Line 21:
 </WRAP> </WRAP>
  
-Unfortunately the battery manufacturer use own proprietary protocols. At least the protocol from {{https://en.pylontech.com.cn|PYLONTECH}} can be easily found in the internet (see [[en:tech:jkbmscan#downloads|download area]]). For GROWATT it's the protocol setup ''CAN L52 (Protocol)''+Unfortunately the battery manufacturer use own proprietary protocols. At least the protocol from [[https://en.pylontech.com.cn|PYLONTECH]] can be easily found in the internet (see [[en:tech:jkbmscan#downloads|download area]]). For GROWATT it's the protocol setup ''CAN L52 (Protocol)''
  
 ==== BMS ==== ==== BMS ====
Line 38: Line 38:
 A lot of clever makers have already challenged this task. A lot of clever makers have already challenged this task.
 Here an incomplete list: Here an incomplete list:
-  * {{https://github.com/Uksa007/esphome-jk-bms-can|esphome-jk-bms-can}} +  * [[https://github.com/Uksa007/esphome-jk-bms-can|esphome-jk-bms-can]] 
-  * {{https://github.com/syssi/esphome-jk-bms|esphome-jk-bms}} +  * [[https://github.com/syssi/esphome-jk-bms|esphome-jk-bms]] 
-  * {{https://github.com/Sleeper85/esphome-jk-bms-can|JK-BMS-CAN}} +  * [[https://github.com/Sleeper85/esphome-jk-bms-can|JK-BMS-CAN]] 
-  * {{https://github.com/ArminJo/JK-BMSToPylontechCAN|Arduino JK-BMS To Pylontech CAN Protocol Converter}} +  * [[https://github.com/ArminJo/JK-BMSToPylontechCAN|Arduino JK-BMS To Pylontech CAN Protocol Converter]] 
-  * {{https://github.com/maxx-ukoo/jk-bms2pylontech|JKBMS to Pylontech protocol converter}}+  * [[https://github.com/maxx-ukoo/jk-bms2pylontech|JKBMS to Pylontech protocol converter]]
  
-As I use {{https://www.home-assistant.io Home Assistant|Home Assistant}} for my home automation I preferred a {{https://esphome.io|ESPHome}} solution from {{https://github.com/Sleeper85/esphome-jk-bms-can|Sleeper85}}. But because I am an enthusiast of compact solutions I designed my own PCB and housing.+As I use [[https://www.home-assistant.io Home Assistant|Home Assistant]] for my home automation I preferred a [[https://esphome.io|ESPHome]] solution from [[https://github.com/Sleeper85/esphome-jk-bms-can|Sleeper85]]. But because I am an enthusiast of compact solutions I designed my own PCB and case.
 ===== Hardware ===== ===== Hardware =====
  
Line 63: Line 63:
 </code> </code>
  
-The converter should be always powered (as the BMS) to avoid dead locks. +The converter should be always powered (as the BMS) to avoid dead locks. Therefore I like to use VBAT as power source
-The power supply is based on a XL7015 Buck DC to DC Converter (0.8A 150KHz 80V) from {{https://www.xlsemi.com|XLSEMI}}. The 5V output voltage can be defined by two resistors (R1/R2). The CAN interface is implemented by well-known TJA1050 from {{https://www.nxp.com/docs/en/data-sheet/TJA1050.pdf|NXP}} and a standard RJ45 plug. The heart of the converter is a 38-pin ESP32-DEVKIT.+The power supply is based on a XL7015 Buck DC to DC Converter (0.8A 150KHz 80V) from [[https://www.xlsemi.com|XLSEMI]]. The 5V output voltage can be defined by two resistors (R1/R2). The CAN interface is implemented by well-known TJA1050 from [[https://www.nxp.com/docs/en/data-sheet/TJA1050.pdf|NXP]] and a standard RJ45 plug. The heart of the converter is a 38-pin ESP32-DEVKIT.
  
 <WRAP group> <WRAP group>
Line 75: Line 75:
 </WRAP> </WRAP>
  
-The final module in 3D-printed case. The corresponding STL file is also attached in [[en:tech:jkbmscan#downloads|download area]].+The final module in my 3D-printed case. The corresponding STL file is also attached in [[en:tech:jkbmscan#downloads|download area]].
  
 {{ :en:tech:jk-bms-can-all.jpg?direct&400 |The final module}} {{ :en:tech:jk-bms-can-all.jpg?direct&400 |The final module}}
Line 81: Line 81:
 ===== Software ===== ===== Software =====
  
-As mentioned the software is based on {{https://esphome.io|ESPHome}}. I did only some slight modifications at the CAN protocol data.+As mentioned the software is based on [[https://github.com/Sleeper85/esphome-jk-bms-can|ESPHome JK-BMS-CAN]]. I did only some slight modifications at the CAN protocol data.
  
-<file YAML>+++++ jk-bms-can.yaml | 
 +<file YAML jk-bms-can.yaml>
 JK-BMS-CAN ( PYLON, Seplos, GoodWe, SMA and Victron CAN bus protocol ) JK-BMS-CAN ( PYLON, Seplos, GoodWe, SMA and Victron CAN bus protocol )
  
Line 1373: Line 1374:
  
 </file> </file>
 +++++
 ===== Conclusion ===== ===== Conclusion =====
  
Line 1390: Line 1392:
    * [[https://www.home-assistant.io]] Home Assistant    * [[https://www.home-assistant.io]] Home Assistant
    * [[https://esphome.io]] ESPHome    * [[https://esphome.io]] ESPHome
-   * [[https://airbnb.com/h/villarollokohsamui]] You can spend your holidays with us...+   * [[https://airbnb.com/h/villarollokohsamui]] You can spend your holidays at our home in Thailand...
  
 ===== Donate ===== ===== Donate =====
en/tech/jkbmscan.1715494819.txt.gz · Last modified: 2024/05/12 06:20 by bullar