diff options
| -rw-r--r-- | altoslib/AltosConvert.java | 17 | ||||
| -rw-r--r-- | altoslib/AltosSensorEMini.java | 8 | 
2 files changed, 18 insertions, 7 deletions
diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 8f214c8b..35923ec3 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -224,10 +224,21 @@ public class AltosConvert {  		return sensor / 32767.0 * supply * 127/27;  	} -	static double easy_mini_voltage(int sensor) { -		double	supply = 3.0; +	static double easy_mini_voltage(int sensor, int serial) { +		double	supply = 3.3; +		double	diode_offset = 0.0; -		return sensor / 32767.0 * supply * 127/27; +		/* early prototypes had a 3.0V regulator */ +		if (serial < 1000) +			supply = 3.0; + +		/* Purple v1.0 boards had the sensor after the +		 * blocking diode, which drops about 150mV +		 */ +		if (serial < 1665) +			diode_offset = 0.150; + +		return sensor / 32767.0 * supply * 127/27 + diode_offset;  	}  	public static double radio_to_frequency(int freq, int setting, int cal, int channel) { diff --git a/altoslib/AltosSensorEMini.java b/altoslib/AltosSensorEMini.java index f888754c..5f43b3a9 100644 --- a/altoslib/AltosSensorEMini.java +++ b/altoslib/AltosSensorEMini.java @@ -31,10 +31,10 @@ public class AltosSensorEMini {  			if (sensor_emini == null)  				return; -			state.set_battery_voltage(AltosConvert.easy_mini_voltage(sensor_emini.batt)); -			state.set_apogee_voltage(AltosConvert.easy_mini_voltage(sensor_emini.apogee)); -			state.set_main_voltage(AltosConvert.easy_mini_voltage(sensor_emini.main)); -			 +			state.set_battery_voltage(AltosConvert.easy_mini_voltage(sensor_emini.batt, config_data.serial)); +			state.set_apogee_voltage(AltosConvert.easy_mini_voltage(sensor_emini.apogee, config_data.serial)); +			state.set_main_voltage(AltosConvert.easy_mini_voltage(sensor_emini.main, config_data.serial)); +  		} catch (TimeoutException te) {  		}  	}  | 
