pycom / pycom-libraries

MicroPython libraries and examples that work out of the box on Pycom's IoT modules
333 stars 375 forks source link

Ensure checksum is 2 digits #143

Closed Lukanite closed 3 years ago

Lukanite commented 3 years ago

Fix bug where some L76 messages are ignored due to the checksum being one digit long (i.e. 'F') vs. the expected 2 digit length ('0F')

(Hi! 👋 Thanks for sending a pull request! Please make sure you click the link above to view the contribution guidelines, then fill out the blanks below.)

What does this implement/fix? Explain your changes.

Sometimes, messages written to the L76 are ignored due to an invalid checksum

Does this close any currently open issues?

None afaik

Any relevant logs, error output, etc?

(If it’s long, please paste to https://gist.github.com and insert the link here) l76.write("PMTK740,{},{},{},{},{},{}".format(curtime[0], curtime[1], curtime[2], curtime[3], curtime[4], curtime[5])) used to result in $PMTK740,2021,4,8,19,0,57*6 being sent, which was missing the second checksum digit, causing the message to be ignored

Any other comments?

Where has this been tested?

Lukanite commented 3 years ago

Yeah, that's right. Looks like some of the commands from other products just happen to work, so I've been trying 740 (time)/741 (position): https://cdn.sparkfun.com/assets/b/c/4/4/5/AirPrime_XM_XA_Series_Software_User_Guide_r3.pdf