diff --git a/src/modules/PositionModule.cpp b/src/modules/PositionModule.cpp index 3247c4288..22659cac6 100644 --- a/src/modules/PositionModule.cpp +++ b/src/modules/PositionModule.cpp @@ -129,9 +129,8 @@ int32_t PositionModule::runOnce() // We limit our GPS broadcasts to a max rate uint32_t now = millis(); - if (lastGpsSend == 0 || now - lastGpsSend >= config.position.position_broadcast_secs - ? config.position.position_broadcast_secs - : default_broadcast_interval_secs * 1000) { + uint32_t intervalMs = config.position.position_broadcast_secs > 0 ? config.position.position_broadcast_secs * 1000 : default_broadcast_interval_secs * 1000; + if (lastGpsSend == 0 || (now - lastGpsSend) >= intervalMs) { // Only send packets if the channel is less than 40% utilized. if (airTime->channelUtilizationPercent() < 40) {