[time-nuts] Lady Heather for homebrew GPSDO

Jim Harman j99harman at gmail.com
Sun Dec 18 19:37:19 EST 2016

On Sun, Dec 18, 2016 at 1:06 PM, Mark Sims <holrum at hotmail.com> wrote:

> Binary or NMEA you need routines like send_msg_start,  send item (like
> integer, float, double), send_msg_end.  For received messages you need
> things like get_message,  get_item_from_message, etc.  The code to do that
> is not much more complicated for a binary protocol or an ASCII one like

One factor that leads me to prefer NMEA is that my GPS already produces it,
so all I would have to do for the satellite, time, and other GPS data would
be to send the NMEA sentences from the GPS to the host port, no parsing and
reformatting required. In order to inject GPSDO data into this stream, I
would have to implement an NMEA multiplexer and construct the new
sentence(s) as you describe above.Of course I would still need an NMEA
parser in order to interpret commands from the host, but in the Arduino
world there is TinyGPS++, a very handy open source library for this.

I see that although the Z3801A's SCPI messages would be pretty easy to
implement, there are several inconvenient or limiting aspects to this
interface. (please correct me if I am wrong on these)

--It does not stream data the way NMEA does, so the host has to keep asking
for data.

--As has been mentioned earlier, most of the responses have no identifier,
so both ends have to be careful not to get out of sync.

--The EFC value is given as an integer percent -100 to 100, so there is not
enough resolution to really tell what the DAC is doing.

-- It does not have the satellite position and C/N data that is reported in
the NMEA GSV sentence, so LH can't make its nice satellite plots.

One thing I like about the Z3801A's format is the way the TCOD message
includes brief status and alarm information, so the data doesn't get
clogged with routine data but the host can tell when to request detailed


--Jim Harman

More information about the time-nuts mailing list