
The task was to get 1PPS output on the NAL9602-LP which houses an u-blox NEO M6Q GPS receiver which is capable of providing 1PPS out with and without a satellite lock. However, the NEO M6Q does not have non-volatile storage and, in the NAL, it is not set up with a backup battery so every configuration change has to be redone after a power cycle.

We worked around the problem by replacing the Neo M6Q with a Neo M8N receiver which is pin-compatible (as used in the NAL) and the protocol interface can be made compatible with the NAL by setting a few configuration registers. At this point we have tested the GPS commands the NAL interface supports and they all work. There is still testing to be done to verify if the Iridium part is still fully functional but preliminary tests in the lab showed that we can get a Iridium link just fine.

Here is the list of steps that have to be performed to modify the NAL so 1PPS works after the unit is powered up:

1. Replace u-blox NEO M6Q with M8N. We bought this:
https://www.digikey.at/product-detail/en/u-blox/NEO-M8N-0/672-NEO-M8N-0CT-ND/6150671

An experienced technician should be able to do the replacement with two soldering irons or a pair of soldering squeezers. The module is not glued down but since it has a large metal shield, it can dissipate a lot of heat and needs a fairly large and powerful iron to take off. If you need more info about this, let me know.

2. Add 1PPS blue-wire from M8N pin 3 to NAL TP4, according to Daniel's modification guidelines. This brings 1PPS (3.3V) out to pin 11 of the SubD15 connector on the NAL.

3. Program u-blox receiver. This will require a TTL level (3.3V) serial device, like a TTL USB/Serial converter. To connect to the Neo M8N you can solder wires to the pins but it's also possible to just use probes with sharp points. I attached pictures of the setup I used. Technically you only need to connect to pin 21 of the Neo M8N, which is its RX line and the commands will be written over this connections. However, I found it more reassuring to also monitor traffic from the Neo M8N to see if things are working. In this case, just add another probe to pin 20, right next to the other probe.
You will also need a ground reference, which can be picked up from pin 5 (SigGnd) on teh 15 pin connector.

I attached a Python application that will read and write to the serial port. If run without arguments, it will print out the u-blox commands which are sent every second from the Neo M8N to the NAL (only if you set up the other probe, that is). The UBX commands are partially decoded so it's easy to see the ACKs (0x05 0x01) for the commands we are sending.

To modify the configuration, the script has to be run with the --fix/-f command. It will then go to monitoring mode and just show the commands being sent by the Neo M8N. The script also supports a --reset/-r option, which will set the configuration back to factory default. This might be useful for experimenting with different settings.

Let me know if you want to know more about the config changes that are being made.


With the NAL modified like this and connected to the MB3, the NTP timeserver works as expected. Of course, that requires the NAL to be configured in its own user interface to send out the ZDA NMEA message every second which can be achieved by this command:

AT+PG=1,3,1,8

We still have to modify the NAL driver for the LRAUV to be able to deal with the periodic messages and then we will have to test how the NTP synchronization behaves when we are sending SBDs over the serial line at the same time. However, I'm optimistic that we can get this to work.

