Enhancing parser for 8 byte command string (expect problems with type conversions) for Arduino/Radio communication
I don't know exactly why (maybe radio, maybe I caused unexpected behavior because of type conversions here).


Can you keep statistics on how many checksum errors there are?


If there are many that implies that the communications link is noisy
If there are few or none then it's more probably something else (e.g. a software error)


I'm not sure that you're using a good checksum algorithm.; you might like to use a CRC instead.

You're only using 7 of your 8 bytes so you could have a 2-byte CRC (or checksum).

You could compress your data better:


'1 - 9'
'0 - 99' => 10 bits to store 0..999 throttle
'-45° - 45°' => 7 bits to store 90 angle values
'-45° - 45°' => 7 bits to store 90 angle values
'-1 || +1'
'yaw angle in degrees 180°' => 9 bits to store 360 angle values


10+7+7+9 => 37 bits = 5 bytes.

Alternatively 999 * 90 * 90 * 360 = 2913084000 which is less than 232. So you could fit your data into 4 bytes and use a 4-byte CRC.