Wiki source code of BMS Main 3X

Last modified by Admin on 2026/10/26 15:14

Show last authors
1 (% class="box infomessage" %)
2 (((
3 BMS Main 3X firmware update procedure is described [[here>>doc:Battery management systems.BMS Main 3.6\. Firmware update.WebHome]].
4 )))
5
6 = v3.12.1 =
7
8 [[BMS_Main_3X_v3.12.1.bin>>FileManager.BMS_Main_3X_v3\.12\.1\.bin]]
9
10 == Fixes ==
11
12 * skipping the reading of non-existent parameters during data exchange with BMS Mini and BMS Main 2.1
13 * corrections to battery module error names
14
15 = v3.12.0 =
16
17 [[BMS_Main_3X_v3.12.0.bin>>FileManager.BMS_Main_3X_v3\.12\.0\.bin]]
18
19 == Features ==
20
21 * new flag that allows a battery module containing no cells to be considered as being in the offline state (see the "Control - Modules" section)
22 * Unibat: interaction with TMS (see the new "External equipment - Unibat vehicle - TMS controller" section)
23
24 == Improvements ==
25
26 * Unibat: additional delay before disconnecting the battery during discharge in the event that communication with the vehicle is lost (see the "External equipment - Unibat vehicle - General parameters" section)
27 * Unibat: ability to send the continuous discharge current limit (see the "External equipment - Unibat vehicle - General parameters" section)
28
29 = v3.11.2 =
30
31 [[BMS_Main_3X_v3.11.2.bin>>FileManager.BMS_Main_3X_v3\.11\.2\.bin]]
32
33 == Improvements ==
34
35 * Unibat: processing of the HVIL signal even if the Main X or battery modules are not initialized
36
37 == Fixes ==
38
39 * resolving the issue where the device may hang when encountering communication issues while sending a compressed answer via the CLI
40
41 = v3.11.1 =
42
43 [[BMS_Main_3X_v3.11.1.bin>>FileManager.BMS_Main_3X_v3\.11\.1\.bin]]
44
45 == Fixes ==
46
47 * Unibat: resolving the issue with sending DTC SPN 5921 FMI 17 in the DM1 message
48
49 = v3.11.0 =
50
51 [[BMS_Main_3X_v3.11.0.bin>>FileManager.BMS_Main_3X_v3\.11\.0\.bin]]
52
53 == Features ==
54
55 * compatibility with the BMS Main 2RX device; from this release onwards, the BMS Main 2RX firmware version will be the same as the BMS Main 3X firmware version
56 * support for the ESS Modbus controller (see the "External equipment - ESS Modbus controller" section)
57 * ability to manually clear/reset device errors via CANopen, Modbus, CLI (see the "State - Error reset" section)
58 * new input signals "Status 1", "Status 2", "Status 3", "Status 4"
59
60 == Fixes ==
61
62 * resolving the problem of device stability when reading/writing large amounts of data using the Modbus protocol
63 * resolving a problem in the cellular communications subsystem
64
65 = v3.10.1 =
66
67 [[BMS_Main_3X_v3.10.1.bin>>FileManager.BMS_Main_3X_v3\.10\.1\.bin]]
68
69 == Improvements ==
70
71 * support for multiple clients expecting compressed CLI responses
72 * deleting old log files when the SD card is full (see the corresponding flag in the "Service - SD card" section)
73
74 = v3.10.0 =
75
76 [[BMS_Main_3X_v3.10.0.bin>>FileManager.BMS_Main_3X_v3\.10\.0\.bin]]
77
78 == Features ==
79
80 * compressing CLI responses for some commands to speed up data exchange over slow interfaces
81 * ability to reset a device password using a signed token
82
83 == Improvements ==
84
85 * maintaining continuous current limits below peak current limits
86 * ability to clear the "Precharge error" based on the clock (calendar) time (see the "Control - Precharge" section)
87 * Unibat: new parameter that determines the duration of the reduction in current limits after the insulation fault is detected
88
89 == Fixes ==
90
91 * resolving the issue of incorrect SD card handling when the filesystem is corrupted
92
93 = v3.9.1 =
94
95 [[BMS_Main_3X_v3.9.1.bin>>FileManager.BMS_Main_3X_v3\.9\.1\.bin]]
96
97 == Fixes ==
98
99 * resolving the problem of device rebooting when sending data via FTP and MQTT protocols using the BMS GSM v2 cellular module
100
101 = v3.9.0 =
102
103 == Improvements ==
104
105 * support for the second bootloader v3
106 * ability to complete device initialization without waiting for voltage stabilization on the power switches (see the "Control - Initialization" section)
107 * MQTT optimization
108 * optimization of BMS WiFi v2, BMS GSM v1, and BMS GSM v2 drivers
109 * new assignment "Close External 1" and "Close External 1" for the discrete inputs (see the "Signals - Input discrete signals - Assignments" section)
110 * new assignment "External 1" and "External 2" for the discrete outputs and power switches (see the "Signals - Output discrete signals - Assignments" and "Signals - Power switches - Assignments" sections). The "External 1" and "External 2" output is directly controlled by the "Close External 1" and "Close External 2" command.
111 * ability to configure the generation of "External 1" and "External 2" signals based on other internal signals as an alternative to the "Close External 1" and "Close External 2" commands (see the "Signals - External 1-2 signals" section)
112 * Unibat: ability to halve current limits when the insulation warning is detected (see the "External equipment - Unibat vehicle - General parameters" section)
113 * Unibat: ability to emergency disconnect the battery when the isolation alarm is detected in any operating mode (charge and discharge) (see the "External equipment - Unibat vehicle - General parameters" section)
114 * Unibat: ability to delay emergency battery disconnection when the isolation alarm is detected (see the "External equipment - Unibat vehicle - General parameters" section)
115 * Unibat: ability to linearly reduce current limits to zero when the isolation alarm is detected (see the "External equipment - Unibat vehicle - General parameters" section)
116 * Unibat: use of Ohm/Volt units to define insulation warning and alarm thresholds (see the "External equipment - Unibat vehicle - Diagnostic parameters" section)
117
118 == Fixes ==
119
120 * corrected values ​​of the "Internal signals that cause events to be sent" parameter in the "Service - MQTT" section
121
122 = v3.8.2 =
123
124 [[BMS_Main_3X_v3.8.2.bin>>FileManager.BMS_Main_3X_v3\.8\.2\.bin]]
125
126 == Improvements ==
127
128 * Unibat: preventing the reset of the HVBPITS and HVBPITR signals if the device shutdown was caused by the insulation fault
129
130 == Fixes ==
131
132 * Unibat: charge current limit protection is disabled in charge mode only when the "Use continuous charge current limit" flag is set
133 * Unibat: discharge current limit protection is enabled regardless of whether the battery is in discharge or charge mode
134
135 = v3.8.1 =
136
137 [[BMS_Main_3X_v3.8.1.bin>>FileManager.BMS_Main_3X_v3\.8\.1\.bin]]
138
139 == Improvements ==
140
141 * setting and clearing the "Voltage unbalance" errors without delays
142 * new CAN bus speed is not applied until the device is rebooted
143 * logging the following new parameters: "UnibatState", "UnibatOperationalModeState", "Keyrun", "ChargeOn"
144 * Unibat: ability to shutdown the battery if its SOC is too low (see the "External equipment - Unibat vehicle - Diagnostic parameters" section)
145 * Unibat: change the resolution of parameters CC and DC from 0.01 to 0.1 Ah/bit
146 * Unibat: do not turn on the amber lamp if the actual battery SOC is equal to the configured maximum operational SOC
147
148 == Fixes ==
149
150 * resolving the problem of completing the initialization process before the power switch voltage stabilizes
151
152 = v3.8.0 =
153
154 [[BMS_Main_3X_v3.8.0.bin>>FileManager.BMS_Main_3X_v3\.8\.0\.bin]]
155
156 == Features ==
157
158 * support for the Trolleybat vehicle (see the "External equipment - Trolleybat vehicle" section)
159
160 == Improvements ==
161
162 * checking the continuous charge current limit only if the "Use continuous charge current limit" flag is set in the "External equipment - Unibat vehicle - General parameters" section
163 * Unibat: transition to charging mode according to the condition EESCD=7
164
165 == Fixes ==
166
167 * resolving the problem of completing the initialization process before the power switch voltage stabilizes
168 * Unibat: prevent the "Charge request" and "Discharge request" signals from being reset if the Unibat vehicle goes offline (the signals are controlled in the Unibat state machine)
169
170 = v3.7.1 =
171
172 [[BMS_Main_3X_v3.7.1.bin>>FileManager.BMS_Main_3X_v3\.7\.1\.bin]]
173
174 == Fixes ==
175
176 * Unibat: do not send the insulation error DTC if the IMD goes offline when the battery system is in the shutdown mode
177
178 = v3.7.0 =
179
180 [[BMS_Main_3X_v3.7.0.bin>>FileManager.BMS_Main_3X_v3\.7\.0\.bin]]
181
182 == Features ==
183
184 * new profile section with global battery status, which includes total charge and energy counters, total operating time, contactor opening count, etc. (see the "Profile" tab in the Unified monitor)
185 * new total charge counters (plus and minus)
186
187 == Improvements ==
188
189 * Unibat: new flag to set the custom value (=3) for the EESCD signal (see the "External equipment - Unibat vehicle - General parameters" section)
190 * Unibat: new bit field to ignore internal errors that cause battery shutdown (see the "External equipment - Unibat vehicle - General parameters" section)
191 * Unibat: sending a new packet containing the continuous charge current limit
192
193 == Fixes ==
194
195 * optimization of the logging process, minimizing the time to open the next log file if the current one is full
196 * resolving the stability problem when the SD card is full
197 * Unibat: prevent sending module online statuses if the power down condition is met
198 * Unibat: small fixes
199
200 = v3.6.2 =
201
202 [[BMS_Main_3X_v3.6.2.bin>>FileManager.BMS_Main_3X_v3\.6\.2\.bin]]
203
204 == Improvements ==
205
206 * turning on power switches with a delay of 1 second after reaching the supply voltage of 9V
207 * Unibat: new flag that allows to hide the insulation testing status when repeating measurements (see the "External equipment - Unibat vehicle" section)
208 * expansion of the list of parameters that are reset to default values when the device is powered on while holding the button on the board. The following parameters are affected: all CAN1 (ext) settings; all CAN2 (int) settings; all CAN3 (BMS) settings; all RS-485-1 (Modbus) settings; LAN settings: IP mode, IP address, Netmask, Gateway address
209
210 == Fixes ==
211
212 * resolving the issue of false warnings indicating that the battery current exceeds the current limits (affects Unibat vehicle)
213 * Unibat: changes that make it so that the output period is responsible for only 4 messages, not for all messages (see the "External equipment - Unibat vehicle" section)
214 * Unibat: resolving the issue of TP messages not being sent if the transport is already transmitting something at the time of the request
215 * corrections of typos in parameter descriptions
216
217 = v3.6.1 =
218
219 [[BMS_Main_3X_v3.6.1.bin>>FileManager.BMS_Main_3X_v3\.6\.1\.bin]]
220
221 == Improvements ==
222
223 * new parameters for switching to the sum of battery modules' currents if the current sensor error is detected or the sensor is saturated (see the "Inputs - Current sensor" section)
224 * new flag allowing to swap CAN2 (int) and CAN3 (BMS) interfaces (see the "Connectivity" section under the service account)
225
226 = v3.6.0 =
227
228 [[BMS_Main_3X_v3.6.0.bin>>FileManager.BMS_Main_3X_v3\.6\.0\.bin]]
229
230 == Features ==
231
232 * Unibat: refined algorithms and new parameters to meet requirements of version 8.5 of the logic (protocol v6.1)
233
234 == Improvements ==
235
236 * new flag enabling fast current measurements (see the "Signals - Current sensor" section)
237 * new parameters to ignore the specified errors when setting the critical error (see the "Protections - Critical error" section)
238 * displaying HV calibration values for the service account (see the "Service - Calibration" section)
239 * Unibat: structuring parameters into subgroups: "General parameters", "Battery parameters", "Diagnostic parameters", "Power limiting parameters", "Battery version" (see the "External equipment - Unibat vehicle" section)
240
241 = v3.5.0 =
242
243 [[BMS_Main_3X_v3.5.0.bin>>FileManager.BMS_Main_3X_v3\.5\.0\.bin]]
244
245 == Features ==
246
247 * support for sending battery state and events via MQTT protocol via Wi-Fi or cellular network (see the "Service - MQTT" section)
248
249 == Improvements ==
250
251 * support for secure (TLS) connections in BMS GSM v1 and v2 drivers
252
253 == Fixes ==
254
255 * synchronization of the precharge procedure with the charge/discharge algorithms, so that precharge is stopped if charging and discharging are prohibited
256
257 = v3.4.0 =
258
259 [[BMS_Main_3X_v3.4.0.bin>>FileManager.BMS_Main_3X_v3\.4\.0\.bin]]
260
261 == Features ==
262
263 * new protection checking that the voltage of joined battery modules is equal to the voltage before contactors (the "High voltage 1" value). If this is not the case, the error "Battery voltage mismatch" is generated (see the "Protections - Battery voltage" section)
264
265 == Improvements ==
266
267 * new CLI command "find-log" which finds a log file containing a specified timestamp
268 * ability to acknowledge battery module errors via CLI (see the "Service - Errors journal" section) and Modbus protocol
269
270 == Fixes ==
271
272 * resolving the issue of rebooting the device if formatting the SD card is activated
273
274 = v3.3.0 =
275
276 [[BMS_Main_3X_v3.3.0.bin>>FileManager.BMS_Main_3X_v3\.3\.0\.bin]]
277
278 == Features ==
279
280 * ability to calibrate high voltage measuring means, available starting with the service account (see the "Service - Calibration" section)
281
282 == Improvements ==
283
284 * new type of temperature sensors: NTC 10k B25/50=3380K (see the "Signals - Temperature sensors" section)
285
286
287 = v3.2.5 =
288
289 [[BMS_Main_3X_v3.2.5.bin>>FileManager.BMS_Main_3X_v3\.2\.5\.bin]]
290
291 == Improvements ==
292
293 * dynamic calculation of data transfer schedule for optimal communication with a large number of battery modules
294 * ability to complete device initialization after the set timeout has expired and the minimum number of modules has been detected (see the "Control - Initialization" section)
295 * 30 second delay when remounting SD card after detecting mount error
296 * saving the number of joined modules in log files
297 * Unibat: new flag disabling insulation measurement
298 * Unibat: calculation of the battery current depending on the connection variant of current sensors
299 * Unibat: preventing HVILS changes if the battery is in power-down state
300
301 == Fixes ==
302
303 * resolving the problem of ignoring the parameter that selects the connection variant of current sensors
304 * Unibat: corrections in message identifiers HVESSS1, HVESSD2, HVESSD3, HVESSD8, storing battery module data
305 * Unibat: corrections in HVESSCFG message priority
306
307 = v3.2.4 =
308
309 [[BMS_Main_3X_v3.2.4.bin>>FileManager.BMS_Main_3X_v3\.2\.4\.bin]]
310
311 == Improvements ==
312
313 * new flags that allow to interrupt (shorten) the module balancing stage if all battery modules are already joined (see the "Control - Charge", "Control - Discharge", "Control - Charge/Discharge" sections)
314 * forwarding CLI and bootloader CAN messages from CAN1 interface to CAN2 interface and back, that allows the user to configure and update the firmware of internal devices such as BMS IMD or BMS Display
315 * new parameter for setting the type of network to which the BMS GSM communication module connects (see the "Connectivity - Cellular" section)
316
317 == Fixes ==
318
319 * Unibat: resolving the problem of calculating the CRC of the HVESSS1 message
320 * Unibat: resolving the problem of sending a message about battery disconnection even it is already disconnected
321
322 = v3.2.3 =
323
324 [[BMS_Main_3X_v3.2.3.bin>>FileManager.BMS_Main_3X_v3\.2\.3\.bin]]
325
326 == Improvements ==
327
328 * forwarding CLI and bootloader CAN messages from CAN1 and CAN2 interfaces to CAN3 interface and back, that allows the user to configure and update the firmware of battery modules without direct connection to the modules
329 * ability to acknowledge errors in the error journal via the Modbus protocol (holding registers 0x4100-0x4101)
330 * ability to update the device serial number from the service account if the number is reset to the default value for some reason (see the "Service" section)
331 * new flag that controls whether to use open circuit voltage or actual voltage when determining the voltage unbalance error (see the "Protections - Voltage unbalance (in any state)" section)
332 * new regulator that maintains battery current limiting to ensure that actual module currents do not exceed their current limits (see the "Control - Charge", "Control - Discharge", "Control - Charge/Discharge" sections)
333 * ability to select the battery module errors that cause the battery critical error (see the "Protections - Critical error" section)
334 * Unibat: refined algorithms and new parameters to meet requirements of version 7 of the logic
335
336 == Fixes ==
337
338 * resolving the problem of saving discrete input signals of battery modules in log files
339
340 = v3.2.1 =
341
342 [[BMS_Main_3X_v3.2.1.bin>>FileManager.BMS_Main_3X_v3\.2\.1\.bin]]
343
344 == Improvements ==
345
346 * new parameter that sets the delay before measuring the current to determine that precharge is finished (see the "Control - Precharge" section)
347 * ability to exclude errors from being saved in the error journal (see the "Service - Errors journal" section)
348 * new flags indicating the readiness of battery modules to join for charging and discharging (see the "Modules" section)
349 * new flag to set the "Voltage unbalance" errors for battery modules that are not ready to charge or discharge (see the "Protections - Voltage unbalance (in any state)" section)
350 * Unibat: new parameters setting the BMS and VCU addresses (see the "External equipment - Unibat vehicle" section)
351 * Unibat: new flag to invert the discharge current limit sent to the vehicle (see the "External equipment - Unibat vehicle" section)
352 * Unibat: using the difference between the maximum and minimum temperatures among all cells as an input for the coolant pump controller
353 * Unibat: automatically switch from discharging to charging mode if the CHARGE_ON signal or the charging station command is set (without rejoining the battery)
354 * extension of the CANopen dictionary to provide additional information for the BMS Display (device serial number, battery serial number, battery address, Wi-Fi and LAN addresses, SOH, capacity, etc.)
355
356 == Fixes ==
357
358 * resolving the issue of ignoring the minimum number of battery modules allowed to join located in the "Control - Discharge" section
359 * resolving the issue of joining battery modules the number of which must be greater than or equal to the minimum value specified in the settings
360 * making the service reset function work properly
361 * small internal fixes
362
363 = v3.2.0 =
364
365 (% class="wikigeneratedid" %)
366 [[BMS_Main_3X_v3.2.0.bin>>FileManager.BMS_Main_3X_v3\.2\.0\.bin]]
367
368 == Features ==
369
370 * new algorithm in the Charging/Discharging controller that allow to control the Charging/Discharging contactor independently from the Charging and Discharging signals (see the "Control - Charge/Discharge" section). The new "Independent" algorithm is preferred in the battery systems with one contactor
371 * new "Need acknowledge" warning signal that is set when a new record is created in the errors journal. The signal can be cleared in the "Service - Errors journal" section
372 * new Max-Min algorithm for calculating the final battery SOC in the "Control - Calculation" section
373 * improved control of the precharging contactor, which can precharge capacitive load using multiple attempts and detect high power dissipated in the precharge resistor (see the "Control - Precharge" section)
374 * ability to select errors that the device saves in the errors journal (see the "Service - Errors journal" section)
375
376 == Improvements ==
377
378 * ability to finish device initialization even if the number of battery modules found is less than the number of modules enabled
379 * ability to configure and monitor the device via the CAN1 (ext) bus
380 * placing the device input signals to the "Battery" section and adding raw discrete inputs to the "Signals" section
381 * Unibat: support for functional description v3.5 (protocol v1.5)
382
383 = v3.1.1 =
384
385 [[BMS_Main_3X_v3.1.1.bin>>FileManager.BMS_Main_3X_v3\.1\.1\.bin]]
386
387 == Fixes ==
388
389 * resolving the problem of incorrect range of temperature parameter values (in the "Control - Coolant pump" section)
390 * resolving the possible problem of saving device parameters
391 * resolving the problem of writing the device's working time to a non-volatile memory very often
392 * resolving the issue of preparing battery module states written to Modbus registers
393
394 = v3.1.0 =
395
396 [[BMS_Main_3X_v3.1.0.bin>>FileManager.BMS_Main_3X_v3\.1\.0\.bin]]
397
398 == Features ==
399
400 * new parameter to set the minimum number of battery modules allowed to join (see the "Control - Charge" and "Control - Discharge" sections)
401 * ability to rejoin battery modules if their voltage is close to the battery voltage (see the "Control - Charge" and "Control - Discharge" sections)
402 * selection of errors that cause reset of contactor control signals (see the "Control - Main contactor", "Control - Charge", "Control - Discharge", "Control - Heater", "Control - Cooler", "Control - Coolant pump" sections)
403 * new internal signal "General error (modules)" which is the logical sum of the "General error" signals from the battery modules
404 * new assignments "Critical error" and "General error (modules)" for the discrete outputs and power switches (see the "Signals - Output discrete signals - Assignments" and "Signals - Power switches - Assignments" sections)
405
406 == Improvements ==
407
408 * use the measured voltage before contactors as the battery voltage if the "Control - High voltage" function is enabled
409 * Unibat: new flag to enable sending a control message to start/stop ventilation fans installed in the battery modules (see the "External equipment - Unibat vehicle" section)
410 * rearrangements in the settings sections, which are made to simplify the setup process
411
412 == Fixes ==
413
414 * Unibat: minor changes in the communication protocol