GPS SirfStarIV Almanacs Doubt

Hi! This is my first post in the forum, but I have been visiting it very often for two years. I have learnt programming with Arduino and I will always show grattitude for this fantastic plaform and all people who help with its development.

I´m using a Quectel L50 (chipset SirfStarIV). I´m trying to set the almanacs that previously I have downloaded from

I have formated the data as the message ID130 specifies (set almanacs), creating a matrix of 32 x 14 words (32 arrays of 14 words, an array for each SV). Each array is similar to the message ID14 (poll almanacs response)

My only doubt is the last word of each array, that the documentation defines as a checksum, but no more information. This checksum is different of the OST checksum. You can see in the message ID14 documentation of the OST protocol that there are two differents checksums, one for the 14 words almanac information, and another for the full message data.

Could someone explain how calculate the almanacs checksum? I have tried the same checksums that the OST protocol, but it doesnt work.

Thank you!


Modern day GPS receivers all have search engines, there is very little difference between cold starting without any prior information and warm starting with rough initial time/location/almanac information. Loading almanac only makes difference in the days where GPS has no search engine and 5 minute cold starting time is the norm (maybe 15 years ago with Garmin GPS 15). Why do you want to load almanac to a SiRFstarIV GPS receiver? If you want to speed up TTFF, then it is ephemeris that you wish to load. Since SiRFstarIV aleady has Client Generated Extended Ephemeris capability, i.e. able to self-generating 3-day AGPS data, maybe you only need to find the command to enable it?