Forums & Support

Speed Over Ground

Hi chaps,

My boat is staying at the same spot (though in the water) but yet my SOG reading looks like this over a few days. Is this normal? I read somewhere that you lower the send rate to 10 minutes instead of every 30 seconds when the boat is still, which I imagine means that my Floathub is busy sending data (and thus maybe draining the battery more than necessary) instead of being in 10 minutes hibernation type mode.

Any ideas? It’s moored with ropes so as any boat, I imagine is moves a bit during the day.

The SOG comes from the embedded GPS. It is actually a notoriously difficult problem to use GPS satellites to calculate an estimated speed in the case of a stationary or very slowly moving object. You always have some erratic location errors (which generate GPS “spidering”) and those location errors result in frequent non-zero speed reporting.

We have been slowly evolving our filtering and treatment algorithms, and are actually quite happy with the current state of it. We suspect your device is probably just slightly behind on the current best firmware for SOG filtering.

On power consideration there is no real difference. One place where it can be an issue is with data usage on cellular devices (reporting every 30 seconds uses up a lot more data than reporting every 10 minutes). Current firmware does have an option to adjust the speed threshold (over which the boat is considered to be “in motion”) and the reporting interval from it’s 10 minute default:

The other thing that will generally make a big difference in spidering/erratic SOG measurements is the quality of the GPS fix. This can be improved with an external GPS source, use of an external antenna, or sometimes by re-orienting the FloatHub device so that if has a less (radio wave) impeded view of the sky. Here’s an example of data from a unit with an external GPS antenna:

Thanks. One follow up question: where is the version number displayed? I can’t find any obvious number on the device web pages or on the latest release on GitHub.

Displaying firmware is a little complicated. If you have a USB A-C cable that will plug into your FloatHub device and your computer, you run run a terminal program that will talk to that USB as a serial device. When you first connect it and run the terminal program, you should see NMEA data scrolling by, eg:


If you type “cons” and hit enter, that will put your device in console mode. The NMEA will stop and you will see less frequent data stream by like this:


If you then type “v” and hit enter, the device will output all of it’s current configuration settings. That will start something like this:

$FHH:factoryX:2$ v=2.2,m=FHC.P9.Q1.v2.5.0,b=10
$FHH:factoryX:2$ i=factoryX
$FHH:factoryX:2$ p=50003
$FHH:factoryX:2$ k=000102030405060708090a0b0c0d0e0f
$FHH:factoryX:2$ w=factoryX

… etc. …

The very first line will show the firmware version string (m=). You will sometimes need to hit v (and enter) a couple of times to get a complete dump that includes the first line.

Do you mean USB A-C or USB A-B? I suspect USB A-B interfacing with the Arduino and not the ESP82?

This is my dump:

$FHH:u3SNg6Zo:2$ v=2.2,m=FHW.P9.K8.v2.2.9,b=2110
$FHH:u3SNgFHH:u3SNg6Zo:2$ Mac: 500291689464
$FHH:u3SNg6Zo:2$ Uptime: 2.95 mins

Is this showing the version of the ESP8266 or the Arduino-based firmware?

Yes on USB-B, as you have obviously figured out :slight_smile:

The Arduino and ESP8266 software share a versioning number as they need to work very closely together.

This line:


shows that your device:

supports version 2.2 of the FloatHub protocol (v=2.2)
is a WiFi device (FHW) with "K8" circuit board ("P9.K8")
is running software version 2.2.9
and has been powered on or otherwise rebooted 2,110 times since it was first flashed. 

There is not a strict release documentation policy, but you can infer which features were available when from the commit history:


For example, the version bump to 2.2.9 occurred on August 28, 2020:


But the user settable speed thresholds were after that in February of 2021: