When I go for
boat charter I usually do my
route planning with
OpenCPN upfront. Then, on the
boat I'm using a
Garmin GPSMAP 66st with my data to navigate (in parallel to the
charter boat plotter & hardware) and to log the
GPS track. Now what I'd like to do is to directly upload waypoints and routes from
OpenCPN to the
Garmin GPSMAP 66st, unfortunately that doesn't
work.
I have seen
issue #3496, but in my impression I'm having a different problem, as I don't even get to "MESSAGE comm_n0183_output.cpp:439". I have also checked the other Garmin-related messages in this board, however none resembles the problem that I have.
Now here is the set-up and some analysis:
Hardware: Raspberry Pi 4 Model B Rev 1.5 4GB with Garmin GPSMAP 66st connected via USB
Software: Debian GNU/Linux 11 (bullseye) 64 bits, Kernel: 6.1.21-v8+, OpenCPN 5.8.4-3 (installed via flatpak)
On Garmin I have selected the following mode:
-Setup -> System -> Garmin Spanner
with the following settings:
-NMEA sentences: On
-Autopilot Mode: Off
-Waypoint IDs: Names
-Precision of Minutes: MM.MMM'
-Baud: 9600
-GSA, GSV: On
-WPL, RTE: On
-GRMN Proprietary: On
For the sake of completeness: I have also tried Garmin
Serial and
NMEA In/Out, but if I select one of those two Garmin modes the Garmin goes directly into mass
storage mode when connected per USB.
Then I
plug the Garmin into the RPi USB Port, "Would you like to go to Mass Storage" => No
I takes around 50 seconds until the Garmin appears on USB port:
pi@R4-4GB:~/.var/app/org.opencpn.OpenCPN/config/opencpn $ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 12, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=, 12M
|__ Port 3: Dev 22, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 4: Dev 42, If 0, Class=Vendor Specific Class, Driver=garmin_gps, 480M
Then I start OpenCPN 5.8.4-3 and go to Options -> Connections -> Add Connection with the following parameters:
-Serial
-DataPort: /dev/ttyUSB0
-Baudrate: 9600
-Protocol: NMEA0183
-List position: 1
-Control checksum: checked/yes
-Receive Input on this Port: checked/yes
-Use Garmin (GRMN) mode for input: checked/yes
-Output on this port (as
autopilot or
NMEA repeater): unchecked/no
And close the options/connections window.
Then the
GPS position
reception works fine with received NMEA0183 RMC sentences. So far so good. Interestingly, if I select the checkbox "Output on this port (as
autopilot or NMEA repeater)" the received NMEA sentences are mirrored, one can see them in the NMEA window. Now that all works fine and obviously the connection via USB is working.
Then I open the
Route & Mark Manager, select a route, click on Send to GPS, select "Serial:/dev/ttyUSB0". Once I click on "Send" the "Send to GPS..." window stops working. I can then only terminate OpenCPN.
After the crash the log says the following:
pi@R4-4GB:~/.var/app/org.opencpn.OpenCPN/config/opencpn $ grep gps_wx_logging opencpn.log
11:57:07.203 MESSAGE gps_wx_logging.h:30 Unit: GPSMAP 66ST
Software Version 10.70
11:57:07.204 MESSAGE gps_wx_logging.h:30 D312
11:57:07.204 MESSAGE gps_wx_logging.h:30 D302
11:57:07.204 MESSAGE gps_wx_logging.h:30 D501
11:57:07.204 MESSAGE gps_wx_logging.h:30 D600
11:57:07.204 MESSAGE gps_wx_logging.h:30 D601
11:57:07.204 MESSAGE gps_wx_logging.h:30 D700
11:57:07.204 MESSAGE gps_wx_logging.h:30 D800
11:57:07.204 MESSAGE gps_wx_logging.h:30 D900
11:57:07.204 MESSAGE gps_wx_logging.h:30 D911
11:57:07.204 MESSAGE gps_wx_logging.h:30 D912
11:57:07.204 MESSAGE gps_wx_logging.h:30 D913
11:57:07.204 MESSAGE gps_wx_logging.h:30 D917
11:57:07.204 MESSAGE gps_wx_logging.h:30 D918
11:57:07.204 MESSAGE gps_wx_logging.h:30 Waypoint: Transfer -1 Type -1
11:57:07.204 MESSAGE gps_wx_logging.h:30 Route: Transfer -1 Header -1 Type -1
11:57:07.204 MESSAGE gps_wx_logging.h:30 Track: Transfer 301 Type 302
If I shut down OpenCPN peacefully, without crashing it through the "Send to GPS..." window also the following messages appear in the log:
13:11:59.189 MESSAGE comm_drv_n0183_serial.cpp:261 Closing NMEA Driver
Serial:/dev/ttyUSB0
13:12:00.203 ERROR gps_wx_logging.h:14 A800_Off: Not acknowledged
How can I get this working to send routes & waypoints to the Garmin GPSMAP 66st? Thanks for any help!