2011-01-18

FMA Direct Cellpro 4S Serial Protocol

The FMA Direct Cellpro 4S is a great RC LiPo battery charger. It reports status over a 3 pin serial interface, see the RS-232 adaptor here. The serial protocol is proprietary; someone reverse engineered it and wrote a nice windows client but did not publish the protocol. I want to monitor it in Linux, so I reversed most of it:
Sample: S012C03AD03AF03AF0000 03000216000000000095044B0 703
Key   : S012Caaaabbbbccccllll ????????????????????????? d?e

Sample: 0000014301FF 0205 00C1 0062 23230000 23230000 03AE 
Key   : ???????????? ffff ???? iiii ???????? jjjjkkkk ????

Sample: 03D0 03AA 0095 1006002C0511
Key   : gggg hhhh mmmm ???????????1

(Normally it's all on one line; split here for readability)

Key:

aaaa -> cell 1 voltage (hex)
bbbb -> cell 2 voltage
cccc -> cell 3 voltage
llll -> cell 4 voltage
  unit = 4mV

d - state:
  - 1 discharging
  - 2?
  - 4 waiting for battery
  - 5?
  - 6 charging battery
  - 7 balancing battery
  - 9 charge complete

e - number of cells (1-based)

ffff -> supply voltage (0205=12.20V)
 -> unit = 23.59375mV

gggg - battery percentage
     00AA = 17%
     0300 = 77%
     03AA = 94%
     1000 = 410%
     -> unit = 0.10%

hhhh - battery percentage when first connected (?)

iiii - seconds elapsed

jjjj - mAh in lower (1000 hex = 11 mAh; 8000 hex = 91 mAh)
kkkk - mAh in upper (1000 hex = 745472 mAh; 0100 = 46592; 0001 = 182 mAh)

mmmm - charge current
     - 1000 = 25A (unit = 6.10mAh)