I'm currently working on a project for school that involves creating an Android ground station for an ArduCopter. My project sponsors require all android code to be in Java, that means that I can't use the MAVlink headers as they are, I need to create my own implementation of MAVlink in Java. I feel comfortable with everything except the checksum of MAVlink. I don't understand at all where these last 2 bytes are coming from. Can somebody please explain in a way that a newbie like me would understand?