The program was developed jointly with our partner Pavel Bizyukin (p.bizyukin@yandex.ru).
More detailed information about this use case can be obtained from our partner.
The device polls the charge controller, and the received battery and controller status data is written to telemetry.
It is also possible to send a command to control the battery charge/discharge switches.
Additionally, diagnostic flags are monitored during program operation and user logs are recorded.
SEND_DELAY - Controller polling interval.MAX_RX_TIME - Maximum response waiting time for a controller request.MAX_RX_FAILS - Maximum number of request retries if no response is received within MAX_RX_TIME.If there is no response from the controller within
MAX_RX_TIMEand the number of retries reachesMAX_RX_FAILS, the device sets thecmdX_errflag.
CE User Parameter No. 1 - (total_voltage) Total battery voltage.
| Parameter type | Unsigned integer |
| Units | 0.01V |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 2 - (current) Current consumption.
| Parameter type | Unsigned integer |
| Units | 0.01A |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 3 - (balance_cap) Current battery capacity.
| Parameter type | Unsigned integer |
| Units | 0.01Ah |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 4 - (rate_capacity) Maximum battery capacity.
| Parameter type | Unsigned integer |
| Units | 0.01Ah |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 5 - (cycle) Number of operating cycles.
| Parameter type | Unsigned integer |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 6 - (protection_st) Protection statuses (description copied from the communication protocol document):
Bit 0 - single cell overvoltage protection
Bit 1 - single cell undervoltage protection
Bit 2 - whole pack overvoltage protection
Bit 3 - whole pack undervoltage protection
Bit 4 - charging over-temperature protection
Bit 5 - charging low temperature protection
Bit 6 - discharge over temperature protection
Bit 7 - discharge low temperature protection
Bit 8 - charging overcurrent protection
Bit 9 - discharge overcurrent protection
Bit 10 - short circuit protection
Bit 11 - front-end detection IC error
Bit 12 - software lock MOS
Bit 13..15 - reserved
| Parameter type | Bit field |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 7 - (rsoc) Remaining battery capacity.
| Parameter type | Unsigned integer |
| Units | % |
| Transmit as | 1-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 8 - (fet_control_st) Switch states:
Bit 0 - Charge control switch.
Bit 1 - Discharge control switch.
Bit 2..7 - Reserved.
| Parameter type | Unsigned integer |
| Transmit as | 1-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 9 - (ntc_1) Temperature sensor No. 1.
| Parameter type | Unsigned integer |
| Units | 0.1*C |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 10 - (ntc_2) Temperature sensor No. 2.
| Parameter type | Unsigned integer |
| Units | 0.1*C |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 11 - (ntc_3) Temperature sensor No. 3.
| Parameter type | Unsigned integer |
| Units | 0.1*C |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 12 - (power) Current output power.
| Parameter type | Unsigned integer |
| Units | 0.01W |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd1_err flag is set to True |
CE User Parameter No. 13 - (batt_max) Maximum voltage across battery sections.
| Parameter type | Unsigned integer |
| Units | 0.001V |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd2_err flag is set to True |
CE User Parameter No. 14 - (batt_min) Minimum voltage across battery sections.
| Parameter type | Unsigned integer |
| Units | 0.001V |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd2_err flag is set to True |
CE User Parameter No. 15 - (batt_diff) Difference between the maximum batt_max and minimum batt_min voltage across battery sections.
| Parameter type | Unsigned integer |
| Units | 0.001V |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd2_err flag is set to True |
CE User Parameter No. 16 - (batt_avg) Arithmetic mean () voltage calculated across all battery sections.
| Parameter type | Unsigned integer |
| Units | 0.001V |
| Transmit as | 2-byte parameter |
| If data is invalid | value is "frozen", cmd2_err flag is set to True |
CE User Parameter No. 32 - Diagnostic flags:
Bit 0 - (cmd1_err) No response to the basic information request.
Bit 1 - (cmd2_err) No response to the battery section information request.
Bit 2..6 - Reserved.
Bit 7 - (cmd_user_err) No response to the user command.
| Parameter type | Bit field |
| Transmit as | 1-byte parameter |
After an error is detected, the corresponding flag is set and remains active for at least 1 minute
When the value of any flag changes, the device generates event
event_code=41047
| Code | Description |
|---|---|
41046 |
User command successfully executed |
41047 |
Diagnostic flags changed |
When the command is received, the device changes the operating mode of the switches controlling battery charging and discharging.
If the command is executed successfully, the device generates event
event_code=41046
Command:
*!CEVT 225,mos_state
mos_state - Battery charge and discharge control:
0 - Charging enabled; Discharging enabled.1 - Charging disabled; Discharging enabled.2 - Charging enabled; Discharging disabled.3 - Charging disabled; Discharging disabled.Response:
*@CEVT
Examples:
Enable battery charging and discharging:
*!CEVT 225,0
Disable battery charging and discharging:
*!CEVT 225,3