Cruisers Forum
 


Reply
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 28-09-2021, 06:15   #1
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 16,496
Images: 2
Interoperability between OpenCPN(s) & Devices

We need your input & discussion!!! This is a frequent user question which needs to be solved in the most efficient manner.
(This first post will be edited and organized as a very brief "Current state Summary", with links to more detailed posts below. Please answer any questions in your comments below and provide information.)
What does Interoperability mean for OpenCPN?

What information needs to be shared?

  1. Single waypoint destination
  2. Particular Route
  3. File: Navobj.xml
  4. Other: ?
How can it be shared?

Messaging

  1. SignalK?
  2. Nmea? Nmea Sync?
  3. Files using Ethernet?
Passive

  1. Its available just come and get it in some particular way. Usb Key.
  2. Navobj Backup
What are the appropriate methods used to gain Interoperability?

Are there specific devices that should be supported?

What are some examples?

Nmea Sync programming & tests - Dirk and Hakan
Send Wpt over IP Experiments


Note: There is a similar discussion in github Opencpn.
rgleason is offline   Reply With Quote
Old 28-09-2021, 07:54   #2
Registered User
 
JohnGC's Avatar

Join Date: Mar 2018
Location: SW UK
Boat: Moody 44
Posts: 83
Re: Interoperability between OpenCPN(s) & Devices

My use case is for two OpenCPN nav systems. Helm and chart table.

I require the systems to be as independent as possible, they each have their own charts, GPS and means of reading other NMEA data. I may even add a small UPS of some sort to each.

But I don't want to define routes and waypoints twice. So it is highly desirable to create routes and waypoints on one system and sync them with the other.

To enable as many platforms as possible, it should be possible to choose the coms channel; ethernet, serial port, USB?, Bluetooth, wifi.

For me, sync should be a manually triggered process with oversite. In other words, I would like the sync process to start only when I initiate it and to have a message telling me what is going to be synced with "you're already using that name", "continue" and "cancel" buttons. My reason for this is to preserve the independence of the systems as much as possible. So that if one station throws a hissy-fit, the other doesn't automatically copy it.

Another feature which might be desirable is to allow cancelling of an alarm on the remote system. EG If I cancel/acknowledge a AIS CPA alarm on one system, it also cancels on the other. However, just at the moment I can't reconcile that with my requirement for non-automated sync.

Protocol choice.

If a sync feature is to be a core part of OpenCPN; then it would be good if the plug-in API could be extended to include sync. This would allow the developers of watchdog or draw, for example, to sync settings and objects.

If the sync feature isn't part of the core OpenCPN app, then please don't make the protocol too impenetrable. I hadn't looked at NMEA sync previously, but choosing the NMEA encoded message protocol seems like a good option to my inexperienced eyes.

John
JohnGC is offline   Reply With Quote
Old 28-09-2021, 08:47   #3
Registered User
 
sv_pelagia's Avatar

Join Date: Apr 2013
Location: British Columbia
Boat: Sceptre 41
Posts: 1,431
Re: Interoperability between OpenCPN(s) & Devices

I am not entirely clear as to what is being asked here... but I will give it a shot.


I create waypoints and routes using OpenCPN. I use them in OpenCPN but also "send" them to my Furuno chartplotter


I usually save them as a GPX, then use another program (GPSUtility) to (i) change the symbols and (ii) save file as a Furuno rat/rou file.


It is too bad that OpenCPN cannot save waypoint/route files in formats other than just gpx. Also, OpenCPN symbols do not translate easily to those on other chartplotters.
sv_pelagia is offline   Reply With Quote
Old 28-09-2021, 10:00   #4
Registered User

Join Date: Mar 2016
Location: San Francisco
Boat: Morgan 382
Posts: 639
Re: Interoperability between OpenCPN(s) & Devices

There is a "Send to GPS" option in OpenCPN, but not well documented(last I looked, it's been awhile) how it works, and what the requirements are.

I think this function should be expanded on, to specify what GPS/chartplotter is involved, and what connectivity is. Like 2 drop downs, one to select what chartplotter you have, and the next for how it is connected. OpenCPN should be one of those options, to send to another OpenCPN device. My current process is to export as a GPX, then use depreciated Garmin homeport software to transfer to my GPSMAP78sc. The 78sc supports NMEA0183, but exactly what isn't well documented. I don't think it supports transferring routes, but I expect whatever I replace it will will.

To be able to sync that data via wifi, NMEA, or com port would be great.
Navionics is hugely popular. It may not be possible without cooperation from Garmin, but a way to send routes to/from that would be great. Even if it had to go through the dumb Navionics online account instead of direct to the device.

How about the ability to initiate a DSC call to a ship like is possible with some chart plotters?

I think autopilots are already supported, mine will be installed in the next couple weeks so I will find out.

I will be honest, I am baffled why SignalK exists. It seems OpenCPN is the only thing that supports it, and I don't see major manufactures switching away from an official standard. Unless NMEA adopts SignalK as NMEA2022 or something, I think it is a dead end. And I don't see what it does that OpenCPN doesn't do natively. Just one uninformed users opinion.
__________________
-Warren
wholybee is offline   Reply With Quote
Old 28-09-2021, 19:20   #5
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 16,496
Images: 2
Re: Interoperability between OpenCPN(s) & Devices

Three thoughtful responses. This is a general question which should be focused on how you would like to use OpenCPN effectively. Gradually this discussion should become more focused on specific actions. There are some good points from these responses.

1. IO Plugin for another O and hardware - Needed PI API calls, manual sync, control of alarms remotely....
2. Transfer what? Waypoints and Routes, and...
3. Need for transfer to & from other specific CP hardware.
4. Simplify a multi step process


We will be editing the first post in OpenCPN Discussions as points and consensus is reached (if possible).
rgleason is offline   Reply With Quote
Old 29-09-2021, 00:33   #6
Registered User

Join Date: Mar 2011
Posts: 350
Re: Interoperability between OpenCPN(s) & Devices

Without a clear understand the different use cases and user requirements it seems to me very difficult to create an accurate specification.

The underlying waypoint/route/tracks/layers data store needs to be resilient, easily backed up & restored, be able to synchronize with other OpenCPN instances and allow import & export from different formats.

To address John's desire
Quote:
But I don't want to define routes and waypoints twice. So it is highly desirable to create routes and waypoints on one system and sync them with the other.
I personally have been toying with Litesync, a version of SQLite that allows synchronization of databases across different devices. It's been quite fun digging out my old SQL code from about 30 years ago ! It handles all the synchronization stuff (including off-line), conflict resolution, backup and restore, import, export into csv & zip files etc.

Whilst modelling the database schema to match that of the existing xml backend is not rocket surgery, we have to appreciate that OpenCPN is built by volunteers and that replacing the current navobj.xml backend with a proper database would require considerable effort and testing. Plus there's the added problem of "how to upgrade".

For import/export, GPX as the defacto standard is clearly important (although for the life of me I will never understand why some idiot decided to standardize on decimal degrees), and it seems that most vendors support transferring GPX files manually, in addition to their own proprietary formats; Garmin's .adm, B&G/Simrad/Lowrance .usr, Furuno's .rou and for professional ECDIS platforms, the RTZ standard.

The problem is that few of the vendors support online (meaning TCP/IP network) mechanisms for importing & exporting waypoints and routes (at least B&G provide a web server). and the level of support for importing waypoints & routes over NMEA 183 or NMEA 2000 seems to vary between manufacturers.

Even OpenCPN does not accept xxWPL & xxRTE NMEA 183 sentences ! Equally as important, from a plugin developer's perspective we don't have a consistent set of API's to retrieve waypoints and routes. For waypoints we use GetWaypointGUIDArray, whereas for routes we need to send a plugin message "OCPN_ROUTELIST_REQUEST". Sorry, I'm sure historically there may have been some reason for this, but this lack of consistency is just daft.

Re Warren's request
Quote:
How about the ability to initiate a DSC call to a ship like is possible with some chart plotters?
Refer to flyspray FS#1152 - AIS DSC Support DSC Initiate Call (wow opened 8 years ago). The problems are threefold.

Firstly a plugin would have to duplicate the mouseover code to detect when over an AIS/DSC target, to add the appropriate context menu, because as far as I can tell there is no way to specifically extend the AIS/DSC context menus.

Secondly, while it is very easy to send the correct NMEA 183 DSC sentence to radios that support that capability, as far as I can tell there is no way to determine whether the radio does, other than having some additional UI for the user to confirm their radio does support that capability, which of course will become some sort of support burden.

Thirdly for NMEA 2000 radios, whilst I understand the NMEA 2000 PGN message that the radio emits upon receiving a DSC call, I have yet to confirm whether the radio will initiate a call using PGN 129808 or whether the different manufacturers use proprietary PGN's.

BTW, this DSC issue has been done to death over on another cruisers forum thread, dsc-call-function-via-chartplotter-via-nmea-2000-or-0183

The same problem will likely exist for NMEA 2000 autopilots.

All food for thought.
stevead is offline   Reply With Quote
Old 29-09-2021, 01:25   #7
Registered User

Join Date: May 2014
Boat: Shuttleworth Advantage
Posts: 1,534
Images: 2
Re: Interoperability between OpenCPN(s) & Devices

Quote:
Originally Posted by wholybee View Post
There is a "Send to GPS" option in OpenCPN, but not well documented(last I looked, it's been awhile) how it works, and what the requirements are.

I think this function should be expanded on, to specify what GPS/chartplotter is involved, and what connectivity is. Like 2 drop downs, one to select what chartplotter you have, and the next for how it is connected. OpenCPN should be one of those options, to send to another OpenCPN device. My current process is to export as a GPX, then use depreciated Garmin homeport software to transfer to my GPSMAP78sc. The 78sc supports NMEA0183, but exactly what isn't well documented. I don't think it supports transferring routes, but I expect whatever I replace it will will.

To be able to sync that data via wifi, NMEA, or com port would be great.
Navionics is hugely popular. It may not be possible without cooperation from Garmin, but a way to send routes to/from that would be great. Even if it had to go through the dumb Navionics online account instead of direct to the device.

How about the ability to initiate a DSC call to a ship like is possible with some chart plotters?

I think autopilots are already supported, mine will be installed in the next couple weeks so I will find out.

I will be honest, I am baffled why SignalK exists. It seems OpenCPN is the only thing that supports it, and I don't see major manufactures switching away from an official standard. Unless NMEA adopts SignalK as NMEA2022 or something, I think it is a dead end. And I don't see what it does that OpenCPN doesn't do natively. Just one uninformed users opinion.

I think Rick's initial post is a bit confusing. Am I right in assuming you (Rick) are trying to glean feedback for Feature requests 2603 and 2606?


Wholybee - Not to confuse hardware with software.



Your comments about Garmin transfer (applies to 126, 128, 78? and others) has been covered previously and there have been fixes. The problem lays with the Garmin not OpenCPN. It is possible to transfer WP's of a route to the Garmin but it will not accept a route per se and there is a some limit to the number of WP's. Sean did extensive work on this and it is now able to transfer the WP's of a route reliably when you "send to GPS". If I recall correctly we tested up to 30 WP's.
Tupaia is offline   Reply With Quote
Old 29-09-2021, 03:24   #8
Registered User
 
rooiedirk's Avatar

Join Date: Aug 2010
Location: Netherlands
Boat: Oneoff
Posts: 476
Re: Interoperability between OpenCPN(s) & Devices

Some good points I saw passing.
  • Available in the plugin API
  • Possible to send all kinds of info, including binaries like icons.
Another question, as sender from say a route, should it be possible to limit the number of receivers? So if you are using a marina wifi to transmit a route, should it be possible on forehand to choose the receiving OpenCPN instance(s) and block others. Although I guess this will cause privacy concerns, as you would need first a broadcast to all O's listening and each O would need to report back with ea a computername and an username.




For the data transfer to other (not OpenCPN) hardware, somebody might make a plugin wrapping around GpsBabel
__________________
Navigation is know where you are and what to do to get where you want.
But also: Know where you don't want to be and what to do to don't get there.
rooiedirk is offline   Reply With Quote
Old 29-09-2021, 05:45   #9
Moderator
 
Dockhead's Avatar

Cruisers Forum Supporter

Join Date: Mar 2009
Location: Denmark (Winter), Helsinki (Summer); Cruising the Baltic Sea this year!
Boat: Cutter-Rigged Moody 54
Posts: 32,840
Re: Interoperability between OpenCPN(s) & Devices

Quote:
Originally Posted by rgleason View Post
We need your input & discussion!!! This is a frequent user question which needs to be solved in the most efficient manner.
(This first post will be edited and organized as a very brief "Current state Summary", with links to more detailed posts below. Please answer any questions in your comments below and provide information.)
What does Interoperability mean for OpenCPN?

What information needs to be shared?

  1. Single waypoint destination
  2. Particular Route
  3. File: Navobj.xml
  4. Other: ?
How can it be shared?

Messaging

  1. SignalK?
  2. Nmea? Nmea Sync?
  3. Files using Ethernet?
Passive

  1. Its available just come and get it in some particular way. Usb Key.
  2. Navobj Backup
What are the appropriate methods used to gain Interoperability?

Are there specific devices that should be supported?

What are some examples?

Nmea Sync programming & tests - Dirk and Hakan
Send Wpt over IP Experiments


Note: There is a similar discussion in github Opencpn.



For my own use case, the number one request would be to be able to share routes, waypoints, and tracks between O and the main navigation system (based on B&G Zeus plotters). At the moment I transfer .gpx files by thumb drive, which is a mild PITA. It would be great to be able to send and receive them across the existing connection (which is 0183 via Ethernet -- Navico plotters convert most N2K PGN's to and from 0183, which is available/received over either the Ethernet network between plotters, radar, GoFree, etc., and also available/received with the regular 0183 talker/listener ports on the plotters. My nav computer running O is connected to the main nav system by ethernet and gets nearly all of the network PGN's (converted to 0183 sentences) that way.


Number 2 -- synch databases of routes, waypoints, and tracks between O and main nav system.


Number 3 -- to be able to send and receive the navigation sentences when a route is being follow or a waypoint being navigated to.
__________________
"You sea! I resign myself to you also . . . . I guess what you mean,
I behold from the beach your crooked inviting fingers,
I believe you refuse to go back without feeling of me;
We must have a turn together . . . . I undress . . . . hurry me out of sight of the land,
Cushion me soft . . . . rock me in billowy drowse,
Dash me with amorous wet . . . . I can repay you."
Walt Whitman
Dockhead is online now   Reply With Quote
Old 29-09-2021, 06:18   #10
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 16,496
Images: 2
Re: Interoperability between OpenCPN(s) & Devices

Tupaia:

The topic is purposefully very general, intended to create discussion about OpenCPN interoperability - exchange of information between systems, "..the task of building coherent services for users when the individual components are technically different and managed by different.."

While the discussion is broad now, the eventual intent is to focus discussion on specific (but frequent) use cases with a list of needs/recommendations/specs for each case.


I had to look up those tracker ids to remember them
FS#2603 - WP Make User Generated Waypoints Portable Between Computers and Operating Systems
FS#2606 - WP Add "export" to the Waypoint right click menu (on the chart).

Thanks. Good work and points on Garmin.

Two questions I've posed are:
  • What information needs to be shared?
  • How can it be shared (most effectively)?
I am sure there are some other good questions about OpenCPN interoperability that need to be answered.

SteveAd:

Has tried to answer the How? and considered changing navobj.xml into a litesync database (synchronization (including off-line), conflict resolution, backup and restore, import, export into csv & zip files etc.) which is worth considering.
  • Perhaps navobj.xml gets a translator to and from the db?
  • What is needed in OpenCPN to have a "contract" between the db and navobj.xml?
  • What is needed in the PI API to have the db contained in a plugin?
He also discussed
  • GPX and the capability of Manuf with respect to varied "level of support for importing waypoints & routes over NMEA 183 or NMEA2000".
  • Dev need for a "consistent set of API's to retrieve waypoints and routes"
RooieDirk:

Appreciated these points:
  • Available in the plugin API
  • Possible to send all kinds of info, including binaries like icons.
  • Wrap GPSbabel in a Plugin. -Mike Rossiter has done some work on this.
Good thoughts about TCP/IP broadcast, identification, handshake and security.

Its a complex topic we need to synthesize. Thank you all.

I think everyone should check out RooieDirk's Nmea Sync PR
rgleason is offline   Reply With Quote
Old 29-09-2021, 06:33   #11
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 16,496
Images: 2
Re: Interoperability between OpenCPN(s) & Devices

There are two levels of interoperability

Level 1: OpenCPN <----> OpenCPN - What? All possible data.
Level 2: OpenCPN <----> Other equipment - What? specific subset that works.

Perhaps the mechanism (How) should be the same for both, but a Manufacturer specific filter/editor/translator tool, using specific IO.config files, is provided for Level 2 that is available to Users to tailor interoperability and share IO.config files.
rgleason is offline   Reply With Quote
Old 29-09-2021, 07:35   #12
Registered User

Join Date: Feb 2019
Location: Cartagena, Spain
Boat: Furia 372 - 11.20m
Posts: 331
Re: Interoperability between OpenCPN(s) & Devices

Completely agree with Steve regarding the DSC.
But we are talking about GPS / Plotter interoperability.
I would focus this integration on two modes of action:

1) - Generation / Reception (instrument repeater) of the data contained in RMB, APB and XTE when navigation is activated. In fact, RMB is enough.
This section is important, since there are many users who have plotters inside and outside the cabin. Navigation data should be visible on both chartplotters (and in OpenCPN as one of them), regardless of which one is generating RMB. We must remember here that RMB has direct translation also in N2k and Seatalk, therefore, all gateways translate it without any problem.
I have verified that older Raymarine Cxx plotters act as repeaters for OpenCPN. The new Axioms may as well do it. At this time, OpenCPN never acts as a navigation data repeater, and I think it should.

2) - Transmission / Reception of Waypoints and routes. This is somewhat more complicated for several reasons:
- NMEA0183 is not really a protocol: the sender does not know if the final receiver has received a sentence, and WPL contains individual waypoint data. It is difficult to control the transmission of a set of waypoints, because the receiver does not know a priori how much data is going to be sent.
- N2k does not have a PGN equivalent to the WPL sentence, it has something similar to a combination of WPL's + RTE in PGN 129285. The literal translation is very difficult.
- From a gateway point of view, it is easy to send waypoints from NMEA0183 wired at 4800 baud to UDP / TCP (WiFi or Ethernet) because this will not cause overrun on the output bus as it is much faster. This does not happen in the opposite direction. If OpenCPN is connected directly to a 4800 baud wired output and directly to the third party plotter it will not be a problem either.
Both Garmin and Raymarine plotters accept the WPL sentence on their NMEA0183 ports, and are also capable of generating it.
Proposed solution to solve this case: Limit the number of output WPL sentences per second to a maximum of 7-8. (If someone wants to know how it is calculated, I can explain it), and simultaneously block the output of the rest of the sentences during the transfer.
My opinion is that it would be easier for OpenCPN to create several file formats (in addition to GPX) for the exchange of waypoints and routes.
Tehani is offline   Reply With Quote
Old 29-09-2021, 19:48   #14
Marine Service Provider
 
bdbcat's Avatar

Join Date: Mar 2008
Posts: 6,782
Re: Interoperability between OpenCPN(s) & Devices

Tehani...
"At this time, OpenCPN never acts as a navigation data repeater, and I think it should."


Well, it does, actually. Most MUX ports can be set to I/O mode. If they are so set, then all the dataflow received by any port is echoed to this output port. Filters are available to throttle data, and preclude recursive loopback.



Or maybe I misunderstand the use case?


Dave
bdbcat is offline   Reply With Quote
Old 29-09-2021, 20:39   #15
Registered User

Join Date: Mar 2016
Location: San Francisco
Boat: Morgan 382
Posts: 639
Re: Interoperability between OpenCPN(s) & Devices

Quote:
Originally Posted by Tupaia View Post
I think Rick's initial post is a bit confusing. Am I right in assuming you (Rick) are trying to glean feedback for Feature requests 2603 and 2606?


Wholybee - Not to confuse hardware with software.



Your comments about Garmin transfer (applies to 126, 128, 78? and others) has been covered previously and there have been fixes. The problem lays with the Garmin not OpenCPN. It is possible to transfer WP's of a route to the Garmin but it will not accept a route per se and there is a some limit to the number of WP's. Sean did extensive work on this and it is now able to transfer the WP's of a route reliably when you "send to GPS". If I recall correctly we tested up to 30 WP's.
I do understand the issues specific to Garmin. But my comment was meant to be more general and applicable to any vendor. The "Send to GPS" feature is very basic and could use some improvement.

All is does is ask a serial port. What if this serial port is used for a connection on the connections page? Is there a conflict? Do I need a second connection to the chartplotter? Should it not default to whatever serial port is set to output NMEA? What about sending via an IP connection? Would it be possible to support proprietary protocols that use USB?

The feature just doesn't seem complete, and is confusing as a Chartplotter is likely already connected via the connections page, and increasingly via IP.

Then there is this discussion in the manual:
https://opencpn.org/wiki/dokuwiki/do...pt-rte-over-ip
__________________
-Warren
wholybee is offline   Reply With Quote
Reply

Tags
enc, opencpn, rope

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Yacht Devices NMEA wifi to OpenCPN TheOffice OpenCPN 16 26-07-2018 15:12
What chartplotter brand / interoperability between brands CatNewBee Marine Electronics 10 17-08-2017 02:43
OpenCPN+Android : external USB-Serial devices ? PaulRowntree OpenCPN 7 02-04-2016 05:12
Synchronize Routes between OpenCPN Desktop and OpenCPN Android Tablets bgs OpenCPN 2 13-03-2016 19:47
Interoperability Sandero Marine Electronics 1 27-07-2014 17:41

Advertise Here


All times are GMT -7. The time now is 03:07.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2022, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2022, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.