DSSR20

user manual v0.95
SBMS0

1

SBMS0

www.ElectroDacus.com

Table of contents2

Simplified diagram

3

Specifications

4

1. Install instructions

5

2. Thermal management10

3. Cable selection

11

4. Mechanical installation

12

5. Battery temperature

13

6. The 16pin connector

14

7. WiFi/USB optional extension

15

8. Dual PV array functionality and SOC charge limiting

16

9. WiFi

17

10. Internal data logging

19

11. User interface

22

Schematic
Links to HW and SW files

43
46

SBMS40 / SBMS120

www.ElectroDacus.com

N

2

1

ADC1p

ADC1n

Pvn

PVp

ADC1n / ADC1p
EXTIO3- / EXTIO3+
EXTIO4- / EXTIO4+
PVp / PVn

3

SBMS0

www.ElectroDacus.com

Specification
Battery type
Number of cells
Battery voltage limits (min/max)Battery/PV recommandation 12V
Battery/PV recommandation 24V
Max PV Open Circuit voltage for DSSR20
PV input
DSSR20 PV current
External PV current shunt
External Batt current shunt
EXT IOx optoisolators
Cell balancing current
Power terminal max wire size DSSR20
Battery temperature sensor
16pin connector / ( 8pin + 2pin ) side connector
Data logging to internal Flash memory
WiFi plus digital isolation and UART to USB
Display
WeightDimensions
Self consumption
Max TDP4

any type of Lithium cells and Supercapacitors
3 to 8 cells
8V to 32V
4 cell LiFePO4 / 32 or 36 cells PV panel
8 cell LiFePO4 / 60 cells PV panels
49V (mono or polycrystalline panels with up to 72 cells)
Using as many DSSR20 as you want up to 30 or Victron MPPT with remote
20A so up to two large 60 or 72 cell panels
10A up to 750A
10A up to 750A this is required for SOC calculation so it needs to be installed
TLP187 max 300V 150mA
max 200mA
AWG #10 (6mm2) should be great for two panels, connectors max AWG #6 (16mm2)
Thermistor (optional) 10KOhm B3900
Includes I2C, UART, Ext IO, 16bit ADC / ext current shunt for Battery and PV
128Mbit (16Mbyte) 2 minute interval for one year of data
WiFi used for remote monitoring ( SBMS acts as AP ) USB for log data download
SBMS0 2.4” ( Color LCD 320x240 )SBMS0 ~150g / DSSR20 ~70g
90mm x 70mm x 26mm
300mW to 800mW (WiFi and Backlight ON)
SBMS0 (3W) / DSSR20 (1.4W)

SBMS0

www.ElectroDacus.com

1 Install Instructions
Step 1

5

7

6

3

7s

SBMS0

7

6

1+2
1+2

1

2

6s

1+2

3

2

4

3

4s

1

3

4

2

3

5

4

3

4+5+6+7+8

9
5+6+7

8

5

7

6

6

7

7

9

8

8

8

10+11+12

1+2

1

9

1+2

10+11+12

8

5s

1

3

2

3s

1

2

10+11+12

1+2

3

4

3

5

4

2

4

7

6+7

8

9

10+11+128

8

5+6+7+8

9

10+11+12

8

3

10+11+12

4+5+6+7+8+9

Connect the included 12 wire cell monitoring/balancing cable to your battery pack. Number 12 wire is the one marked with red.
Any number of parallel cells are no different from a single higher capacity cell so if you have multiple small cells you will need to form first groupsof parallel cells then connect those groups in series for needed voltage. LiFePO4 is the most cost effective battery at the end of 2019 and a 4s withthat will make a 12V battery and a 8s will make a 24V battery.
All configurations from 3s to 8s are shown below. The corresponding wire number is marked with dark gray color (all wires are used).

18s

www.ElectroDacus.com

Step 2

Go to Parameter Settings menu and select the type of cell, number of cells and battery capacity then push Store Parameters button to save data to
SBMS. Then remove the 12pin connector and reconnect for the new stored parameters to be accepted.
*Screenshots for 4s the diagram on the bottom willchange to reflect the correct connection for different
configurations you select but see the anterior page fordetails on all available configurations from 3s to 8s.
Any number of parallel cells are no different from asingle higher capacity cell as all parallel cells will
have the exact same voltage.

Step 3You can now remove the 12pin connector and start working on the 8 + 2 pin side connector.
A CAT5 or CAT6 type cable is ideal there as you have 4 pairs of twisted wires and can use one for Battery current shunt (ADC1n/ADC1p) thensecond one for PV current shunt (Pvn/Pvp) the third one for EXT IO3 (EXTIO3+/EXTIO3-) and last one for EXT IO4 (EXTIO4+/EXTIO4-).
See diagram on page 3 for details and you can even respect the color scheme that I used :) as usually the CAT cables have those colors
Brown,Orange,Blue and Green.
The XT1+/XT1- is optional but if you want you can connect a battery temperature sensor that will be a 10KOhm Thermistor search for “10KOhm
3950 NTC” and you can find many options and also use a twisted wire pair for this.

All you need to do is strip 4 to 5 mm from the end of the wire and insert in the connector until the stop is reached. To remove the wires
or insert stranded wire insert a needle in the corresponding rectangular hole above the wire as seen in the third drawing below.
secure the cable to the SBMS0 or to the front panel the SBMS0 is mounted on.

6

SBMS0

www.ElectroDacus.com

Step 4Since the CAT5 or CAT6 cable is connected to the SBMS0 you can connect the current shunt's.
The Battery current shunt is mandatory as it is needed to calculate the battery SOC (State of Charge) and gets connected to Battery+ terminal on
one side then on the other side to a fuse or circuit breaker and your Load and chargers.
The PV current shunt will be great to have as it will provide way more info as with just the battery current shunt mentioned above all you see isbattery current and you have no idea of how much the load uses or how much the PV array is producing.
Example: Say you have a 50A load and 30A coming from your PV array then the battery current shunt will see 20A getting out of the battery andthat is only useful to calculate how much energy gets out of the battery and calculate the SOC but you know nothing else.
By adding the PV current shunt now you measure those 30A and so if you add that to 20A getting out of the battery you can calculate the Load andget the 50A load uses thus you know with two current shunts know all the data and SBMS0 can display that for user and calculate the total energy
coming from PV, the energy used by the Load and how much the battery was involved in all this so unless you want to save a few $ I highly
recommend having both current shunt's installed.
Current shunts are nothing more than a power resistor and they may be spec as a max current they can handle and the voltage drop at that current
like say 100A 75mV or as a resistance value and a power rating for the resistor so 0.075V/100A = 0.00075Ohm or 0.7500mOhm (this will be thenumber you set in the SBMS0) and a power rating 100A x 0.075V = 7.5W
The ADC1n/ADC1p input can read in the -90mV to +90mV range so can read current in both directions while the PVp/PVn current shunt can readcurrent in a single direction 0V to +90mV thus to best take advantage of this range a 75mV current shunt can be used but 50mV current shunts and
100mV current shunts will also work.
You will want to select a current shunt so that your max continues current is no more than 66% of the shunt rating. As an example if you expect a
2000W max continues load from your 24V battery then 2000W/24V = 83.33A and thus a 100A current shunt will get to hot and you will want a
150A or 200A current shunt. You will also not want to jump to a 500A or 1000A current shunt in this example as then your resolution when you
measure small current will not be that great.

7

SBMS0

www.ElectroDacus.com

Step 5Connect the EXT IO3 set as type 2 to your inverter, large DC/DC converter or for multiple small DC loads to Victron Battery Protect or similar
device. Most of you will use an inverter and the inverter will need to support remote ON/OFF and while a lot of them do not all can support that.
Simple rule will be that any inverter with a mechanical single pole single trow ON/OFF switch will be able to support remote ON/OFF compatible
with SBMS0 but you may need to solder two wires in parallel with that ON/OFF switch if there is no remote port available on the unit.
Inverters that have a momentary type ON/OFF switch most likely will not support compatible remote ON/OFF but there are a few exceptions.
To test set the EXT IO3 as type 0 and inverter should turn OFF then you can set back on type 2
Bellow is just a short list of inverters compatible with SBMS0 but way more than this presented here will work.
I think all Victron inverts are compatible.
Pheonix, Multiplus, Quatro
Pheonix 12/500(~$180)Pheonix 24/1200(~$400)Multiplus 24/3000/70(~$1300)
BP65 for small DC loads (~$40)
The Victron multiplus inverter/charge may
be the only one with separate remote forinverter and charge.
Most Cotek inverts are compatible.
COTEK SP1000(~$350)COTEK SP2000(~$640)COTEK SP3000(~$960)COTEK SP4000(~$1280)
Some other inverts that are compatible notsure if spec are real.
Ronegy 3000W(~$370)
PIP2424HSE - 220V (~$250)
PIP2424HSE can be used as inverter only
not charger and it is 220V only, the 120V
version is much more expensive.

8

SBMS0

www.ElectroDacus.com

Step 6

Connect the EXT IO4 set as type 1 to your charger and that can be the DSSR20 (multiple of them up to 20 no problem and up to 30 if using two
EXT IOx ports) an MPPT solar charger that has remote ON/OFF support as some Victron Smart solar or Blue Solar with the adittion of a $20
remote ON/OFF cable or a grid charger that has remote ON/OFF like the RSP-750-15 for 12V battery or RSP-750-27 for 24V battery.
A few battery to battery charger also have remote ON/OFF and can be used but charging from vehicle alternator is 50x more expensive than form
PV so it should be avoided if cost is important to you.
To test set EXT IO4 as type 0 and charging should stop then you can set back as type 1
Bellow is just a short list of chargers compatible with SBMS0 but way more than this presented here will work.
Electrodacus DSSR20.
This is sure the most cost effective option
for PV solar charging and allows PV arraysfrom 100W up to 18kW
PV needs to match battery voltage so 32
or 36 cells for 12V battery and 60 or 72 cell
PV for 24V battery.
DSSR20(~$27)

Victron MPPT Solar chargers with remote.
BlueSolar 100/20 + remote (~$160 + $20)
SmartSolar 150/85-TR(~$680)Or+

Other type of chargers.
Ronegy 40A battery to battery (~$200)(alternator >$1/kWh not recommended).
RSP-750-15 grid charger(grid ~$0.2/kWh)9(~$180)

SBMS0

www.ElectroDacus.com

2 Thermal Management
The SBMS0 and DSSR20 are passively cooled and do not require any heat-sink or active cooling.
DSSR20 has a total of 3.5mΩ internal resistance
So at 20A TDP = 20A x 20A x 0,0035Ω = 1.4W
With 60 cell panels 27V x 20A = 540W and with 1.4W loss it will be a 99.7% transfer efficiency.

10

SBMS0

www.ElectroDacus.com

3 Cable Selection
For DSSR20 ideal and most cost effective is 6mm2 (AWG #10) PV cable for groups of two parallel panels. The two panels can be 60 cell panels
for 24V battery so 250 to 320W depending on panel efficiency and if panels are very far like more than 20m (60ft) then you may consider
going with 72 cell panels as then you can accept higher voltage drop and can sue this same cable up to 60m (200ft).
With 32 cell panels for 12V batter keep the distance below 20m (60ft) with same 6mm2 (AWG #10) for two parallel panels if made with
156mmx156mm (6x6”) cells usually rated 160 to 180W depending on cell efficiency or you can use up to 3 panels in parallel if panels are
made with 32 or 36 cells in series that are 125mmx125mm (5x5”).
With SBMS0 a 1.8m (6ft) ribbon cable is provided and is best to keep it to this max limit or you can cut the cable shorter. For the 10pin sideconnector ideal is a CAT5 or CAT6 type cable as that will have 4 pairs of twisted wires and you can use one for each of say ext current shunt,
ext PV current shunt, EXT IO3 and EXT IO4. If you also want to measure the battery temperature (will likely just be the same as ambient as
in this applications battery is charged with at most 0.2C and discharged at 0.5C in average and that is nothing especially for LiFePO4 that I
strongly recommend as they are still the best most cost effective option for offgrid energy storage) then just use a pair of twisted wires maybe
get that from another CAT5 or CAT6 cable.

11

SBMS0

www.ElectroDacus.com

4 Mechanical installation.
SBMS0 is designed for front panel mount see photos below for an example. Yes I used a piece of cardboard from the last mouser shipping but you
will of course not use that :) and this is just to show how it should be installed.

12

Unscrew the 4 screws (T10) just enough to be able to slide the two black
PCB's and this will allow you to slide the SBMS in the front panel cutout.

*Slide the PCB's back in to position and tighten them.
The blue a purple wires are soldered to ADC2 & ADC3 that can read 0 to
60VDC and was for testing not much use at this time.

Get the 4 nylon bolts and 8 nylon nuts included and install them in the 4
corners as illustrated.

Nothing to say here other than front panel needs to be less than 3mm thickand that it looks great even on cardboard :).

SBMS0

www.ElectroDacus.com

5 Battery Temperature
It is possible to add external temperature sensor but in most cases not needed and so is optional.
All Lithium batteries require temperature above freezing (> +5°C) during charging otherwise they will be damaged.
Best way when possible is to have the battery inside the living space were temperature is ideal for battery operation.
The SBMS is designed to accept a thermistor as temperature sensor connected between pin 3 (XT1-) and 4 (XT1+) of the 8 pin connector.
The SBMS is calibrated for a particular 10kΩ thermistor made by Murata NCP21XV103J03RA (this same thermistor type is used internally tomeasure the power board temperature) but a common 10kΩ NTC with B25/50 = 3900 to 3950 will work great.
The low and high temperature limits for this external temperature sensor can be set from the Advanced Parameter Setting submenu parameter 29
and 30.
Value is a 12bit binary number and if you use the recommended thermistor the 0°C=3144b,+5°C=3000b, +50°C=1338b,+55°C=1182b,+60°C=1040b.
You can see the actual temperature in Monitoring menu and the raw binary value in Diagnostic menu.

13

SBMS0

www.ElectroDacus.com

6 The 16pin connector
There is a 16pin connector on the left side of the LCD on SBMS and it is used for different functionality described below.

USART TX

01 02

USART RX

01 & 02 UART TX and RX pins are used for the WiFi module so if you want to use the USART forsomething else then WiFi will be disabled (voltage levels 0 to 3.3V).
03 04
03 & 04 This two pins are reserved as I2C port for communicating with Digital MPPT heat
BOOT 0
EXT
IO5
/
SWK
05 06
controller. Firmware version 3.0g or higher has support for DMPPT450 but only for
ESP RST
EXT IO6 / SWD
monitoring and settings with SBMS0 not charging.
07 08
GND
GND
05 Boot 0 connected to pin 12 will put the STM32F373 microcontroller in programming mode.
09 10
3.3V (2.7V)
3.3V(2.7V)
06 & 08 This pins have dual function as programmable EXT IO5 and IO6 (0 to 3.3V 20mA max)
11 12
and as SWK and SWD programming interface for the STM32F373.
EXT ADC2
EXT ADC3
13 14
07 ESP Flash connected to GND will put the ESP32 WiFi module in programming mode.
GND
GND
15 16
12 This is a 3.3V (3.15V typical) supply from the main board after it will go trough a schottky
diode will supply the WiFi module drooping to around 2.7V or if WiFi is OFF 2.8V that will
supply the digital isolator.
13 & 14 Ext ADC inputs 2 and 3 with analog input range of 0 to 1.8V that will be logged in the internal SBMS memory at 2 minuteintervals but not used in any automation with the latest firmware version. This are good if you want to log some other analog signals.
09, 10, 15 & 16 GND (same common ground plane for all 3 pins).
SDA / EXT IO1

14

EXT IO2 / SCL

SBMS0

www.ElectroDacus.com

7 WiFi/USB optional extension
There PCB board below is the back cover of the SBMS0 but not populated with components unless you select the extra WiFi/USB option.
WiFi/USB optional card.
On the left side in the photo there is a micro USB connector that is thenconnected to a USB to UART converter the 10pin IC and then it will go to
the MAX14851 the 16pin IC and this is a high speed digital isolator soeverything on this side of that long and narrow cut is galvanic isolated from
SBMS0 including the USB, UART, I2C and the to EXT IO5 and IO6
isolated by the two Toshiba TLP187 above the digital isolator.
On the other side of the isolation you have the ESP32 WiFi module andyou also have two ADC inputs set with the two precision resistors
134kOhm and 3.9KOhm and this can measure 0 to 60V as referenced toBattery negative. There is no special function for this two ADC at the
moment but the values will be logged in the internal SBMS flash memorythat will log all data at 2 minutes interval for one full year.
There is a 16pin Molex connector that is not soldered in this photo and thatis how this board will connect to the SBMS0 main board.
Since the UART and USB are fully isolated you can connect without
problems any computer or a Raspberry Pi type board even if those aresupplied from same battery.
There is space for a 10pin connector (will be included but not soldered)and on those (labeled on the other side) you have access to I2C, UART
and the EXT IO5, EXT IO6 all of them galvanic isolated from SBMS0.
If you are using the USB then this side of the isolator is powered from USB
else if you say want to use this with UART directly connected to Raspberry
Pi or similar boards then you need to provide also 3.3V on the 3V labeled
pin.

15

SBMS0

www.ElectroDacus.com

8 Dual PV array functionality and SOC charge limiting
SBMS0 has now to of the DMPPT450 functionalities see below the details.
In the first photo you can see the same two DMPPT450 settings max charge current and Max SOC also
apply now to SBMS0 directly.
The max SOC limit is in this example set at 70% and what will happen is that every new day the battery will
first be fully charged 100% SOC but then the next charge cycles for the same day will only start at 67% andend at 70% so it will stay around 70% SOC and cycle there with a 3% SOC hysteresis. You can set this at
any limit 80 to 90% will be great setting for LiFePO4 while for NMC and LiCoO2 around 70% to 80% will be
best.
The max charge current can be set between 10A minimum and 600A max for SBMS0 as one typical 60 cellpanel outputs up to 10A and you can not have less than one panel and SBMS0 can support 60 of thosepanels with the use of 30x DSSR20's
The way this limit works is that you will have the PV array split in two with a small PV array set as type 1 andsecond array ideally 2x the size of the first as type 6.
In second photo you see EXT IO4 set as type 1 and EXT IO5 as type 6.
As an example a 24V 200Ah LiFePO4 battery should be charged at max 50 to 60A so you can just use 6large panels and that is all but since panels are less expensive than batteries it is useful to have a larger PV
array and so you can add a second separately controlled array of 12 panels that is controlled by EXT IO5
set as type 6 and this way when the small 6 panel array only outputs half the 50A limit say 24.99A the
SBMS0 will disconnect this and switch the 12 panel array that if in same conditions should now output
around 50A so even if amount of solar dropped to half you can still charge at full 50A this will be called level2 noted with L2 on the LCD and if this drops below 66% of 50A = 33A then it will add the 6 panels at thesame time so now you have all 18 panels connected and should still get 50A this will be called level 3 you
can see in last image the L3 indication on the lower left part of the screen just after PV1.
If now the solar increase to more than 20% above the 50A limit (60A) then it will drop to Level 2 and if that
also exceeds by 20% the max setting it will drop to Level 1 that since only has 6 panels can not exceed theideal charge current for this battery.

16

SBMS0

www.ElectroDacus.com

9 WiFi
SBMS0 include an optional WiFi module that can be used for remote monitoring. The SBMS acts as an AP (Access Point) and will deliver data to a
WiFi enabled computing device that supports a HTML5 capable web browser (a smart phone, tablet or laptop/desktop computer).
All you need to do is download and decompress this html file http://electrodacus.com/SBMS120/SW/SBMS.zip and copy to your device thenconnect to SBMS-000 named AP and open that file with your preferred web browser.
Notice cell balancing on cell number 5. I had not captured cell balancing in the other photos since cells are well balanced. The “<<” symbol aftercell voltage indicated cell balancing is performed on that cell.
*Photo shows the older SBMS100 but it works the same in this regards.

17

SBMS0

www.ElectroDacus.com

The raw data over WiFi are transmitted in a compressed format and if you want to see the raw data you can just write in your web browser address
window the following IP address while connected to SBMS 192.168.4.1 then you will see something similar as below.
var PV1="################################################################################################################################################################################################################################################";
var PV2="###################################################################################A\\_ky}vnM#L$##@*###=###D###L$###I2#-;}xtqp6######################MnoqpoligU############:VUUTSSRQP||||||||||||{|||||{||{||||||||||||||{||{{{{||||{{{{|{|{{|||{";
var Btp="###################################################################################?X\\iy}vmI#G###9####6###?###H####<$##4}vqoo'######################0Y[\\\\ZWTR<#############<<GJIHHFFx}vuvwvvwwww{|{|vu{tu|uvwwvvvuv{zvutyzttuvw{uuttt{uwvvvvwvvu";
var Btn="############################################################################################,#*,,##,,,#,,,#,,,#*,,,##3(#######666666676677677777778:##########GGGGGGGGGGHH*#####################################################################";
var Ld ="%$$$$$$$%$%$$$$$%%%%%%%$$$$%$%$%$%%%$$$$$$$$$%$%&&&&&%%&%&&&%%&&&&%&%%&'(''''&%%&%&>QRSSRRQQTSUTUSTUUUSTTTRTTTPRSTW|z}|UOOPNMQRQQRRRRSRSSSRSTTTSTTUZ}{z{{zzyxxzzz{{{{|{{||zzz^TSSQSRvly{yxxzwwwxnnomxzn|zmzzvwyzyzypryz}rp|
zywuo{z{zznywwxvwwxxz";
var ELd="################################################################################################################################################################################################################################################";
var sbms="3';2LD$,I)I*I+I+H}I%I+I**h##+#)P####->##################%N(";
var xsbms="#&lL6>N$##5";
var gsbms="#Kc#7?#-L#H&#3p#*+#)r#)|#&|";
var eA="####.(##########K2empty-####K2####3i######";
var eW="####&%##########-xempty-####-x####'X######";
var s1=['Ah','A','SBMS100'];
var s2=[0,0,0,0,0,0,0,0,3,5,1,1];

The small print above is an example of what you will get if you look at the raw data. The data is compressed using my proprietary base 91
encoding using the ascii characters from 35 "#" to 125 "}" this was a simple and efficient way for me to compress data.
The first 6 variables in that raw data are the data for displaying the 6 graphs (3 graphs windows each containing 2 graphs or in the case of battery
a separate graphs for charging and discharging)
It will be simple to deduce each of those variables and what they contain by looking at the java script code inside the html file mentioned above.
Since this are just raw data representing measurements made by the SBMS you can modify the html page so that you can get a better / nicer userinterface or more tailored to your needs.
The sbms variable is the one containing the most important data and I will go in to more details about that one in the next chapter related to SBMS
internal data logging.

18

SBMS0

www.ElectroDacus.com

10 Internal data logging
The SBMS has an internal 128Mbit (16Mbyte) SPI Flash memory that can log data at a fixed 2 minute interval.
The memory is capable of storing a full year (12months) of data in a circular type buffer so you always have the last 12 months worth of data inthat internal Flash memory.
In order for the data logging to start you will need to set the Date and Time and you will notice the small “mem” symbol in the lower right side of
the SBMS LCD being highlighted.
The data is also stored compressed in the memory same base 91 compression mentioned in the WiFi chapter and contains the data sent also over
WiFi in the sbms variable.
Here is an explanation of what is contained there and what it is logged in the internal memory.

var sbms="YMDHMS%%C1C2C3C4C5C6C7C8ITET+BATPV1PV2EXTAD2AD3AD4ht1ht2ERR"
Y-year last two digit (limited to 2090); ( sorry if you read this in 2091 I will not expect a software update :) ).
M-monthD-day
H-hourM-minute
S-seconds%% - SOC 0 to 100%
C1 to C8 - cell voltage in mV
IT and ET - internal and external temperature in hundreds of a degree 0 is -45C and 1449 is 99.9C so you need to subtract 450 from the result anddivide by 10 (example 689 as result of the decompression will be (689-450)/10=23.9C)+ - sign for battery charging (+) and discharging (-) used as it is no compression.
BAT - Battery current in mA from -750000mA to +150000mA
PV1 - PV1 input current in mA
PV2 - PV2 input current in mA

19

SBMS0

www.ElectroDacus.com

EXT - Ext Load current (the use of 10A up to 500A 75mV external current shunt is possible on both SBMS40 and SBMS120 see page 13)
AD2 and AD3 - user available ADC inputs the value is the digital output of the ADC.
ht1, ht2 - reserved for power output of the DMPPT450
ERR - this is error code it will contain the information referring to the error flags on the SBMS.
There are 15 Flags (see monitoring page3 on SBMS) not all flags represent an error some are representing normal operation and if you consider
this a 15bit binary number each bit representing one flag with “1” highlighted and “0” not highlighted and you start from the top left with OV flagand continue to right and then down to the last flag DFET and consider the OV as the least significant bit and DFET most significant bit then you
get this binary number and convert to decimal that will be the value contained in this ERR Status and you can also see this number on the SBMS
LCD just under the battery SOC value and also displayed as Status: in the html page.
Uncompressed data and formatted in .csv as it was on SBMS4080 will look like thisY ,M ,D ,H ,M ,S ,SOC,cel1 ,cel2 ,cel3 ,cel4 ,cel5 ,cel6 ,cel7 ,cel8 ,IT ,ET ,-Batt , PV1 , PV2 ,ExtLoad, ADC2, ADC3, ADC4, heat1 , heat2 , ERR
00,01,31,22,53,47,100,3414,3416,3444,3433,3426,3419,3420,3380,000,000,-002000,000000,000000,000000,000000,000000,000000,000000,000000,000000

This is the javascript function for decompression (you will find this inside the SBMS webpage) function dcmp(p,s,d){xx=0; for (z=0;z<s;z++){xx =xx + ((d.charCodeAt((p+s-1)-z)-35)*Math.pow(91,z));}return xx;}Werep - location of the data in the string.
s - size of the data (example year is 1 cell voltage is 2 and PV1 current is 3)
d - the name of the variable in this case sbms.

20

SBMS0

www.ElectroDacus.com

You can download the compress raw data available in the internal memory over UART by going to Device Settings menu and Internal data log
sub-menu were you can select the month you want to download.
Before that set the UART to ON and the baud rate you prefer in the Device settings and connect the USB port to your computer if you have the
WiFi/USB extension board or if not you can use the UART TX line from SBMS0 16pin connector but make sure to add some sort of optical orgalvanic isolation if your computing device is supplied from same main Lithium battery that SBMS0 protects.
On your computing device have some sort of serial data logger that should collect all the data that will be transmitted when you push the Start
Download data button.
Below you see an example of one hour of compressed data made of 30 sets of data since it will log each 2 minutes and there are 744 hours in a fullmonth and you can get why I can not list all in the manual. When saved as a text file it will be about 1.4MB of compressed data.
var h019="3'$6##$+H+H0H1H/H/H.H+H1*\##-#'%####%f##################%N( 3'$6%#$+H)H-H.H,H+H*H(H-*[##-#'F####%L##################%N( 3'$6'#$+H%H*H*H*H(H'H%H)*K##-#'W####%4##################%N( 3'$6)#$+G}H'H(H$H$H#G|H'*[##-#'o####$z##################%N( 3'$6+#$+GxH#H#G}G{G{GxG}*Z##-#(#####$i##################%N( 3'$6-#$+GvG{G}G{GzGwGwG{*Y##-#(2####$[##################%N( 3'$6/#$+GtGwGyGxGvGtGsGw*]##-#(K####$J##################%N( 3'$61#$*GrGwGxGvGvGtGqGv*Y##-#(J####$C##################%N( 3'$63#$*GpGuGvGtGrGqGpGt*X##-#(T####$7##################%N( 3'$65#$*GnGrGtGqGpGpGnGq*Y###(c####$-##################%N( 3'$67#$*GmGqGsGpGoGnGkGo*X##-#(j#####z##################%N( 3'$69#$*GjGpGqGnGnGmGiGn*W##-#(w#####o##################%N( 3'$6;#$*GhGmGnGlGlGiGhGm*W##-#))#####e##################%N( 3'$6=#$*GfGlGmGjGiGiGgGj*W##-#)/#####Y##################%N( 3'$6?#$*GfGkGlGiGiGgGgGi*S##-#)?
#####M##################%N( 3'$6A#$*GcGiGjGhGhGfGdGh*W##-#)K#####I##################%N( 3'$6C#$*GcGiGjGgGgGeGcGg*U##-#)N#####<##################%N( 3'$6E#$)GbGhGiGfGeGdGbGf*U##-#)b#####1##################%N( 3'$6G#$)GbGgGhGfGfGbGbGf*W##-#)b#####(##################%N( 3'$6I#$)GaGgGhGdGeGcGaGd*U###)r########################%N( 3'$6K#$)G`GeGeGcGcG`G_Gc*V##-#)r########################%N( 3'$6M#$)G`GfGgGcGbGaG`Gb*V##-#){########################%N( 3'$6O#$)GaGfGhGdGcGbGbGc*V##-#&f########################%N( 3'$6Q#$)G_GfGgGfGcGaGaGc*X##-#&a########################%N( 3'$6S#$)G_GfGgGdGcGbGaGb*W##-#&e########################%N( 3'$6U#$)G`GfGfGdGcGbGaGb*U##-#&f########################%N( 3'$6W#$)G`GeGfGdGcGaGaGb*X##-#&p########################%N( 3'$6Y#$)G^GfGfGcGbGaG_Gc*U##-#&p########################%N( 3'$6[#$)G_GeGfGcGbGaG`Ga*W##-#&r########################%N( 3'$6]#$(G^GfGgGcGbGaG`Gb*Y##-#&j########################%N( ";

21

SBMS0

www.ElectroDacus.com

11 User interface
11.1 Main menu
At power on the SBMS will be on main menu and this can also be access later from any other sub-menu by pressing the menu button on top.
The same Menu button has a dual function and if you keep that button pressed (is a touch button so touched) for about 5 seconds you can power
ON or OFF the Load and Charge FET's.
You will also be able tho see the most important information on the bottom part of the screen (that part is present in most menus).
The bottom part contain SOC level in numeric and graphic form the SBMS status represented by a number, the WiFi and internal data log “mem”
symbols. The lowest part will indicate if charge and discharge FET's are active by highlighting or not the PV and Load and you also have thecurrent for PV, Battery and Load.
* SOC (State Of Charge) indication will be set automatically to 50% (49%) when you
connect the SBMS to battery for the first time since SBMS can not guess the state ofcharge based only on cell voltage.
After the first full charge (on battery type 1 when highest cell gets to 3.53V and EOC
flag will be set the battery SOC will jump to 100% ) from that point SOC indication will
represent the real value.

22

SBMS0

www.ElectroDacus.com

11.2 Monitoring
The monitoring menu is were you see all the information about the current state of the battery, PV and load.
All is hopefully obvious. The IT (+32°C in the example below) is the internal temperature of the power board and if that gets above +60°C thenboth the Charge and Discharge will be disabled and will only be enabled after temperature drops below +50°C
ET is external temperature optional since a LiFePO4 will not have any temperature increase working within the 0.3C charge rate and 0.6 to 0.8C
discharge rate recommended for Off Grid solar type applications.
The first direction sign for the battery with a darker color represents the ISL94203 current direction detection not as sensitive as the dedicatedcurrent shunt and if there is no minimum load or charge in order for the ISL94203 to detect the IC will try to enter in sleep mode after 4.5h ofinactivity so you may notice a short one second or less power OFF if you have a really small load and charge not detected by ISL94203 IC.
The green DMPPT symbol in the top right corner shows that there is successful communication over I2C with the external DMPPT450.
By pressing the OK button while in this menu you will be presented with asmall submenu allowing you to change the display from current measured
with 1mA resolution to power measured with a 0.1W resolution and also
allowing you to change the temperature units from Celsius to Fahrenheit

23

SBMS0

www.ElectroDacus.com

The monitoring menu has a total of 4 pages (5 pages for firmware above version 3.0g as support for DMPPT450 was added) and the second pageof the monitoring accessed by pushing the up key contains the energy counters as you see in the below screen shoot.
The Ah and Wh counters for PV, Battery and Load can be reset by pressing the OK button that will present you with a Reset submenu as you see inthe second image allowing reset of each individual counter or resting all counters at the same time by using the last option.
You can get out of this submenu without resetting any counter by selecting by using the Back touch key.
You can reset this counters every day if you want since there is also a total counter you will be able to find in the About menu and you can readmore about that one later in this manual.

24

SBMS0

www.ElectroDacus.com

The third monitoring page will display the 15 “error” flags. While I call them error flags they are not all errors and represent normal operation of
the SBMS.
CFET and DFET show if Charge and Discharge FET's are ON or OFF (if highlighted they are ON). Then when highest cell gets to 3.55V (in caseof default battery type 1 settings) the CFET will be turned OFF terminating the charging and the OV (Over Voltage) flag will be highlighted but
this is normal operation and not an error. Same will be true if battery is getting discharged and the lowest cell gets below 2.8V for more than one
second then DFET will be turned OFF and the UV (Under Voltage) flag will be highlighted (again normal operation even if you probably do notwant to have an empty battery while off grid).
EOC (End Of Charge) is also a normal operation flag and it will be set when the highest cell gets to 3.53V with battery type 1 default settings.
UVLK or OVLK is an error since those limits are set lower and higher than UV and OV and it means that the respective mosfet has failed as ashort circuit and can not disconnect the PV or Load or you played with advanced parameter settings and used wrong values in there.
COC, DOC and DSC are also errors for over-current or short circuit and they can be caused by multiple conditions.
OPEN (open cell wire) is also an error indicating that you have a bad connection to one of the cell monitoring wires while CELF (cell fail) meansthat one of the cells has a voltage below what is acceptable and may be do to a bad cell to cell power connection or a defective cell with highinternal resistance.
LVC is also an error and means that one of the cells has a voltage so low that normal charging is not allowed (you can manually charge that cellwith a small current and see if it can be recovered).

25

SBMS0

www.ElectroDacus.com

The monitoring page (page 4) will give you a graphical representation for current or power energy graphs.
To select between the current and power energy graphs you push the OK button that will bring a submenu with the first to options being current or
power.
There are 9 mini graphs from top to bottom you have PV, Battery and Load graph and from left to right you have last 12h, last 1h and last one
minute energy graphs.
All this graphs can be zoomed in by using the OK button and selecting one of the 3 options PV, Battery and Load.
The mini graphs are auto scaling and the peak in each graph is represented by a number displayed on the top right corner of the graph.

26

SBMS0

www.ElectroDacus.com

Here you can see some of the zoomed graphs they will show a larger time range than the mini graphs so you see the last 24h the last 4h and thelast 4 minutes and you can select that again by pressing the OK button and being presented with a submenu.
In this zoomed graphs you also have the possibility to use a cursor to make measurements on the graph and the cursor can be moved with the up
and down keys.

27

SBMS0

www.ElectroDacus.com

Monitoring page 5 will be populated with data if the SBMS is connected to DMPPT450 that in turn is powered by the PV array.
The green DMPPT symbol on the top right corner indicates successful I2C connection to the DMPPT450.
In this current image you can see that TPV1,TPV3,TPV4 and TPV5 are all redirected to battery charging (showed by highlighted units “A” ) while
the remaining TPV2 and TPV6 are used to power the TLD2 with about 14.6A (a 500W DC heating element in this example).
DMPPT450 (Digital Max Power Point Thermal controller 450A) has dual functionality.
One is to take the energy from a large PV array (up to max 14kW possible split in to 6 subarray's) and redirect as much as needed to battery
charging this way a smaller battery capacity can be used to handle a large energy consumption.
Second is to use all the energy not needed for battery charging and store that in to thermal mass (example of thermal mass can be water, concrete,sand …) . The DMPPT450 will have 6 outputs connected to different size heating elements that will be embedded in your preferred thermal mass
for house heating applications or domestic hot water.
The very low cost solar PV energy together with even lower cost thermal storage makes this the ideal solution for house heating applicationcompeting in therms of cost amortization with natural gas. For details see DMPPT450 user manual.

28

SBMS0

www.ElectroDacus.com

11.3 Parameter settings
The parameter settings menu is important and the first you will use when you instal the SBMS since you need to select your battery type.
Fortunately the settings are simple since all you need to do is select battery type probably type 1 “LiFePO4” since that is the most cost effective
battery for stationary energy storage do to is long cycle life compared to other type of lithium batteries and also one of the safest batteries.
Then next thing you select is the number of cells probably 8 cells or in some case 4 cells if just a 12v equivalent system is needed and the circuit
diagram on the bottom will auto update to show you how to make the connections for different number of cell configurations starting with aminimum of 3 cells and up to max 8 cells.
The third and last setting is the battery capacity in Ah and this is needed so that SBMS can know to calculate the real SOC (State Of Charge) for
your battery pack.
In the example below you see a 4s 12V 200Ah battery using the real battery capacity will give a more accurate SOC calculation.
Then just push the Store Parameters button and a green progress bar will show up briefly (about 2 seconds) indicating that data is written to the
ISL94203 EEPROM and for this to take effect a power cycle will be needed as explained in install instructions.
*see details at page 5.

29

SBMS0

www.ElectroDacus.com

11.3.1 Advanced parameter settings
The advanced parameter settings contains over 30 parameters related to battery charging and discharging and for most users this is not something
they will want to mess with :) . If you think you have strong knowledge about how the Lithium cells should be charged then just read the build inscrolling help explaining each parameter.
The default parameters that I carefully selected for long battery life are good for most cases. Unless you want something specific and you
understand the implications of changing this settings is better not to change settings in this menu.
If you do change one parameter look also at the rest of them since there are probably related parameters that need to be changed also in order forthe charge and discharge to work correctly.
When entering from the main menu in the Parameter setting the parameters displayed in both simple and advanced are the one currently set in the
ISL94203 when you select a Cell Type all the values will be set to default.
*the Over current settings are not used for SBMS0.

30

SBMS0

www.ElectroDacus.com

11.4 Device settings
11.4.1 Time & Date
To enable internal data log you need to set the time and date. While in the time and date menu the data logging is disabled but once you get out ofthat menu after you set the date and time the internal data log is enabled and you will see the “mem” symbol under WiFi symbol highlighted.
New option since 3.0g version was added allowing automatic reset of energy counters every 24h at midnight.

31

SBMS0

www.ElectroDacus.com

11.4.3 USARTThe USART RX and TX pins are available on the 16 pin connector for the user but they are also used by the WiFi so if you want to use the serial
port the WiFi can not be used.
When you set the USART data log on 1 the WiFi will automatically be deactivated. You may also want to set the bit rate lower since that default
921.6kbps is used by the WiFi module. If you have the WiFi/USB extension with digital isolation best max speed is 460.8K if you do not need thatyou can also use the more standard 115.2K
The log interval represents the interval at witch the compressed log data will be sent over automatically (no request is necessary). You just need adevice reading and storing the data.

32

SBMS0

www.ElectroDacus.com

11.4.2 LCD & TouchKey
The LCD & TouchKey menu has 4 settings.
Back light level has a value from 1 to 32 and will affect the brightens of the LCD's LED back light with 1 the lowest setting and 32 the highest.
The LED current limiting is an analog constant current level no PWM dimming is used so there will be no flicker.
Menu color allows you to change the color scheme from 0 to 9 with number 2 set as default. A large percentage of people especially men are color
blind with most of them not being able to see red, green or both and in that case the default yellow/orange color is quite bad (is not so highcontrast even for people that see all colors) and you should probably select the light blue number 9 for more visibility or try the other colors to see
what looks best for you.
Back light time out is the amount of time in minutes until the back light level will enter a low power mode were level will be set to 5 if no keys aretouched in this interval of time. Sting a lower level or even turning off the LED will not save any significant amount of power so I decided to havelevel 5 as low power mode. If set to zero it will never enter low power mode.
Key lock time out is the amount of time in minutes until the capacitive touch keys will be locked and to unlock you will need to push 3 keys in theflowing order OK,UP,DOWN (there will be on screen instructions about this). If set to zero keys will never get locked.
Invert Color (option added since firmware 2.0) allows to reverse colors so you have a white background instead of default black.

33

SBMS0

www.ElectroDacus.com

11.4.3 USARTThe USART RX and TX pins are available on the 16 pin connector for the user but they are also used by the WiFi so if you want to use the serial
port the WiFi can not be used.
When you set the USART data log on 1 the WiFi will automatically be deactivated. You may also want to set the bit rate lower since that default
921.6kbps is used by the WiFi module. If you have the WiFi/USB extension with digital isolation best max speed is 460.8K if you do not need thatyou can also use the more standard 115.2K
The log interval represents the interval at witch the compressed log data will be sent over automatically (no request is necessary). You just need adevice reading and storing the data.

34

SBMS0

www.ElectroDacus.com

11.4.4 WiFi settings
The SBMS has an internal WiFi module based on the popular ESP32.
The WiFi is set as an AP (access point) and you can select the channel, the AP name (useful is you have more than one SBMS) and you can also set
a password if you want there is none by default. The lower part is the raw response of the module to CWSAP command if WiFi module is ON.
Disabling the WiFi will power down the module and that is the best way to save power (not that is needed with the huge battery capacity used inoffgrid).
Check page 19 for more details on the WiFi

35

SBMS0

www.ElectroDacus.com

11.4.5 Internal data log menu
You can download one month at a time worth of data from the internal 128Mbit (16Mbyte) internal SPI Flash memory that can store the last 12
months worth of data.
Download can be done over UART or USB if you have the optional WiFi/USB board. That WiFi/USB board has a digital isolator and if you will
not be using that please make sure to use some sort of galvanic isolation when connecting to SBMS0 or have isolated supply for you computing
device.
For more details on how to use this to download data over WiFi check page 21

36

SBMS0

www.ElectroDacus.com

11.4.6 Save device settings & Factory reset
There are two buttons one that will save all the settings made in the Device Settings menu except for the time and date settings and all the settings
in the Automation menu. After the power to SBMS is removed this data will be in the internal Flash memory so they will be loaded at power up.
The Save device settings will just give you a confirmation that data were saved but the Factory reset (that actually just deletes this saved settings sothat default are loaded initially) needs also a confirmation.
So for Factory reset you need to push OK once then it will ask to confirm by pushing the OK button again.

37

SBMS0

www.ElectroDacus.com

11.5 Automation (EXT IO & ADC)
In this menu you can see the 16pin connector pinout and you can set the 4 EXT IO pins as one of the 5 types including the possibility to change
state when battery SOC is above or below a user defined SOC. Type 6 available on SBMS0 for dual PV array.
In the ADC settings you can set ON/OFF and external load see page 13 for more details and you can also manually calibrate the internal current
readings by fine adjusting the internal current shunt value. The default should be close enough in most cases.
The current sense amplifiers used for PV and ExtLoad can have a positive or negative offset. In case the offset is positive the auto-calibration done
when SBMS powers ON can be done correctly. Since ADC inputs (with the exception of battery ADC) are single ended and can only see a positive
voltage as reference to ground it will not be able to see a current sense amplifier negative offset (offset has to do with manufacturing tolerances)
and a manual correction may be necessary. The offset is usually very small and will translate in just a few mA worst case 300mA.
You will notice that at a small current there will be no reading and after current is above the offset level the reading will exist but it will have thesubtracted offset value. If you add that offset in here the reading will be more accurate since it will include that negative offset.
Type 5 works correctly just since version 4.1p

38

SBMS0

www.ElectroDacus.com

DMPPT Settings
This is only useful when you have a DMPPT450 paired with the SBMS. (SBMS0 can do this alone see the Dual PV array functionality).
Max PVOUT Current: refers to the amount of current DMPPT450 will provide to SBMS as DMPPT450 will typically have a large PV array up to
450A STC and the current will need to be limited to the battery capabilities and battery long life. (You see 50A limit set for my particular 180Ah
LiFePO4 battery as that is about the ideal max charge current for long life around 0.2 to no more than 0.3C) (also used for SBMS0).
Max SOC: at the beginning of each new day the battery will be fully charged 100% SOC but after first full charge each subsequent charge can be
caped to the value set here in this example 90% and so DMPPT450 will not send any charge current until the SOC drops below so 89% and it willstop when it gets above so 91% to maintain this state of charge for the remaining of the day (also used for SBMS0).
TLD235 & TLD146 1Heat 2Cool: there are 6 thermal Load outputs on the DMPPT450 and they are split in to two groups. The first group is madeof output's 2,3 and 5 and are limited to 50A while the second group is made of remaining outputs 1,4 and 6 limited to 100A.
Setting this to 0 will disable the respective group, setting to 1 for heating applications and setting to 2 for cooling applications (cooling with peltierelements).
TLD235 & TLD146 Temperature: the temperature limit can be set individually for for each of the two groups but if you only want a single large
group you just set them at the same temperature.
*for details please check the DMPPT450 user manual.
**only use the provided communication cable between SBMS and DMPPT as that has the build in protection needed.

39

SBMS0

www.ElectroDacus.com

11.6 Diagnostic
This is just useful for development there are some raw ADC readings and the content of the ISL94203 memory again as raw data.
Since I used this during development I decided to leave in the final release but is not useful for most people.

40

SBMS0

www.ElectroDacus.com

11.7 Manual & Install menu
The SBMS0 has no build in manual as of this v4.0 and since SBMS0 needs to be connected to battery to power ON (no USB power option) it will
make sense to read this pdf style user manual.
*this pdf manual is more up to date and detailed so use this one.

41

SBMS0

www.ElectroDacus.com

11.8 About menu
The about menu offers some important information. On top of the expected model number, hardware and software version you also have an energy
counter for PV1, PV2 and Battery that are separate from the resettable counters on the monitoring menu.
This counter has no option to be reset and the counter value will be saved once every 24h in the internal flash memory so the value will be thereeven after a power cycle.
There is also an UP Time counter that will count the number of hours the SBMS was powered.
This screen capture below is from the SBMS120 installed on my house A123 180Ah 24V battery connected for a bit more than a year 371 days
(8902h).
Total energy used was 1551.8kWh with a part of it was used directly by load but also a significant part 839.7kWh was used from the battery.
An average of about 4kWh/day was used typical for my house needs around 120kWh/month.
The DMPPT450 was just installed so there is not much just around 33.3kWh used for some tests on the last few days and this represents energy
used by the heating elements and this will be by far the largest energy usage as it will be used to fully heat my house.

42

SBMS0

www.ElectroDacus.com

43

44

45

SW and HW files for SBMS0 (soon to be available).
HW :
SW :
Firmware binary : https://electrodacus.com/SBMS0/SBMS0v41p.zip

46

SBMS40 / SBMS120

www.ElectroDacus.com