• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

YamBMS JK-BMS-CAN with new Cut-Off Charging Logic (open-source)

2) Regarding the timers, seeing the countdown would be something complicated to do, if I take a 60s counter it would be necessary to cut it into 60 1s counters and update a sensor between each delay.
Is it possible to have an entity for each battery that will receive a pulse when the counter starts?
 
Hi, I have a problem compiling Lilygo t-can485.

can some help me?

INFO ESPHome 2025.2.2
INFO Reading configuration /config/esphome/yambms.yaml...
INFO Updating https://github.com/Sleeper85/esphome-components.git@main
INFO Detected timezone 'Europe/Berlin'
Failed config

light.esp32_rmt_led_strip: [source /config/esphome/packages/board/board_ESP32_LilyGo-T-CAN485.yaml:76]
platform: esp32_rmt_led_strip
id: esp_light
rgb_order: GRB
pin: 4
num_leds: 1

This feature is not available for the IDF framework version 5.
rmt_channel: 0
chipset: ws2812
entity_category: config
default_transition_length: 0ms

I confirm this issue with the latest version of esphome.
This does not only affect LilyGo T-CAN485 but all boards equipped with an RGB LED like Atom S3 Lite or ESP32-S3 DevKitC-1 etc.

1741811563466.png

As a quick fix, edit your board.yaml file and comment out the rmt_channel line, which is now an Arduino-only option.

I still need to assess the impact of this change (for those still using ESP-IDF 4) before releasing a new version.

1741811791271.png
 
I confirm this issue with the latest version of esphome.
This does not only affect LilyGo T-CAN485 but all boards equipped with an RGB LED like Atom S3 Lite or ESP32-S3 DevKitC-1 etc.

View attachment 284425

As a quick fix, edit your board.yaml file and comment out the rmt_channel line, which is now an Arduino-only option.

I still need to assess the impact of this change (for those still using ESP-IDF 4) before releasing a new version.

View attachment 284427

Fixed and published on GitHub.
 
Hi, I got it running so far after flashing. But if i pull the power cable and start it again it does not boot normaly. It just show this. After flashing again it starts working as it should do. What`s wrong? I'am using LILYGO Tcan. Screenshot 2025-03-13 181918.jpg


This is after flashing Screenshot 2025-03-13 182709.jpg
 
Last edited:
@netsioux

Please read the doc.

I haven't encountered any problems with T-CAN485 in my last tests.

I noticed that your WiFi signal is not good, which can cause reboots.

I've never had a problem with memory loss after a reboot and having to re-flash, but I've read it several times.

That said, I don't use HA esphome addon to flash my ESP32, I do it from my laptop running Linux.
 
Last edited:
OK, I dont understand it at all. But I compiled it with ESPHome builder in HA. Then download it and flashed it with the esphome web flasher tool and now it works.:)
 
Last edited:
Hi.

I've been playing around with installing YamBMS on an ESP32-C3_ETH01-EVO board for a while now.
Since my battery is in a place where WiFi reception is very poor, Ethernet connection is crucial (and POE as an added bonus).
I actually found this board not to be as user-friendly as I expected - mainly because I can't use OTA firmware updates (or maybe someone knows how to get this board to accept OTA from esphome)

So I searched Aliexpress for boards with Ethernet (and POE) support and found ESP32-S3-POE-ETH - I assume it's a waveshare clone.
It has a lot of exposed GPIOs, so plenty of room for expansion.
I'm using this board with isolated M5Stack CAN and RS485 accesorries - for connectivity with 2xPB2A16S20P

I've been using this setup for over two weeks now and I can definitely recommend this board for YamBMS when Ethernet connectivity is needed.
One thing that I can't figure out is obroard RGB LED. Maybe someone more experienced with eshome will figure this out.

For anyone who wants to use the same board, I have included a ready-to-use yaml file (rename txt to yaml) that should be placed in the YamBMS /packages/board directory.
Also add this additional entry in the board selection section of the main YamBMS yaml file:
packages:
############### >>> UNCOMMENT YOUR BOARD <<< ###############

# This list is incomplete, other board.yaml are available in the board folder

# device_board: !include packages/board/board_ESP32_Generic.yaml
# device_board: !include packages/board/board_ESP32_DevKit-V1.yaml
# device_board: !include packages/board/board_ESP32_LilyGo-T-CAN485.yaml
# device_board: !include packages/board/board_ESP32-C3_ETH01-EVO.yaml
# device_board: !include packages/board/board_ESP32-S3_DevKitC-1.yaml
# device_board: !include packages/board/board_ESP32-S3_LilyGo-T-Connect.yaml
device_board: !include packages/board/board_ESP32-S3-POE-ETH.yaml
This way any yaml updates from github shoud be easier.
 

Attachments

If I have my rebulk threshold set to 53.3V, it switches to bulk at 53.15V. If I have it set to 53V, then it switches at 52.85V. Is this 0.15V offset expected? I also notice that with the charge voltage set to 55.2V, it charges to 55.4V.

FWIW my BMS generally reads about 0.2V higher than the inverter.
 
Last edited:
Hi.

I've been playing around with installing YamBMS on an ESP32-C3_ETH01-EVO board for a while now.
Since my battery is in a place where WiFi reception is very poor, Ethernet connection is crucial (and POE as an added bonus).
I actually found this board not to be as user-friendly as I expected - mainly because I can't use OTA firmware updates (or maybe someone knows how to get this board to accept OTA from esphome)

So I searched Aliexpress for boards with Ethernet (and POE) support and found ESP32-S3-POE-ETH - I assume it's a waveshare clone.
It has a lot of exposed GPIOs, so plenty of room for expansion.
I'm using this board with isolated M5Stack CAN and RS485 accesorries - for connectivity with 2xPB2A16S20P

I've been using this setup for over two weeks now and I can definitely recommend this board for YamBMS when Ethernet connectivity is needed.
One thing that I can't figure out is obroard RGB LED. Maybe someone more experienced with eshome will figure this out.

For anyone who wants to use the same board, I have included a ready-to-use yaml file (rename txt to yaml) that should be placed in the YamBMS /packages/board directory.
Also add this additional entry in the board selection section of the main YamBMS yaml file:

This way any yaml updates from github shoud be easier.

Thank you for sharing I will check and add your board.

Does that correspond to this Waveshare model ?

 
If I have my rebulk threshold set to 53.3V, it switches to bulk at 53.15V. If I have it set to 53V, then it switches at 52.85V. Is this 0.15V offset expected? I also notice that with the charge voltage set to 55.2V, it charges to 55.4V.

FWIW my BMS generally reads about 0.2V higher than the inverter.

You've just answered your questions. I had planned to write a post about this, but this project has already taken me a lot of time, and I haven't done it. Obviously, the inverter and BMS must be calibrated for this to work properly. If the inverter can't be calibrated, you can use the inverter offset voltage to correct the requested charge voltage. The code relies on the average BMS voltage and has no insight into the inverter voltage.
 
I have a question: Can I use "bms_combine_JK-PB_RS485_bms_full.yaml" with LILYGO T-CAN instead of "bms_combine_JK-PB_RS485_bms_minimal.yaml" I want to see the voltages of the individual cells on the dashboard.

update:
Just tried it and it works! :-)
 

Attachments

  • Screenshot 2025-03-15 095920.jpg
    Screenshot 2025-03-15 095920.jpg
    135.7 KB · Views: 15
Last edited:
I have a question: Can I use "bms_combine_JK-PB_RS485_bms_full.yaml" with LILYGO T-CAN instead of "bms_combine_JK-PB_RS485_bms_minimal.yaml" I want to see the voltages of the individual cells on the dashboard.

update:
Just tried it and it works! :-)

Yes it works but this requires more work from the ESP32.
 
Im trying to get multi-bms_JK-PB_RS485_mode2_LilyGo-T-CAN485.yaml
But i dont do it right, is there anybody there know if there is af instruction for dummies som where
 
Im trying to get multi-bms_JK-PB_RS485_mode2_LilyGo-T-CAN485.yaml
But i dont do it right, is there anybody there know if there is af instruction for dummies som where
This is how it worked for me:
copy the packages folder (Github) via samba to HA Esphome folder
Make a new device in ESPhome builder in HA.
Copy the multi-bms_JK-PB_RS485_mode2_LilyGo-T-CAN485.yaml to the device and overwrite the existing one complete
Compile it and save the file. (do not install it over the air)
Install the file with ESPhome webinstaller on Lilygo T-can
Delete the device in ESPhome builder
Start Lilygo T-can
It will be recognized by HA and then configure it
connect it to your Battery and Inverter and have fun.
 
Last edited:
3 works fine, i bet 5 would work.

You may be sacrificing stability and uptime consistency with any over 3.
3 is totally fine to me :-) right now I have one running but I wanna upgrade soon to at least a second bms. It work really good and I'm happy with it. Due to the possibity to set a voltage offset my battery reached the 100% state and went into float mode the first time.
 
3 is totally fine to me :-) right now I have one running but I wanna upgrade soon to at least a second bms. It work really good and I'm happy with it. Due to the possibity to set a voltage offset my battery reached the 100% state and went into float mode the first time.

Yambms is awesome.

The home assistant features are next gen.
I got 2 Jks in home assistant

I can see all the cells, soc's, and current in graphs. I have 8 months of daily cell voltages now! I can see what each BMS is doing for any load.Screenshot_15-3-2025_1481_homeassistant2.local.jpegScreenshot_15-3-2025_14742_homeassistant2.local.jpeg
 
What do you think, how many bmses can I run with full bms.yaml on one ESP32?

All I can tell you is that I'm using YamBMS with 7x JK-PB and an Atom S3 (ESP32-S3).

ESP32 is less powerful, and I don't know how far you can go.

If you have problems, the solution is to reduce the number of entities, which is why I created minimal versions.
 

diy solar

diy solar
Back
Top