Battery: RJXZS BMS - dalathegreat/Battery-Emulator GitHub Wiki
[!CAUTION] Working with high voltage is dangerous. Always follow local laws and regulations regarding high voltage work. If you are unsure about the rules in your country, consult a licensed electrician for more information.
Read this first
Preface, the entire Battery-Emulator project sets out to achieve safe re-use of EV batteries. By building your own battery, you will be taking larger risks. Cell balancing wire taps, shunts, busbar connections, BMS integration, temperature monitoring, fuses, contactors, interlocks, etc. all will have to be implemented by yourself instead of using a pre-made product. As with all things custom, there are higher risks of human error. The Battery-Emulator also sets out to only emulate High Voltage protocols, so while most tinkerers might be familiar with 48V DIY batteries, building a 96S 400VDC battery is an entirely different beast that can be lethal. Take extra precaution when working on a custom DIY HV battery, you have been warned.
[!CAUTION] If you are unsure of your technical knowhow, avoid building a high voltage battery from scratch
Custom DIY battery with RJXZS BMS
The Battery-Emulator has support for the 4-192S RJXZS BMS. With this BMS you can construct your own high voltage battery, and connect the BMS via CAN to the Battery-Emulator. This allows you to use a DIY battery (instead of an EV battery) with any normal Battery-Emulator supported inverter.
Where do I get the hardware?
Where do I get technical support?
How do I calculate how many cells I need?
You need to see the voltage range of the inverter, and calculate based on the chemistry you intend to use. For instance, a Fronius Gen24 takes 160-531V on the battery input. Using the limits for NCM chemistry (3.0V empty, 4.2V full), this means the minimum viable battery configuration would be 160V empty (160V/3.0V=53S), and the largest battery configuration would be (531V/4.2V=126S). So a 53S at minimum, and a 126S config max.
Setting up the BMS
Settings are configured on the RJXZS BMS via the TOPBMS smartphone app. The most important settings are capacity (AH), cells in series, low voltage cutoff, and charge end voltage.
- Remember to calibrate Ah. Without this, the SOC% will be 0 all the time. The best way is to charge battery to its maximum and set Battery used capacity in Top BMS APP to 0 Ah.
[!CAUTION] Failure to set correct voltage cutoff according to your battery chemistry can lead to catastrophic damage. For instance an Lifepo4 cell should charge max to 3.5V. Overcharging LFP cells to >4V will cause permanent damage and/or battery fire
Setting up the Battery-Emulator integration
[!IMPORTANT] The RJXZS BMS runs at 250kbps CAN speed. Due to this it cannot be connected to same CAN bus as solar inverters. This BMS needs to be connected to the Native CAN (Built in CAN on LilyGo, CAN1 on Stark)
Start by connecting the CAN port of the BMS, to the CAN port on the Battery-Emulator
- If you have a Modbus inverter, connect it to the RS485 port of the Battery-Emulator
- If you have a CAN inverter, you need to connect it to a separate 500kbps CAN channel, since the BMS runs at 250kbps on the native CAN
- One option is to use add on MCP2515 board
- Another options is to use add on CAN-FD MCP2518 board
- Third option is to use Stark CMR board
- Fourth option is to use Double LilyGo setup
Compile the software with the #define RJXZS_BMS
option enabled in USER_SETTINGS.h
. Also remember to tweak the battery limits in RJXZS-BMS.h
file
After uploading the code to the Battery-Emulator, you can check cellvoltages, SOC etc. via the Webserver
Example of value monitoring, and cellvoltage monitoring of a 70S battery
Example integrations
Feel free to add your own pictures here!