Skip to content
Luke Tucker edited this page Jan 13, 2022 · 17 revisions

Serial interface settings

TBW

Monitoring

There are two kinds of monitoring messages received from the device. There is a "CM2024 SUP" message every second which seems to be an overall status and is used to indicate that a battery is ready to charge (and possibly other things I am yet to figure out). The second type of message is a "CM2024 DAT" which returns the status of each slot independently.

"SUP" Message

First a message like this will arrive

43 4D 32 30 32 34 20 53 55 50                      CM2024 SUP

Followed by another fixed length message like this:

02 00 7B 01 EE 02 0D 00 82 78 78 78 78 78 78 78
78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
78 98 16 0D 0A

Then when a battery is inserted it will switch to something like:

01 00 7B 01 ED 02 09 00 13 00 01 01 00 02 00 00
00 3C 05 05 00 08 78 78 78 78 78 78 78 78 78 78
78 73 26 0D 0A

78 is a filler value for no data

So far I have figured out the following:

Offset Description
01 Unknown
02 Unknown
03 Unknown
04 Unknown
05 Unknown
06 Unknown
07 Unknown
08 - 09 Sequence Counter going from 0x0000 to 0x0257 (0-599) in increments of 13 - Little Endian
10 Slot awaiting setup (see slot table)
11 Chemistry selected (See chemistry table)
12 Program selected (See program table)
13 Selected maximum charge current (applicable for NiHM/Cd only) (see charge current table)
14 Selected discharge rate (see discharge table)
15 - 16 Selected capacity in mAh in units of 1. Little Endian
17 SD card status (see table)
18 Cool time in minutes
19 Unknown
20 Unknown
21 Unknown
22 SD Slot status
23 Unknown
24 Unknown
25 Unknown
26 Unknown
27 Unknown
28 Unknown
29 Unknown
30 Unknown
31 Unknown
32 Unknown
33 Unknown
34 - 35 Unknown - likely a CRC16
36 - 37 Always 0D 0A - \r\n

"DAT" Message

Offset Description
01 - 02 Sequence Counter going from 0x0000 to 0x0257 (0-599) and resetting - big endian
03 Slot number (see slot table)
04 Chemistry (see chemistry table)
05 Unknown flag - either 0 or 1
06 Program state - always the same as the next value (in 06) unless the program finishes and then it's 0B
07 Program (see program table)
08 Activity Step (see activity table)
09 - 10 Time in minutes - big endian. When Ready, this will stop.
11 - 12 Voltage in units of 0.001 (big endian). e.g. 5F 07 = 1.887
13 - 14 Current in units of 0.001 (big endian). E.g. 17 02 = 0.535
15 - 18 C-CAP stored in units of 0.01 (big endian)
19 - 22 D-CAP stored in units of 0.01 (big endian). e.g. 3D 88 01 00 = 1004.13
23 Unknown
24 Unknown
25 Maximum charge current (see table)
26 Unknown
27 Unknown
28 Pause time in minutes. Windows software allows increments of 30 mins so not sure if other values supported
29 - 30 Battery capacity in mAh - big endian
31 Discharge rate (see discharge rate table)
32 Unknown - Sometimes the same as previous value in 31 so it’s related
33 Unknown
34 - 35 Checksum - CRC-16/MODBUS calculated from bytes 02 to 33
36 - 37 Carriage return - always 0D 0A (i.e. \r\n)

Control

TBW

Common

This is a set of common enumerated values which appear in various messages.

Slot number

Value Description
00 Slot 1
01 Slot 2
02 Slot 3
03 Slot 4
04 Slot 5
05 Slot 6
06 Slot 7
07 Slot 8
08 Slot A
09 Slot B

Chemistry Values

Value Description
01 NiHM/Cd
02 NiZn

Program

Value Description
00 None / slot empty
01 Recharge
02 Discharge
03 Procharge
04 Cycle
05 Alive
06 Maximize
07 No setup
08 Unknown
09 Unknown
0A Error
0B Complete

Activity Step

Value Description
00 Idle
01 Charging
02 Discharging
03 Ready
04 Unknown
05 Cool Down
06 Error

Charge current

Value Description
00 Not Applicable (NiZn)
01 500mA
02 1000mA
03 1500mA
04 2000mA
05 2500mA
06 3000mA

Discharge current

The values are interpreted differently depending on the chemistry

NiZn

Value Description
01 150mA
02 300mA
03 450mA
04 600mA

NiMH/Cd

Value Description
01 125mA
02 250mA
03 375mA
04 500mA
05 625mA
06 750mA

SD card state

Value Description
00 SD off
01 Unknown
02 On / Ready

SD slot state

Value Description
00 NO CARD
01 Unknown
02 Unknown
03 Unknown
04 Unknown
05 Unknown
06 Unknown
07 Inserted
08 Ready
Clone this wiki locally