I was just about to scream for help. I am running OCPN Version 4.4.0 Build 2016-05-31 on a Dell laptop
with Ubuntu 16.04. I had bought one of these BU-353 USB GPS
pucks before, and used it before with OCPN and Ubuntu, with no issues. It got misplaced somewhere and I recently bought the newer BU-353-S4 model. For just general navigation
, I have not one but four Samsun Note 3 phablets, with good GPS
capability, all rooted and running custom ROM, all unlocked, all with OCPN for Android installed. The problem was that the speed output displayed was not accurate enough and I could not change the averaging time or display refresh rate. This is normally no biggie but I was attempting to do some accurate SOG/RPM trials at low speed over short distances, to make power calculations easier, more relevant, and useful under varying conditions of wind
and wave. I know that sounds anal, but my boat
, and I built the propulsion
system and am continually tweaking it to get peak efficiency and performance out of it, so very small differences in Speed Over Ground vs prop RPM
make a tremendous difference. I looked for the old GlobalSat BU353 and couldn't find it, and bought the new one, assured that the S4 variant was better.
I wanted to look at the raw NMEA
sentences as they were output from the device, at low level, in a terminal, and both xgps (UI) and cgps (terminal) worked, as did GPSMON. I tried it with OCPN and it didn't work
. The GPS debug window just showed gibberish or nothing at all. I did some research
and discovered that Linux
was allowing the GPS to "upshift" into SiRF binary output mode. I tried using gpsctl to change it back to NMEA 0183
output, but it didn't work
. I borrowed a WinDOHs computer and installed the drivers from the supplied mini CD, but there was no option to change to or from NMEA
. I found an older version online, SiRFDemo387.zip, installed that on the WinDOHs box, opened it and was able to find options for changing the device back to NMEA.
Meanwhile on my Ubuntu laptop
I got rid of gpsd altogether using "sudo apt-get autoremove" in terminal. I don't really need the terminal based monitoring since I have the OCPN GPS Debug window for data. I set a filter of "VTG" so the window only shows NMEA sentences with VTG in them, which are velocity made good (Speed Over Ground, since no waypoint is specified on the device) in knots and km, and course in True and Magnetic. Each sentence is time stamped, too. I can easily take 10 or 20 sentences that look good and average them. I can also use the GLL sentence and average Lat and Lon over say a 60 second window, take the time from the middle of that minute, and then do the same at the end of the run, and manually calculate speed over the run to a high degree of accuracy and relevancy. Either way is going to work fine. The GPS itself is extremely accurate and fast! I can sit tied to the dock
and the device sitting on the hatch
, and after a few seconds it settles out and shows 0.0 knots. If I pick it up and move it an arms length away in a period of about two seconds, the speed spikes instantly, showing a knot
or two. Extreme performance, much better than what the navigation
panel of OCPN will display on either the Ubuntu or Android platform, or what any of the Android speedometer apps (I have tried at least two dozen different ones) will indicate. Performance indicated by the OCPN GPS NMEA debug window is slightly degraded below decks but still settles out to 0.0 knots for minutes at a time and detects movement of a couple of feet.
Another GPS device I bought since it was only about $12 was the DIY
Mall G28U7FUSB, a bare naked USB device without a case. Performance below was not all that great plugged directly into the USB port below deck
, but a little better with a 3' USB cable and almost as good as the BU353-S4 on deck
with a clear view of the sky. The thing about the DIY
Mall device is it apparently has no binary mode to shift into. I was able to use it with GPSD and the various related clients, even give it a network port (2497 I think is default) and it would run with OCPN. Unplugging, replugging, plugging into the WinDOHs computer, moving back to the Ubuntu computer, had no effect on it. So the GlobalSat GPS is a victim of its own sophistication. The simpler device costing 1/3 as much is much more practical, unless you are okay with running WinDOHs or Muckintosh.
Similar results with another USB GPS dongle I got free about 10 years ago with MS Streets and Trips, back before I was enlightened and introduced to the magical world of Linux
. It was not as accurate as the other two devices, speed jumping around constantly, but never going over .3kts at rest. I think this is due to lack of DGPS/AGPS capability.
Now I know I have got a bit longwinded here, but basically I had a need that I thought the GlobalSat BU-353-S4 could answer for me, and it didn't, until I uninstalled gpsd using "sudo apt-get autoremove" in Terminal. So anybody else finding that the GlobalSat GPS, that comes so highly recommended for Linux, doesn't work, could get it running and playing nicely with OCPN by doing the same. Only drawback is that other apps that rely on gpsd for connection to a GPS might no longer work any more.
So, that still leaves me with the question of how gpsd can be made to play nice with this GPS, if it can at all. I did an extensive web search and the only clue I could find is that apparently the GPS will "latch" into SiRF mode, preventing Linux based tools from changing it back to NMEA, though the older version of the Windows software
can always do it. Linux gurus... have you experience with this problem, and a solution, other than simply not using gpsd or the gpsd clients?
Before anybody asks what this has to do with OCPN, remember that the device will no longer work with OCPN when it is latched into SiRF mode. It must be in NMEA mode. I want it to stop making itself unreadable by OCPN just because I have gpsd installed, which I believe is part of the stock Ubuntu 16.04 distribution.