Hi,
thanks for adding Trueposition gpsdo to Heather. I have made some modification to the source code to make the experience better. I am attaching diff for these changes.
1. initialization. There are 3 cases that need to be addressed:
- GPSDO is started in boot mode. In this case you need to send "$PROCEED" wait 1/2-1second, and then send initialization commands ($PPSDBG, etc)
- GPSDO is already started and tracking, in this case you just need to send initialization commands ($PPSDBG, etc.)
- Heather is started BEFORE GPSDO is powered on, in this case heather will notice BOOT GETVER response - needs proceed and then later initialization commands.
So i have moved the initialization commands to single function that gets called twice. Once for BOOT response and once in receiver initialization.
This function will send PROCEED wait 1000ms and send initialization commands. PROCEED command doesn't exist in main program. If gpsdo was already initialized, it is bacically nop (with wait).
2. Initialization command $PPSDBG needs parameter.
Parameter 1 = enable, parameter 0 = disable. The command parser in this GPSDO is dumb, it will look at fixed place for the character '1', if not enough characters it will just use character from LAST message.
3. EXTSTATUS:
this response contains data copied from NMEA message $GPGGA, number of sats used and DOP (Hdop in 2d fix mode, and PDOP in 3d fix mode) as provided by Furuno module.
temperature is not taken from this message anymore.
4. PPSDBG:
Temperature is taken from this response.
This response also contains TRAIM information as provided in Furuno's GPrrm message. I have added parsing/displaying for these stats as well.
5. UPDATE FLASH command doesn't exist.
This is not command but response that GPSDO has written flash. I have commented this out. Not needed. Whenever you update nonvolatile parameters they get saved into Flash memory.
I have reverse engineered the firmware of the MCU used in the GPSDO and i have tried to fix available documentation:
https://github.com/robots/trueposctrl/blob/master/GPSDO_commandset.hSome commands are still not added: like Jam sync ($JAM, without parameter). There are lot of interesting commands like: $SPIW x - write dac, $FxRxxH - toggle holdover, $F - send command to gps receiver, "$EBG *" - monitor gps messages.