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) {
csum += data[i + start];
return csum & 0xff;
}
+
+ public static double beep_value_to_freq(int value) {
+ if (value == 0)
+ return 4000;
+ return 1.0/2.0 * (24.0e6/32.0) / (double) value;
+ }
+
+ public static int beep_freq_to_value(double freq) {
+ if (freq == 0)
+ return 94;
+ return (int) Math.floor (1.0/2.0 * (24.0e6/32.0) / freq + 0.5);
+ }
}