diff options
author | Keith Packard <keithp@keithp.com> | 2015-06-25 18:31:29 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2015-06-25 18:43:13 -0700 |
commit | 7c0f66bf64f410415afaff1b5c8e1443512b7a57 (patch) | |
tree | 74eb6c0364d0cfbbbc97dd4c0419b8b857af55bb | |
parent | ee1b0bd05bedb8a5a631cc79c77fde8fd920ac38 (diff) |
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 <keithp@keithp.com>
-rw-r--r-- | altoslib/AltosConvert.java | 6 | ||||
-rw-r--r-- | altoslib/AltosLink.java | 10 |
2 files changed, 15 insertions, 1 deletions
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() { |