HLP Data BMS4S User manual

1
1
BMS4S user manual version 4
Valid for software version 4.x.89
BMS4S DIY kit: ......................................................................................................................................... 2
Introduction ............................................................................................................................................ 2
Important information ............................................................................................................................ 3
Normal usage .......................................................................................................................................... 3
Basic configuration .................................................................................................................................. 4
Additional Commands ........................................................................................................................... 11
System Commands ................................................................................................................................ 16
Installation ............................................................................................................................................ 17
Short step-by-step basic installation..................................................................................................... 19
Connection of more equipment and some more details ...................................................................... 20
Testing ................................................................................................................................................... 24
Balancing ............................................................................................................................................... 25
Alarm ..................................................................................................................................................... 25
I/O description PCB version 4.1 ............................................................................................................ 27
Appendix A, Connect with an Android device ...................................................................................... 28
Appendix B, Connect with an Iphone or Ipad ....................................................................................... 29
Appendix C, Connect with a Windows PC ............................................................................................. 30
Appendix D, Alternative way to control an alternator ......................................................................... 32
Appendix E, Example of howto change an BMS4S open collektor port to +12V .................................. 33
Appendix F, How to connect an LCD display ......................................................................................... 33
Appendix G, How to connect to Venus OS (and VRM portal) ............................................................... 34

2
2
BMS4S DIY kit:
The basic package contains: 1: a BMS4S circuit board and a box to mount it in.
In addition to this, you may also need
2: a Bluetooth radio for communication with BMS4S,
3: an adapter for USB to serial connection to BMS4S,
4: a 12 V LED for low SoC early warning,
5: a buzzer/alarm.
6: or a buzzer/alarm for panel mounting,
7: a pushbutton for temporary charge level setting,
8: one or more temperature sensors
Introduction
BMS4S is versatile battery management system that can be used in many different configurations. It
is designed to supervise four LiFePO4 cells and automatically control that they are kept within
specified boundaries. It can be used with default configuration straight out of the box, but can also
easily be changed and used in a completely different setup. There are few limitations built into it.

3
3
You will find a description on how to install the BMS4S in chapter “Installation”, with more details on
exactly how to connect all wires in chapter “Equipment connection description”. After installation
you should test that it is working as expected. This is described in chapter “Testing”.
During normal usage there is not much you need to do, but there are some things that can be of
interest for most users. This is described in chapter “Normal usage”.
How you use your cellular phone to connect to BMS4S is described in chapter “Normal usage”.
Available commands are described in three places: “Basic configuration”, “Additional commands”
and “System commands”. All commands are built from one or two small letters, so in the Basic
configuration chapter the commands can be derived from the printout, the capitals in each line is
the command to use to change that setting. To give any commands that changes any settings you
must first unlock the device with command du=1234. Default PIN is 1234, but you should change this
after installation to your own one, command dp=nnnn. All system commands are protected by
another level of protection since you can make BMS4S completely useless by a single bad system
command. To unlock system commands, use command: fu=1632. Do not use any system command if
you have not read the user manual carefully first. But there is always a way to get back to the
original settings from factory, see command: fr.
And you can always get a command summary when connected to BMS4S with command: h.
Important information
The first thing to connect to the BMS4S is ALWAYS – (minus) and B0 (and the last thing to disconnect
if you are going to remove it). In other words, you must NEVER disconnect the minus pole from the
battery if it means that – (minus) to the BMS4S is also disconnected. Then it's electronics you work
with. Static electricity and the wrong cable on the wrong port risk burning the BMS4S. So don't wear
clothes that can easily create static electricity (fleece for example) when installing, and always
double check that you're wiring correctly before plugging anything in. More about how to connect
can be found in the chapters "Short step-by-step basic installation" and "Connecting additional
equipment and some more details"
Normal usage
BMS4S is switched on as long as it has power on terminal +12V. Normal usage is to take a look at the
LED every now and then. If it is blinking twice, then there is less than 20% energy left in the
batteries. If it is blinking once, it is less than 10%. You can change this to start the blinking at any
level of charge. Command sl=nn.
Beside the LED you have the push-button. When you are on your way home and the boat will be
unused for a while, then your batteries lifetime will increase if they are not left fully charged. Then
press it until you see 3 long blinks on the LED. This will decrease the voltage when BMS4S will stop
charging with 0.10 V, which equals approx. 80% SoC when using default settings. Or keep in pressed
until 4 long blinks on the LED. This to achieve approx. 60% SoC (decreases the stop-voltage with 0.15
V).
When you press the push-button for a single long blink, three things will happen: the charging
voltage will be reset to normal, if an alarm is beeping it will be rest and you will wake up (actually

4
4
restart) the Bluetooth radio that you can connect your cellular phone to. BMS4S has two ways of
communication: a socket to plug in a FTDI adapter and a socket to plug in a bluetooth module of
type HM-10 or equivalent. You connect with e.g. “Serial Bluetooth” on an android phone and with
“BLE Terminal” on an I-phone. These are available for free on Google play and Apple appstore. When
installed, scan, find and connect to the Bluetooth device.
It often happens that the USB adapter and the bluetooth adapter interfere with each other, so have
only one of them connected at a time.
If you give the command p (print) you will get a printout looking like this:
U=3.264 3.268 3.262 3.266 13.060 I=-1.335 SoC=35 (38)
This (U=…) means that all four cells have 3.26 V each (reported in order B3, B6, B9, B12), adding up
to 13.06 V. Next, I=…, means that right now there are 1.335 A leaving the batteries (this only works if
you have connected BMS4S to a current shunt, but that is not necessary for it to work). And SoC=…
means that BMS4S estimates current state of charge to 35 % based on the last 15 minutes (can be
changed with te=nnn). The value within parenthesis (38) indicates what the estimate is at this exact
moment. Using voltage and load gives a very rough estimate on higher SoC levels, but to use it as an
early warning system when SoC is getting low works well. And it does not require regular
synchronizations like a coulomb-counter based meter does.
If you get an alarm from the summer/alarm, command po will give you the reason in clear text. The
command will also give some more other basic information.
Another thing that is good to check every now and then is command pe (print extreme point log).
See the description of it in chapter “Additional commands”. It will give you information about hoe
your batteries are performing.
And it may be useful to regularly press the button and see that the BMS4S responds with a blink to
ensure that the BMS4S is operational. If you want automatic monitoring, install double BMS4S. Then
they can monitor each other and alert if one of them stops responding.
Basic configuration
The starting point before changing anything is to take a look at current configuration. You do the
with command ps (print setup):
WorkMode= 1
BatterySize= 100 Ah
BatteryUse= 30 Ah
BatteryCharging= 50 A
TimeEstimate= 900 s
TimeBeep= 200 ms
TimeRelay= 300 ms
TimeprecharGe= 0 s
VoltBalance= 3.500 V
VoltDifference= 0.000 V
BalanceInit= 0.000 Ah
BalanceAmount= 0 %

5
5
StartLedblinking= 20 %
VoltWarn= 3.100 V
VoltLow= 3.050 V
VoltVerylow= 3.000 V
TimeLow= 15 s
VoltswitchOnagain= 3.100 V
VoltlowExtrabat= 0,000 V
Voltlimitextrabat2= 0,000 V
VoltAbsorb= 3.500 V
TimeAbsorb= 1200 s
VoltHigh= 3.600 V
TimeHigh= 5 s
TimeChargeoff= 14400 s
VoltNocharg= 13.600 V
VoltResumecharge= 3.250 V
TimeWarning= 120 s
Templow1= 5 C
Tempwarn2= 50 C
Temphi3= 60 C
Temptarget4= 95 C
Temphi5= 100 C
Tempres6= 90 C
Limit-step1= 10 s
Limit-step2= 100 %
Limit-step3= 100 %
TimePrintout= 0 s
TimeMemlog= 315/600 s
TimeioOpen= 600 s
The first block of lines describes some basic setup of BMS4S:
WorkMode= 1: it means a current shunt is connected. Recently, the number of WorkModes has
soon become so many that the new ones will have to be controlled by the command
WorkmodeExtended (we=), and all functions have been renumbered for that command (in brackets
in the list below). The we-command can only address one property at a time. If you want to
deactivate the shunt and activate the parasitic feed, you must give two we-commands: we=-1 and
we=+5. However, command wm will still work for the listed functions.
0 workmode normal
+1(1) there is shunt connected
+2(2) measures 12V only
+4(3) supervised and supervising another BMS4S, master
+8(4) supervised and supervising another BMS4S, slave
+16(5) parasitic power for temp-sensors are activated

6
6
+32(6) not used
+64(7) Swedish CSV (comma separated values in printouts for import into Swedish excel)
+128(8) simplified test of temp-sensors (no CRC)
+256(9) only p at tp= instead of both p and po, useful at certain test-cases
+512(10) power off when high bat temp, normally only charging will be stopped
+1024(11) all off port = charge on for bistable charging relay (no very low volt relay available)
+2048(12) precharge port = charge on for bistable charging relay (no precharge relay available)
+8192(14) Charge OFF port is inverted
+16384(15) not used
(24) button moved to Sup port
After you have changed workmode, a restart can be required to get it into the new mode
(e.g.we=+14), command rb.
BatterySize= 100 Ah: size of installed LFP bank. Change with bs=nnn as implied by the capital letters.
But before you can start changing anything you must unlock the device by command (device
unlock) du=1234. You should change this to your own PIN by command (device pin) dp=nnnn. If you
have forgotten your PIN, you can set a new one within 30 seconds after you have switched on the
power to BMS4S. You can remove the PIN by command dp=0 (not recommended). (note, all
commands are given with small letters)
BatteryUse= 30 Ah: You use 30 Ah every 24 hour which means that you get out of power after 3
days without charging (if you have a 100 Ah battery). Used to estimate SoC if no current shunt is
connected. Change with command bu=nnn. The same applies to all commands below, the capital
letters in the printout imply the command to use when changing the setting. If BatteryUse is set too
high, SoC estimates will also be too high.
BatteryCharging= 50 A: the most common charging method will charge with 50 A. Used to estimate
unbalance between cells if no current shunt is connected. If you are using automatic balancing using
coulomb-counting, you should also install a shunt to ensure that the unbalance-estimates are as
good as possible (see chapter “Equipment connection description” below).
TimeEstimate= 900 s: The Soc estimate is based on the last 900 seconds (15 minutes). If you have
installed a shunt and calibrated BMS4S you can probably shorten this time. Then 300 s (5 min) might
be good.
TimeBeep= 300 ms: each beep will be 300 ms long. If you have a really loud beeper you might want
to shorten this to achieve a bearable sound level. Affects Beep output port.
TimeRelay= 300 ms: when the bi-stable relay is operated it is done with a 300 ms long pulse. Affects
the Load OFF and Load ON outputs (and Charge On and All-OFF if WorkMode 1024 is enabled).
TimeprecharGe= 0 s: if you have equipment with high start-up current you might want to pre-charge
them before operating the relay. If you set this timer between 1 and 10 s you will get a pulse to use
for a small relay with a resistor parallel to the real relay that will soft-start the equipment. This pulse
comes on the port “PreCharge”.
The second block of lines describes how balancing will be handled.

7
7
VoltBalance= 3.500 V: There are two ways to use the built-in balancer. Both uses this value as the
starting point when the balancing procedures are initiated. This value shall normally not be set
below 3.4 V. If you do not activate the balancer, these settings will be used to calculate how big the
unbalance is.
VoltDifference= 0.000 V: This is the first and simplest balancing alternative. If this value is set
(recommended value: 0.050 V) then when the first cell has passed the BalanceVolt-value (during
charging) and the voltage difference between two cells exceeds the VoltDifference-value the
balancing will start and proceed as long as the BalanceVolt-value is exceeded and the unbalance
remains. But since the balancing current is low (0.2 A) and that balancing is done only while
charging, this method only works when the battery bank is reasonable well matched (all cells have
close capacity values). Otherwise, the second method is recommended.
When you activate any kind of balancing BMS4S will check that balancing not will cause too much
voltage drop due to too narrow wires. If you get the result ”bad voltage sense cables!” it is
recommended to increase the dimension or shorten the voltage sense cables.
BalanceInit= 0.000 Ah: This is the second balancing alternative. When the first cell passes
BalanceVolt-value during charging (and VoltDifference is set to 0.000) coulomb counting starts and
continues until the last cell passes it. If the difference between the best and the worse cell then
exceeds the BalanceInit-value (recommended value: 0.5% of the total battery capacity, i.e. 0.500 Ah
for a 100 Ah battery bank) the balancing will start and continue until the calculated balancing value
is balanced away. It is recommended that you have installed a way to measure the current if you use
this method. See chapter “Equipment connection description” how to do that. Note: VoltDifference
must be set to 0 (vd=0) in order to activate this balancing alternative. It is also important that the
charging current is similar when all cells passes the BalanceVolt-value since the measurement
otherwise might be misleading. I.e. do not set the BalanceVolt-value close to where the charging
device starts to decrease the charging-current.
You can see the coulomb counters with the sort Coulomb (As) with command po, and all calculated
results presented in Ah with command pe. You can use this information to manually balance the
cells with a 3.6 V charger.
When you activate any kind of balancing BMS4S will check that balancing not will cause too much
voltage drop due to too narrow wires. If you get the result ”bad voltage sense cables!” it is
recommended to increase the dimension or shorten the voltage sense cables.
BalanceAmount= 0 %: when balancing starts, it will aim to reduce the difference with the
percentage stated here. The recommended start value 25% is to ensure that it does not overshoot
the target. This is especially important if no shunt is connected, since it then bases the coulomb
counting on what value is set for BatteryCharging. If you find multiple similar entries in the “extreme
point log” (command pe) before an unbalance is cured, you can increase this with e.g. 25% to speed
up the process.
The third block of lines describes how and when a low voltage event shall be handled, i.e. when
shall the loads be disconnected.
StartLedblinking= 20 %: when SoC gets below 20% the LED will start blinking as an early warning, 2
blink for 10-19 % and 1 blink for 0-9 %. Affects the LED output port.

8
8
VoltWarn= 3.100 V: this is the first level of protection. At 3.100 V the buzzer/alarm will start beeping
“low voltage”. It is now time to start the engine and start charging to prevent that any loads get
disconnected. Affects the Beep output port.
VoltLow= 3.050 V: this is when the “not necessary” loads will be disconnected via the bi-stable relay.
Affects the Load ON and Load OFF output ports.
VoltVerylow= 3.000 V: this is when all loads will be disconnected. You can use this e.g. if you have a
second bi-stable relay isolating the batteries completely. If BMS4S is not disconnected when this
happens, it will go into low power mode and only do the most important tasks in a slow paste, like
switching on the system again once charging has brought the voltage up to VoltswitchOnagain.
Affects the All OFF output port.
TimeLow= 15 s: the above voltages must be below the values for 15 seconds before the action is
taken. If you use high power things like thrusters and starters for longer continues time than this you
might want to extend this time, command tl=nn.
VoltswitchOnagain= 3.100 V: when the voltage har reached this level after a low-voltage event the
system will go back to normal again. Affects the Load OFF and Load ON output ports.
VoltlowExtrabat= 0,000 V: If you have a backup battery you can supervise it so you do not forget to
maintain it. A voltage around 12,6 can be reasonable for an LA battery. Controlled by the Bat2 input
and affects the Beep output port.
Voltlimitextrabat2= = 0,000 V: If you have a backup battery and connects it and disconnect LFP,
then the voltage output from the alternator will be unregulated since the voltage is taken from the
LFP bank. Here you can limit the alternator output in this case.
The fourth block of lines describes when charging shall be discontinued.
VoltAbsorb= 3.500 V: Normally LFP cells are fully charged at 3.6-3.65 V. Some chargers miss settings
adopted for LFP, so they will not manage to get the voltage that high. Then you can set an
“absorption” level that it can reach, and the let it stay there for a time. Here this time starts at 3.5 V.
Affects Charge OFF and Gvolt output ports.
TimeAbsorb= 1200 s: and this timer will keep the charger on for 1200 s (20 min) before charging is
stopped
VoltHigh= 3.600 V: All charging sources that can achieve 3.6 V will be stopped at that voltage. 3.6 V
corresponds to approximately 90 % SoC when charging is done with 0.4 C, and is a good compromise
between battery usage and battery life length. Affects Charge OFF and Gvolt output ports.
TimeHigh= 5 s: but the first cell must exceed the set voltage in more than 5 s before the action is
taken.
TimeChargeoff= 280/14400 s: the total time it will be switched off is 14400 s (4 hours) and so far it
has been switched off for 280 s. If it is set to 65500 it means it will never switch on charging, then it
is only VoltResumecharg that will do that. Affects Charge OFF and Gvolt output ports (and All OFF if
WorkMode 1024 is enabled).

9
9
VoltNocharge= 13.600 V: if the generator is not to be stopped completely when charging ends, set
the voltage to be maintained here. Something in the 13.4 to 13.6 range may be appropriate. A new
not fully tested function. Will only show up in the listing of it is not set to zero.
VoltResumecharg= 3.250 V: if the voltage drops down to this level, charging will resume even if
TimeChargeoff has not elapsed. Affects Charge OFF and Gvolt output ports (and All OFF if
WorkMode 1024 is enabled).
TimeWarning= 120 s: if the voltage has not gone down below the set high voltage 120 s after
charging has been switched off, BMS4S will start beeping “high voltage”.
The fifth block of lines describes battery temperature limits.
Templow1= 5 C: if charging is started with battery temperature lower that this a “low temperature
charging” will start beeping, and charging will be stopped for a preset time (see command tc). If you
do not have any temperature sensors installed on the batteries, their temperature will be reported
as 20 degrees. Affects Charge OFF and Gvolt output ports (and All OFF if WorkMode 1024 is
enabled).
Tempwarn2= 50 C: if battery temperature exceeds 50 degrees Celsius a “high battery temperature”
will start beeping.
Temphi3= 60 C: if battery temperature exceeds 60 degrees Celsius a charging will be switched off for
a preset time (see command tc). Affects Charge OFF and Gvolt output ports (and All OFF if
WorkMode 1024 is enabled, and also Load ON and Load OFF if WorkMode 512 is enabled).
The sixth block of lines describes when and what to do when the alternators temperature is
getting high.
Temptarget4= 95 C: when the alternator exceeds 95 degrees Celsius, BMS4S will regulate down
charging current and keep the temperature around 95. However, the temperature is a slow feedback
on how much power the alternator generates, so the temperature will fluctuate a bit around the set
value. Therefore, it is important to set a max-value (Temphi5) where charging will pause completely
if the regulation is too slow. This regulation will only work if your alternator has a voltage sense
cable, and you have installed a temperature sensor on the alternator. Affects Gvolt output port.
Temphi5= 100 C: when the alternator temperature exceeds 100 degrees Celsius, all charging will
pause. This will only work if you have installed a temperature sensor on the alternator. Affects the
Gvolt and Charge OFF output ports.
Tempres6= 90 C: when the alternator temperature has come down to 90 degrees Celsius, charging
will resume if it has been paused. Affects Charge OFF (and All OFF if WorkMode 1024 is enabled).
Limit-step0 = 100%: This is how quickly the BMS4S must react to find a stable position when
controlling the alternator. A high value makes it go fast, but may result in some oscillation. A small
value makes it more stable, but reacts more slowly to changes. Never go below 25%.
Limit-step1= 10 s: Regulation is performed by a PID-regulator (with the integration disabled since it
is of no interest). This is the delay time between adjustment-calculations in seconds. It takes some
time before an adjustment of current influences the temperature, so too short interval will always

10
10
generate oscillations, and too long interval will make reaction slow. If you have mounted the sensor
directly against the stator the delay is normally not that long, then l1=10 often works well.
Limit-step2= 100 %: This is the amplification of the P value (the temperature) feedback in percent
when the temperature differs more than +- 2 degrees from set value. Below this the feedback is
always 0 (the temperature is accepted)
Limit-step3= 100 %: This is the amplification of the D value (temperature difference) feedback in
percent. This is how the regulator stabilizes the temperature when it is within accepted temperature
range.
If the temperature oscillates too much, try increasing Limit-step1.
If the regulation is too slow so the temperature hits Temphi5 or Tempres6, try decreasing Limit-
step1 or increasing Limit-step2
And the last block contains features useful to understand how your system is performing.
TimePrintout= 0 s: if e.g. command tp=5 is given, then the command p and po will automatically be
given every 5 s. This can be useful when testing.
TimeMemlog= 315/600 s: this means that voltage and current will be logged every 600 s (10 min).
The log is started by command tm and can be printed with command pm. 315 is the time since last
log entry was saved.
TimeioOpen= 600 s: after a command is given the Bluetooth radio will remain on for 600 s (10 min).
If you want the Bluetooth interface to stay on all the time, to=65500 can be given.
A command summary and description of blinks and beeps are always available with command h:
h help
l print settings
p print voltage
ba= balance amount (%)
bi= balance initiate diff (Ah)
bp= button press
bs= battery size (Ah)
bu= battery usage (Ah)
bt= bluetooth 0=off, 1=on
ce clear extreme points log
cm clear memory log
dl device lock
dp= set device pin
du= device unlock
fr factory reset
fu= factory settings unlock
mb= mute beep (s)
pd print debug
pe print extreme-point log
pm print memory log
po print other info
ps print settings
pv print version
rb reboot
rp reprogram
sl= set led blink-level (%)
we= set work mode extended
wm= set work mode
t1= temp low charging (C)
t2= temp high battery warn (C)
t3= temp high battery (C)
t4= temp target (C)
t5= temp high pause charging (C)
t6= temp resume charging (C)
ta= time absorb (s)
tb= time beep (ms)
tc= time of charging pause (s)
te= time for soc estimate (s)
th= time high (s)
tl= time low (s)
Other manuals for BMS4S
1
Table of contents
Popular Network Hardware manuals by other brands

Matrix Switch Corporation
Matrix Switch Corporation MSC-HD161DEL product manual

B&B Electronics
B&B Electronics ZXT9-IO-222R2 product manual

Yudor
Yudor YDS-16 user manual

D-Link
D-Link ShareCenter DNS-320L datasheet

Samsung
Samsung ES1642dc Hardware user manual

Honeywell Home
Honeywell Home LTEM-PV Installation and setup guide











