Help needed for Tilt Compensation setup using GNSS Flex pHAT ZED-X20P & IM19

I have encountered several issues since updating to 1.5.20. I don’t know if any of them are directly related to this procedure, but they have been irritating. I was planning to submit at least one bug report as soon as I ruled out errors on my part.

  1. I found it necessary to hide my old pygpsclient.json before I could successfully start the application. Not a big deal, but it seems like a bug.
  2. The Layer Spinbox in the UBX Configuration dialog spins continuously when I try to change the setting. For example, change from RAM to FLASH. If I click a second time, and catch it at the right time, I can get it to work.
  3. Datalogging is broken. I hacked the code to get it to work.

Item 1 details:

(.venv) talent@rpi5-gnss-rtk-rover:~/PyGPSClient $ pygpsclient 
Traceback (most recent call last):
  File "/home/talent/PyGPSClient/.venv/bin/pygpsclient", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/home/talent/PyGPSClient/src/pygpsclient/__main__.py", line 142, in main
    App(root, **kwargs)
    ~~~^^^^^^^^^^^^^^^^
  File "/home/talent/PyGPSClient/src/pygpsclient/app.py", line 221, in __init__
    self._body()
    ~~~~~~~~~~^^
  File "/home/talent/PyGPSClient/src/pygpsclient/app.py", line 261, in _body
    value[CLASS](self, borderwidth=2, relief="groove"),
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/talent/PyGPSClient/src/pygpsclient/chart_frame.py", line 126, in __init__
    if self._num_chans % 2:  # no channels must be even
       ~~~~~~~~~~~~~~~~^~~
TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'
(.venv) talent@rpi5-gnss-rtk-rover:~/PyGPSClient $ 

Item 2 is annoying, but easy to work around.

Item 3 looks like a real bug. Nothing is written to the log file because FileHandler.write_logfile is not getting a string back from calls to self.__app.configuration.get("logformat_s") at line 254 of file_handler.py– it seems to always return 1.

I found several log files I saved earlier when I had it working. They showed the GN messages. GN vs GP does not seem to be the issue. When it was working, GPFMI messages indicated status=0x001E0004 and position data was non-zero.

Now I’m seeing status=0x001C0001 with no position data. I’ve tried many times to “shake” the pole to advance the initialization, but I’m stuck.

The “1” in the LS bit indicates “Filter uninitialized”. I’m not sure what that refers to. Presumably the Kalman filter?

You could experiment with:

AT+FILTER_STOP=ENABLE/DISABLE : Causes the filter to enter or exit stop mode
AT+FILTER_RESET : Filter Reset

Thanks @steve.talent - I’ve created an issue over on the PyGPSClient repo to look into these.

I discovered the problem. The IM19 was configured with AT+WORK_MODE=408 which seems to require walking. “IM19 Product Integration Guide V1.3.7” states…

Tilt mode 2: Set X = 408, initialize by shaking the RTK pole back and forth or by simply walking. Shaking initialization (same as mode 1) is required when the RTK tilt survey is used for the first time (as an calibration).

However, it seems that walking about is actually necessary, and not optional.

Using a combination of walking and “shaking”, I was getting expected results.

It wasn’t long before the status started getting worse.

I may explore the other work modes. I definitely need a way to monitor status on the rover.