2022-03-30, 05:12 PM
Hi, my Pi4 got into a bit of a mess and so I started again from scratch with the OpenPlotter image (2020-12-16-OpenPlotter-v2-Moitessier-HAT-img). I updated all the CPN apps and all worked OK, but this image has Pypilot 0.16 so the Pypilot plugin did not work. I upgraded Pypilot to 0.34 and the plugin now works but I cannot get Pypilot to switch to GPS mode when I add a "navigate to here" marker in OpenCPN. I have an output TCP connection from OpenCPN to localhost port 20220 and I can see the APB, XTE etc messages are being sent but I cannot change the Pypilot mode from Compass to GPS. I tried stopping the Pypilot service and running it from the command line, but it fails (see below).
Also, but not strictly relevant in this thread, I am having problems getting OpenCPN to talk to SignalK via the standard connection on port 3000. If I connect my GPS/AIS serial input to OpenCPN, I get all the NMEA data in OpenCPN but nothing showing in SignalK. If I connect the serial input to SignalK instead, I can see the NMEA data in SignalK but not in OpenCPN. Then, after a short time, OpenCPN stops responding. Just wondered if anyone else has seen this? SignalK is version 1.42.0.
Regards
David
pi@openplotter:~ $ pypilot
autopilot start 14423.772857179
world magnetic model not available
ERROR loading wind.py cannot import name 'HeadingOffset' from 'pypilot.autopilot' (/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py) cannot import name 'HeadingOffset' from 'pypilot.autopilot' (/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py)
imu process 4398
nmea process 4402
listening on port 20220 for nmea connections
loading servo calibration /home/pi/.pypilot/servocalibration
WARNING: using default servo calibration!!
gps process 4406
Available Pilots: ['basic', 'basic2', 'basic3', 'absolute', 'simple']
warning: failed to open special file /dev/watchdog0 for writing
cannot stroke the watchdog
made imu process realtime
Using settings file RTIMULib.ini
Settings file RTIMULib.ini loaded
Detected MPU9250/MPU9255 at standard address
Using fusion algorithm Kalman STATE4
IMU Name: MPU-925x
min/max compass calibration not in use
Using ellipsoid compass calibration
Using accel calibration
pypilotServer process 4409
server setup has 5 pipes
autopilot init complete 14424.177461026
servo probe ('/dev/ttyAMA0', 38400) 14424.182427248
autopilot iteration running too slow 0.08478064400151197
autopilot iteration running too slow 0.07496016299955954
arduino servo found ['/dev/ttyAMA0', 38400]
serialprobe success: /home/pi/.pypilot/servodevice ['/dev/ttyAMA0', 38400]
sensor found rudder servo /dev/ttyAMA0
MPU-925x init complete
autopilot iteration running too slow 0.10753929099882953
server add socket ('127.0.0.1', 55388)
read imu running too _slowly_ 0.0562051729993982 0.05
autopilot iteration running too slow 0.0664099459991121
imu rate set to rate 20
read imu running too _slowly_ 0.06087739800022973 0.05
autopilot iteration running too slow 0.061878312000771984
setting initial gyro bias [1.884, -2.999, -1.133]
server add socket ('127.0.0.1', 55390)
EEPROM SIGNATURE ok
Process Process-3:
Traceback (most recent call last):
File "/usr/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/usr/lib/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.7/dist-packages/pypilot/nmea.py", line 760, in nmea_process
self.poll(timeout)
File "/usr/local/lib/python3.7/dist-packages/pypilot/nmea.py", line 809, in poll
self.receive_nmea(line, sock)
File "/usr/local/lib/python3.7/dist-packages/pypilot/nmea.py", line 610, in receive_nmea
if source_priority[self.last_values[name + '.source']] >= tcp_priority:
KeyError: 'water.source'
Traceback (most recent call last):
File "/usr/local/bin/pypilot", line 11, in <module>
load_entry_point('pypilot==0.34', 'console_scripts', 'pypilot')()
File "/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py", line 467, in main
ap.iteration()
File "/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py", line 459, in iteration
time.sleep(dt)
File "/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py", line 205, in cleanup
raise KeyboardInterrupt # to get backtrace on all processes
KeyboardInterrupt
closing autopilot
Also, but not strictly relevant in this thread, I am having problems getting OpenCPN to talk to SignalK via the standard connection on port 3000. If I connect my GPS/AIS serial input to OpenCPN, I get all the NMEA data in OpenCPN but nothing showing in SignalK. If I connect the serial input to SignalK instead, I can see the NMEA data in SignalK but not in OpenCPN. Then, after a short time, OpenCPN stops responding. Just wondered if anyone else has seen this? SignalK is version 1.42.0.
Regards
David
pi@openplotter:~ $ pypilot
autopilot start 14423.772857179
world magnetic model not available
ERROR loading wind.py cannot import name 'HeadingOffset' from 'pypilot.autopilot' (/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py) cannot import name 'HeadingOffset' from 'pypilot.autopilot' (/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py)
imu process 4398
nmea process 4402
listening on port 20220 for nmea connections
loading servo calibration /home/pi/.pypilot/servocalibration
WARNING: using default servo calibration!!
gps process 4406
Available Pilots: ['basic', 'basic2', 'basic3', 'absolute', 'simple']
warning: failed to open special file /dev/watchdog0 for writing
cannot stroke the watchdog
made imu process realtime
Using settings file RTIMULib.ini
Settings file RTIMULib.ini loaded
Detected MPU9250/MPU9255 at standard address
Using fusion algorithm Kalman STATE4
IMU Name: MPU-925x
min/max compass calibration not in use
Using ellipsoid compass calibration
Using accel calibration
pypilotServer process 4409
server setup has 5 pipes
autopilot init complete 14424.177461026
servo probe ('/dev/ttyAMA0', 38400) 14424.182427248
autopilot iteration running too slow 0.08478064400151197
autopilot iteration running too slow 0.07496016299955954
arduino servo found ['/dev/ttyAMA0', 38400]
serialprobe success: /home/pi/.pypilot/servodevice ['/dev/ttyAMA0', 38400]
sensor found rudder servo /dev/ttyAMA0
MPU-925x init complete
autopilot iteration running too slow 0.10753929099882953
server add socket ('127.0.0.1', 55388)
read imu running too _slowly_ 0.0562051729993982 0.05
autopilot iteration running too slow 0.0664099459991121
imu rate set to rate 20
read imu running too _slowly_ 0.06087739800022973 0.05
autopilot iteration running too slow 0.061878312000771984
setting initial gyro bias [1.884, -2.999, -1.133]
server add socket ('127.0.0.1', 55390)
EEPROM SIGNATURE ok
Process Process-3:
Traceback (most recent call last):
File "/usr/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/usr/lib/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.7/dist-packages/pypilot/nmea.py", line 760, in nmea_process
self.poll(timeout)
File "/usr/local/lib/python3.7/dist-packages/pypilot/nmea.py", line 809, in poll
self.receive_nmea(line, sock)
File "/usr/local/lib/python3.7/dist-packages/pypilot/nmea.py", line 610, in receive_nmea
if source_priority[self.last_values[name + '.source']] >= tcp_priority:
KeyError: 'water.source'
Traceback (most recent call last):
File "/usr/local/bin/pypilot", line 11, in <module>
load_entry_point('pypilot==0.34', 'console_scripts', 'pypilot')()
File "/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py", line 467, in main
ap.iteration()
File "/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py", line 459, in iteration
time.sleep(dt)
File "/usr/local/lib/python3.7/dist-packages/pypilot/autopilot.py", line 205, in cleanup
raise KeyboardInterrupt # to get backtrace on all processes
KeyboardInterrupt
closing autopilot