diff --git a/radio/src/telemetry/telemetry_sensors.cpp b/radio/src/telemetry/telemetry_sensors.cpp index 64544b90f..52c5ea02a 100644 --- a/radio/src/telemetry/telemetry_sensors.cpp +++ b/radio/src/telemetry/telemetry_sensors.cpp @@ -315,12 +315,16 @@ void TelemetryItem::eval(const TelemetrySensor & sensor) dist = gpsItem.distFromEarthAxis * angle / 1000000; result += dist*dist; + // Length on ground (ignoring curvature of the earth) + result = isqrt32(result); + if (altItem) { dist = abs(altItem->value) / g_model.telemetrySensors[sensor.dist.alt-1].getPrecDivisor(); - result += dist*dist; + result = dist*dist + result*result; + result = isqrt32(result); } - setValue(sensor, isqrt32(result), UNIT_METERS); + setValue(sensor, result, UNIT_METERS); } break;