Meanwhile, you’re partially correct. The code is much more beautiful than I thought! The write up so far:
ok you got me, I looked into it, and here is what I found:
- our driver that works with usb connected gps-es does support setting a device instance, and also it works. Ie. restart that driver or reboot the GX and the gps on the dbus will have a different instance:
root@einstein:~# cat /data/log/localsettings/* | tai64nlocal
2025-09-18 18:59:34.539941500 INFO:root:Setting /Settings/Devices/vegps_ttyUSB1/ClassAndVrmInstance changed. Old: gps:0, New: gps:10
2025-09-18 19:00:54.200606500 INFO:root:Setting /Settings/Devices/vegps_ttyUSB1/ClassAndVrmInstance changed. Old: gps:10, New: gps:0
note that its tied to the USB port, so in case USB numbering changes, then this instance will change as well; result is that this is somewhat unreliable unless you add scripting that on boot finds the usb connected gps, checks the device instance, and changes it.
the other driver, that takes gps data from N2K networks, supports the same.
Then, here the proof that the instance indeed changes:
root@einstein:~# dbus -y com.victronenergy.gps.ve_ttyUSB1 / GetValue
value = {'Altitude': [],
'Connected': 1,
'Course': [],
'DeviceInstance': 0,
'FirmwareVersion': [],
'Fix': 0,
'HardwareVersion': [],
'Mgmt/Connection': 'USB',
'Mgmt/ProcessName': 'gps_dbus',
'Mgmt/ProcessVersion': '1.07',
'NrOfSatellites': [],
'Position/Latitude': [],
'Position/Longitude': [],
'ProductId': 41315,
'ProductName': 'NMEA-0183 GPS (USB1)',
'Speed': []}
Next, there is logic in dbus-systemcalc that continously monitors what gps data is on dbus, and then puts the service name as well as speed on the dbus under the /GpsService and /GpsSpeed paths.
I’ve added that to our documentation: dbus · victronenergy/venus Wiki · GitHub. Search for GPS.
The code responsible for gps data transmission to VRM also nicely uses that; so all good there.
But looks like the boat page in gui-v2 doesn’t use that, more on that later.
And meanwhile, a system with working gps would help to sort this quickly.