I have two AMP 2.0 units.  One is running MAVLink 0.9 and

the other is running MAVLink 1.0.  My telemetry receiver

code successfully checks the CRC16 checksum for MAVLink 0.9,

but it gets errors on MAVLink 1.0 frames.

Has anything changed in the CRC16 calculation

for MAVLink 1.0?

I know that MAVLink 0.9 transfers in Big Endian order

and MAVLink 1.0 transfers in Little Endian order.

This should not change the CRC16 calculation  results.

Thanks in advance for any information on this matter,


You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • I have a question on MAVLink 1.0 as well..I posted before but perhaps you guys may know the answer. I have monitored the serial messages of MAVLink through RealTerm to confirm formats and etc...however my problem comes when trying to understand how the checksum is generated...

    Could anyone elaborate? Also, is the preconditioning polynomial 0xFFFF and the calculating polynomial 0xF0B8??

    And where does the CRC extra come into the calculation? Do I add this value to the end of my message then checksum the entire message, or rather add the value to the checksum value directly? I have tried to see if this matches the checksum calculations but obviously it does not:


    Thanks for any explanations and help.

  • There is also a new start character in Mavlink 1.0 perhaps that is a prob?

    Why they did that I don't know - but it's not the only issue the framing protocol in Mavlink has. You just have to deal with these quirks some times.

This reply was deleted.


Shivchand Jaysaval liked Shivchand Jaysaval's profile
Aug 25