Index: firmware/powermgmt.c =================================================================== --- firmware/powermgmt.c (revision 23328) +++ firmware/powermgmt.c (working copy) @@ -282,17 +282,14 @@ else #endif /* discharging: remaining running time */ - if ((battery_millivolts + 20) > percent_to_volt_discharge[0][0]) { + if (battery_millivolts > percent_to_volt_discharge[0][0]) { + /* linear extrapolation */ powermgmt_est_runningtime_min = (level + battery_percent)*60 * battery_capacity / 200 / runcurrent(); } - else if (battery_millivolts <= battery_level_shutoff[0]) { + if (0 > powermgmt_est_runningtime_min) { powermgmt_est_runningtime_min = 0; } - else { - powermgmt_est_runningtime_min = - (battery_millivolts - battery_level_shutoff[0]) / 2; - } battery_percent = level; send_battery_level_event();