From: Keith Packard Date: Fri, 26 Jun 2015 01:31:29 +0000 (-0700) Subject: altoslib: Support TeleBT v3.0 battery voltage conversion X-Git-Tag: 1.6.0.4~19 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=7c0f66bf64f410415afaff1b5c8e1443512b7a57 altoslib: Support TeleBT v3.0 battery voltage conversion TeleBT v3.0 uses an STM32 instead of a cc1111, so it needs a different voltage computation from the raw ADC value. Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 5750afad..3e0f0e1a 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -230,6 +230,12 @@ public class AltosConvert { return sensor / 32767.0 * supply * (5.6 + 10.0) / 10.0; } + static double tele_bt_3_battery(int raw) { + if (raw == AltosLib.MISSING) + return AltosLib.MISSING; + return 3.3 * mega_adc(raw) * (5.1 + 10.0) / 10.0; + } + static double easy_mini_voltage(int sensor, int serial) { double supply = 3.3; double diode_offset = 0.0; diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java index 4f3a1ed2..e33f7c77 100644 --- a/altoslib/AltosLink.java +++ b/altoslib/AltosLink.java @@ -553,7 +553,15 @@ public abstract class AltosLink implements Runnable { } if (monitor_batt == AltosLib.MISSING) return AltosLib.MISSING; - return AltosConvert.cc_battery_to_voltage(monitor_batt); + + double volts = AltosLib.MISSING; + if (config_data.product.startsWith("TeleBT-v3")) { + volts = AltosConvert.tele_bt_3_battery(monitor_batt); + } else { + volts = AltosConvert.cc_battery_to_voltage(monitor_batt); + } + + return volts; } public AltosLink() {