Simp BMS Setup Manual V0.25
Simp BMS Setup Manual V0.25
Manual V0.25
Please read this manual and understand it, questions are allowed. You the purchaser of this product
are responsible for installing this system yourself. You NEED knowledge of battery systems,
automotive wiring and general computer knowledge.
THIS IS NOT A PLUG AND PLAY SYSTEM, USER CONFIGURATION AND WIRING REQUIRED
The device is provided "as is". Simp Eco Engineering makes no warranties, expressed or implied, and
hereby disclaims and negates all other warranties, including without limitation, implied warranties
or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual
property or other violation of rights. Further, Simp Eco Engineering does not warrant or make any
representations concerning the accuracy, likely results, or reliability of the use of the materials in
this manual or otherwise relating to such materials.
Damages
In no event shall Simp Eco Engineering or its suppliers be liable for any damages (including, without
limitation, damages for loss of data or profit, or due to business interruption,) arising out of the use
or inability to use the devices supplied by Simp Eco Engineering, even if Simp Eco Engineering or a
Simp Eco Engineering authorized representative has been notified orally or in writing of the
possibility of such damage.
Please contact the reseller that has provided you the SimpBMS first for support
• Nextion 3.2 Inch Display with flylead, loaded with software to work with SimpBMS
Features:
Teensy 3.2 based
4 - 5-16V isolated inputs
4 - 12V outputs
4 - Low side switching outputs
2 - analogue current inputs (for dual range sensor)
1 - Serial bus for Tesla modules
1 - Canbus for communication with other modules, current senors or vehicle
1- Spare serial bus for expansion
Working Modes
Normal Operation (EV)
This mode will function as you would expect from a ‘key’ operated pack, such as found in vehicles.
Precharge will happen with key on ect.
This will use the following pins (you can use more then one source of signal if needed)
Balancing
There is a small difference between ESS Mode and Normal Operation;
-Normal Operation does not balance while in ‘driving’ operation state, this is due to the possibility of
large voltage fluctuations due to high variation of loads.
For the working of balancing please see the setup page with the relevant parameters;
Serial Interface / ‘b’ Battery Settings Menu
Pin Function Switching Type V2 Normal usage ESS Mode Function Pin Pin Function
1 In 1 High Input Key on Storage Mode In 3 6 1 In 1
2 In 2 High Input Alt Charge Current - In 4 7 2 In 2
3 Txspare - Comms - - Rxspare 8 3 Txspare
4 CanH - Comms Can Can CanL 9 4 CanH
5 5V Out - Supply - - GND 10 5 5V
6 In 3 High Input AC present -
7 In 4 High Input CP cond signal -
8 Rxspare - Comms - -
9 CanL - Comms Can Can
10 GND - Ground
BMS Slaves
Configuration:
Designed to be Daisy chained from one module to the next, remember to close the end canbus by
having a 120 ohm resistor between canH and canL.
If using more then one module you can just do the following:
Contactors with built in economizers MUST be used on the 12V switched outputs
Contactors without built in economizers MUST be used on the ground switched PWM outputs
See for the circuit below, a diode must be used in parallel with the contactor.
SIMP BMS
ESS Mode:
Delay on the Low switching contactor outputs can be set via precharge delay
Trip Shunt
In ESS mode OUT2 can be used to trip DC breakers with a shunt trip device. This output goes high
when an over or under voltage or over temperature situation occurs.
Make sure the shunt is rated for the activation signal of 12V.
Main Contactor
In ESS mode you can choose to have a single contactor to connect and disconnect the battery.
When an over or under voltage or over temperature situation occurs the battery gets disconnected.
If these faults are not present the battery is allowed to connect.
EV Mode:
ESS Mode:
If your motor controller/inverter can control the contactors use this. Wire the BMS positive
contactor 12V output to control a relay that can cut the enable signal to the motor
controller/inverter to protect the batteries. This signal can also be used for a ‘Ready’ light on the
dash for a visual indication.
Depending on the charger you can wire it directly to the battery or via a single contactor depending
on the type of charger used, some require pre-charging.
The approach that thus can be taken is to wire all the modules in series and then parallel the strings
to create the complete pack.
String
Module Module
with Slave with Slave
Module Module
with Slave with Slave
Parallel
Module Module
with Slave with Slave
A Nextion Display programmed with the appropriate software will allow the displaying of
information provided by the SimpBMS.
1. Utilizing the Nextion editor and provide .HMI file found here:
https://github.com/Tom-evnut/SimpDisplay
2. Saving the “.tft” file onto an SD card, insert into display, power cycle display and wait for
update to complete.
Depending on how your charger is connected to your pack you can enable the HV contactors closing
if required.
If the charger is directly connected to the battery, like the green lines show, the contactors do not
need to close in order to charge.
If the charger is connected to the HV bus after the contactors, the blue lines;
Connector 3 on the SimpBMS is compatible with the VE.Can rj45, this means that you can use a
standard ethernet cable to join the two. Please bear in mind that for VE.Can to work it requires a
termination resistor to be added on the second VE.Can port on a color control.
The GX control needs to be configured to 500kbps so it can receive the data from the SimpBMS.
A good start for further workings of a Can based BMS in the Victron system :
https://www.victronenergy.com/live/ccgx:start
1. Connect the Micro-B USB port on the teensy to your computer with appropriate cable
2. Computer should identify new usb/serial device
3. Open your preferred Serial Terminal Program. Example :
https://www.compuphase.com/software_termite.htm
4. Connected to the Simp BMS via the serial port (115200 BAUD)
5. Now you should see the ‘Debug’ screen info scrolling
Any issues with connecting please check the Teensy Microcontroller troubleshooting guide:
https://www.pjrc.com/teensy/troubleshoot.html
If the Teensy does not show up as serial port please run the Teensy Serial installer
https://www.pjrc.com/teensy/serial_install.exe
Ready : BMS is good and communicating normally, waiting for a drive or charge digital input
Error : A fault is present in the read out from the modules. Possible issues:
Overvoltage
Under voltage
Overtemperature
Under temperature
Precharge : when Key on is high this is initiated, drives the negative contactor and then the
precharge contactor. Once Precharge Timer (5000mS) has ran out AND the current
drops below 1000mA it will close the contactor.* This initiates transition into drive.
Drive : Monitors voltages and temperatures with negative and positive contactor closed.
If key on signal goes low both contactors turn off immediately and BMS goes into
Ready state.
Charge: When AC present in is high the charger enable output gets turned on until end of
charge is reached or error occurs.
When one cell hits the overvoltage it will stop charging and go to ready.
Rest of displayed information is shown per module, both voltage and temperatures reported
This shows the Firmware Version Number, please indicate this when ever requesting support.
b - Battery Settings
e - Charging Settings
d - Debug Settings
x-Experimental Settings
R – Restart BMS
q - exit menu
‘q’ Quit
Exit the setup menu and resume diagnostics display info
Inputting a number of the shown options toggles the modes, to stop send the same number.
3 – Output Check = cycle outputs !!! DO NOT TURN ON WITH HV CONNECTED TO CONTACTORS
6 – Cells Present Reset = recalibrate the cells to check if they are present
7 – Gauge Debug = cycle the gauge output up and down for testing pwm settings for gauge
8 – CSV Debug = Data is now displayed in a Comma Seperated Values makes logging it easier
9 – Decimal Places to Show = how many decimals to show for cell voltage debug
q – go back a menu
r – Reset AH Counter = Use voltage to determine SOC, best used with open circuit voltage
f – Reset to coded settings, the settings that were written when the code was compiled
3 – Over Temperature Setpoint = Setpoint at which allowed discharge and charge current is reduced
to zero
4 - Under Temperature Setpoint = Setpoint at which allowed discharge and charge current is reduced
to zero
5 – Balance Voltage Setpoint = Setpoint of cell voltage in mV at which during charging cells will start
balancing.
6 – Balance Voltage Hysteresis = Voltage required to be above the lowest cell to allow balancing of
cell in mV
7 – Battery Capacity = each group of parallel cells monitored per slave capacity in Ah
8 – Max Discharge = maximum discharge current in A, transmitted current limit will taper from max
current starting at discharge temp to zero at over temperature.
9 – discharge voltage limit = used to calculate max discharge setpoint, voltage per cell will get
converted to pack level by BMS
SOC vs Voltage
100
90
80
70
60
50
40
30
20
10
0
3000 3200 3400 3600 3800 4000 4200
g – Storage Charge Voltage setpoint = when in Storage mode in ESS this is used instead of Charge
Voltage Limit
h – Discharge Current Taper Offset = the voltage offset from Discharge Voltage Limit at which the
discharge current Max will start to taper down.
j – Discharge Current Temperature Derate = Temperature above which discharge current starts to
taper to 0 Amps at Over Temperature
k – Cell Discharge Voltage Hysteresis = cell voltage needs to rise this amount above the Discharge
Voltage Limit before discharge is allowed again in ESS mode
1 – Cell Charge Voltage Limit = End of charge voltage target for cells
3 – Pack Max Charge Current = Max allowed charge current into pack
4 – Pack End of Charge Current = Current when reaching target voltage, tapers based on hysteresis
5- Charger Type = Switch can bus controlled charge output messages (Cyclic)
Volt Charger
Victron Charger
6- Charger Can Msg Spd = Interval target between sent can messages
ONLY FOR TESLA FIRMWARE 7 – Can Baudrate = Can network speed, to be changed to match other
items on Can network, see for information the chapter on Can. Will only take effect after exiting the
menu’s fully and then doing a powercycle.
Direct To Battery HV – connected directly to the battery pack (through a fuse ofcourse)
Behind Contactors – connected onto the main HV bus after the contactors, so during
charging contactors need to be closed.
a – Alternate Pack Max Charge Current = when pin is toggled high this is the newly enforced Max
Charge Current
Undefined = OFF
1- Invert current = if current sensor is reading the wrong direction toggle value
2- Pure Voltage SOC = do not use coulomb counting and rely on using cell voltage to do SOC
Recommend for large packs with low discharge and charge currents
3 – Current Multiplication = 1 if all current goes through the sensor , 2 if only one cable (identical
required) passes through the sensor and two are used on one pole.
q - Go back to menu
4 – Analogue Low Range Conv = value for conversion mV/A, enter 10x.
5 – Analogue High Range Conv = value for conversion mV/A, enter 10x.
6 – Current Sensor Deadband = voltage around the zero point which the measurement will be
ignored
8 – Current Channel ChargeOver = at which current level will the alternate channel be selected
Select the variant of Analogue Current Sensor you are using, single or dual channel by cycling
through the types using ‘s’.
When the system is powered on but no current is flowing through the sensor you are required to run
the command ‘c’ to calibrate current sensor.
This will now report back some values which are written to the memory logging where the middle
point is thus zero current point.
You can leave the current sensor dead band at 5mV to start, you can later tweak this value to suit
your system and sensor.
If you are using a dual channel sensor please input the current limit of the lower range in parameter
8.
Now completely exit the Setup menu using the command ‘q’ twice, this saves the parameters.
Go back into the setup menu and enter the debug screen and use the current debug option to view
the reported values against a known current, keep in mind that a device you are using to determine
what the current should be might have a different way of filtering the values.
A current value lower than expect decrease the value for the resolution.
A current value higher than expected increase the value for the resolution.
2 – Precharge Finish Current = mA of allowed current before switching in the main contactor
3 – Pwm contactor Hold = PWM duty cycle (values 0-255), lower the value the lower the ‘voltage’ at
the contactor. This only works on the PWM pull low outputs.
Contactors without an internal coil require an diode placed across their ground and 12V feed, as
depicted below, the coil is the contactor.
SIMP BMS
SIMP BMS
The principle of the gauges driver is identical to that of the grounding contactor control.
Please make sure that your gauge works with a grounding signal, usually indicated by the original
sensor having a signal connection and a ground connection.
This output can also be used with a setup the expects a voltage signal, all that needs to be done then
is to have a 1K ohm pull up resistor to 12V so that the grounding output can put it to ground at
varying duty cycles to generate an average voltage.
When a parameter is entered for a gauge value the gauge will snap to this position until the setup
menu has been exited.
4 – PWM for Gauge Low = PWM duty cycle of Gauge Output to reflect 0% SOC
5 – PWM for Gauge High = PWM duty cycle of Gauge Output to reflect 100% SOC
6 - ESS Main Contactor or Trip = utilize a precharge and main contactor or a shunt trip setup only
available in ESSmode
1 – Voltage Warning Offset = Offset from Under and Over Voltage limits when an Alarm Flag gets set
2 – Cell Voltage Difference Alarm = Difference below low and high cell to trigger Alarm Flag
3 – Temp Warning Offset = Offset from Over Temperature limit when an Alarm Flag gets set
4 – Over and Under Voltage Delay = the time allowed for cells to be exceeding limits, Overvoltage
and Undervoltage, this is used to allow sag exceeding these limits for heavy discharges or inrush
currents during turn on. Set in mS, please keep in mind that slaves might not be read at a very high
frequency thus you should allow enough time for reading to be done.
2 – Voltage Under Which to Ignore Cells = to allow missing cells and then mask false readings
Fix: check your settings for parallel strings and Cells in series with your actual connected setup,
correct these numbers to make the error disappear.
If not resolved please check that all slave modules are recognized and communicating, if not please
troubleshoot communications first.
Termination Resistor
SIMP BMS does not come with a termination resistor as standard does come with a location for a
0805 resistor to add one.
If you measure the resistance across CanH and CanL if it is not 60 Ohm add a 120 Ohm resistor at the
SIMP BMS connector. If the resistance is still too high add a 120 Ohm resistor at the other end of the
can bus.
Canbus Expansion
The canbus expansion module currently only works with the Chevy Volt / Opel Ampera software.
This allows you to run chargers and DCDC on a bus that is not locked at 125kbps for the slaves.
The Expansion Module plugs into J1, then wire the canbus High and Low into the screw terminal on
the module.
CAB 300
Bi-directional 350A max
Canspeed : 500kbps
Victron VE-CAN
Communicate using the simple protocol as REC BMS, will share all required information from the
batteries.
You can set the Victron GX systems up to accept 500 or 250 kbps.
Currently the following chargers are supported, please note the associated can speeds these need
to match everything else on the network.
Message SOC
Message ID 0X355
Byte Bit Signal Scale unit
0 SOC LSB 1 %
1 SOC MSB 1 %
2 SOH LSB 1 %
3 SOH MSB 1 %
4 SOC LSB 0.01 %
5 SOC MSB 0.01 %
6 -
7 -
Message Status
Message ID 0X356
Byte Bit Signal Scale unit
0 Voltage LSB 0.01 V
1 Voltage MSB 0.01 V
2 Current LSB 0.1 A
3 Current MSB 0.1 A
4 Temperature LSB 0.1 C
5 Temperature MSB 0.1 C
6 -
7 -
Updating firmware can be done with the simple process explained below, CHECK SETTINGS once you
flash the new firmware. The process can alter memory locations and thus corrupt settings.
Links
Latest files available on Github, including uncompiled code.
Outlander Github :
https://github.com/Tom-evnut/OutlanderPHEVBMS/tree/master/OutlanderBMSV2
VW Github: https://github.com/Tom-evnut/VW-bms/tree/master/VWBMSV2
The easiest way to get new firmware onto the SIMP BMS is by uploading the latest ‘ino.hex’ file
In order to get the hex onto the Teensy (microcontroller of the SIMP BMS) it is required to have
Teensy Loader installed.
Once installed and having downloaded the latest hex onto your computer follow the following steps
to update the firmware: