summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2015-06-25 18:31:29 -0700
committerKeith Packard <keithp@keithp.com>2015-06-25 18:43:13 -0700
commit7c0f66bf64f410415afaff1b5c8e1443512b7a57 (patch)
tree74eb6c0364d0cfbbbc97dd4c0419b8b857af55bb
parentee1b0bd05bedb8a5a631cc79c77fde8fd920ac38 (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.java6
-rw-r--r--altoslib/AltosLink.java10
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() {