Home
Projecten
NMEA VDO converter
Backup kelderpomp
Regelbare hetelucht
Contact
Sitemap

NMEA VDO CONVERTER

Introduction

This project took me for over a year to complete, of course with a lot of months I was occupied with other things. Like family, work, recovering from an injured ankle and other inconveniences that life throws on our path.

My sailing boat has a VDO LOGIC GPS navigator from 1992. It is the heart of a set of navigation instruments like log, wind, electronic compass and depth. Apart from giving you the postion it also acts as a translator between NMEA sentences and the VDO Logic bus which as I found out is I2C compatible but I only partly started to decode it. Other story.

Being over 30 years old, obtaining a fix took my GPS time.... a lot of time, and was also not very stable. A modern active GPS antenna did help a little not very much. Time for  fresh ideas.

Would it be possible to inject the NMEA signal form a new sensitive GPS receiver module somewhere into the VDO LOGIC NAVIGATOR and combine interoperability, low cost and high sensitivity at the same time?

As it turned out it would .... after some work.

Discovery

A detailed description of the discovery phase would make a nice detective story. And maybe I will go into all the details sometime. But just for now:

The Navigator has a seperate RockWell GPS board. The positive side is that in theory I could swap it with a new modern board. However my hope that this baord was NMEA compatible or even documented on internet was in vain. 

Using an oscillosope and logic analyser I discovered the dataline on one of the 26 pins on the flat ribbon cable connecting the board with the Navigator. Analyzing the data I distinquished a 128 bytes long message in which I could only recognize year/month/date.

The thing is that there is actually quite some information about the successors of my GPS board (e.g Jupiter) but not on my board (NAVCORE V).

So the quest seemed to end here but then after a while I came across an old GPS evaluation report of some ministery in the US that compared 5 GPS receivers and contained the message structure of the most important message of the so-called Rockwell-binary protocol using their own floating point representation among other things.  

So all I had to do now was to write some software that would translate NMEA into the Rockwell protocol. Let's say it worked after a while.

Time issue

One of the two problems that drove me crazy, as a figure of speech, was the display of the current time on the display of the Navigator, sometimes 18 seconds ahead or 36, sometimes spot on, sometimes 7 seconds ahead etc.

After a lot of testing an making tables of possibile scenarios I discovered the following:

- The NAVCORE V board sends out both the GPS time in weeks and seconds as the UTC date and time. There is a 18 second difference at this moment because GPS time has no leap seconds. So UTC is 18 seconds behind.

- After startup the Navigator waits until it receives a valid UTC time. Then it calculated the difference between the two times (18 seconds) and after that works with GPS time corrected with the 18 seconds. But it calculates the difference only once after startup. So switching off the datastream from the new GPS board without switching off the Navigator made no difference!

- The reason it came up with the 7 seconds was maybe because this was the difference in 1992 and without signal it switched to this, but i did not test this extensively.

POS VALID issue

The NAVIGATOR displays the text POS VALID/POS INVALID and gives the time of the latest GPS fix. Although carefully mimicking the status bits of the original GPS module the receiver kept telling me that the potition was always valid and happily updated the time of the last fix, although no position was received.

After a lot of testing it became clear the NAVIGATOR does not use the status word to determine whether the position is valid but only looks at the expected horizontal position error field. Filling this with relevant data solved the problem.

NAVIGATOR freezing issue

During testing the NAVIGATOR kept freezing at unpredictable time intervals. Excluding several causes I suspected that one of the presumed and unknown inputs might be floating so I started connecting them one by one to Vcc and ground using a 10k resistor. The first hit proved to be the one. Connecting it to Vcc solved the problem. Still don't know what the input is for (optional freeze functionality?) but it works now.

Design

The design consist of a Grove GPS board that produces the NMEA GPS data connected to a Raspberry Pi Zero W which translates the NMEA data to the Rockwell binary protocol which is fed into the Navigator.

All software development was done on a Macbook using two USB-TTL converters. When it all worked the python code was transferred to the Raspberry.

Links

Rockwell and GPS info

Downloads 

GPS evaluation.pdf                 Download