diff --git a/README_TESTED_SENSORS.md b/README_TESTED_SENSORS.md index 6e03e5eb6..5daa83913 100644 --- a/README_TESTED_SENSORS.md +++ b/README_TESTED_SENSORS.md @@ -19,8 +19,11 @@ However, often only one value is provided. ### Speed * Garmin Speed Sensor 2 - This sensor reports speed data as cadence. - A workaround is in place. + * Has updatable firmware that requires an account for garmin.com + * This sensor reports speed data as cadence. + A workaround is in place. + * This sensor sometimes counts backwards (unknown software version). + A workaround is in place. * Wahoo Speed (Model: WFRPMSPD) diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java index 2c3a94e00..6b3cfb43a 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java +++ b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java @@ -127,6 +127,8 @@ public final class SensorDataCycling { value = null; } else { long wheelDiff = UintUtils.diff(wheelRevolutionsCount, previous.wheelRevolutionsCount, UintUtils.UINT16_MAX); + wheelDiff = Math.abs(wheelDiff); //HACK for Garmin Speed 2 as it some of those seem to count backwards + double timeDiff_s = timeDiff_ms * UnitConversions.MS_TO_S; float distance_m = (float) (wheelDiff * wheel_circumference_mm * UnitConversions.MM_TO_M); float distance_overall_m = distance_m;