Fix battery voltage readouts
This commit is contained in:
+2
-1
@@ -20,7 +20,8 @@ void initBatteryADC() {
|
|||||||
float readBatteryVoltage() {
|
float readBatteryVoltage() {
|
||||||
// 8 quick reads, no delay() calls, no analogReference() change
|
// 8 quick reads, no delay() calls, no analogReference() change
|
||||||
int32_t raw=0; for (int i=0; i<8; i++) raw += analogRead(PIN_VBAT_READ); raw /= 8;
|
int32_t raw=0; for (int i=0; i<8; i++) raw += analogRead(PIN_VBAT_READ); raw /= 8;
|
||||||
return (raw / 4096.0f) * 3.0f * 2.0f;
|
// Seeed XIAO nRF52840 Sense: 1MΩ + 510kΩ voltage divider on VBAT → multiply by 1510/510
|
||||||
|
return (raw / 4096.0f) * 3.0f * (1510.0f / 510.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
int batteryPercent(float v) {
|
int batteryPercent(float v) {
|
||||||
|
|||||||
+1
-1
@@ -231,7 +231,7 @@ void setup() {
|
|||||||
blehid.begin();
|
blehid.begin();
|
||||||
|
|
||||||
#ifdef FEATURE_BATTERY_MONITOR
|
#ifdef FEATURE_BATTERY_MONITOR
|
||||||
blebas.begin(); blebas.write(100);
|
blebas.begin(); blebas.write(batteryPercent(readBatteryVoltage()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEATURE_CONFIG_SERVICE
|
#ifdef FEATURE_CONFIG_SERVICE
|
||||||
|
|||||||
+5
-1
@@ -125,8 +125,12 @@ async function discoverServices() {
|
|||||||
// Telemetry notify (1 Hz) — also carries chargeStatus
|
// Telemetry notify (1 Hz) — also carries chargeStatus
|
||||||
chars.telemetry.addEventListener('characteristicvaluechanged', e => parseTelemetry(e.target.value));
|
chars.telemetry.addEventListener('characteristicvaluechanged', e => parseTelemetry(e.target.value));
|
||||||
await chars.telemetry.startNotifications();
|
await chars.telemetry.startNotifications();
|
||||||
// Initial read so values show immediately
|
// Initial read so values show immediately. Also force updateChargeUI() here
|
||||||
|
// because parseTelemetry() only calls it on a *change*, and currentChargeStatus
|
||||||
|
// starts at 0 (discharging) — so a discharging device would never trigger the
|
||||||
|
// update and ciStatus would stay at '--'.
|
||||||
parseTelemetry(await chars.telemetry.readValue());
|
parseTelemetry(await chars.telemetry.readValue());
|
||||||
|
updateChargeUI();
|
||||||
|
|
||||||
// IMU stream — subscribed on demand via play button
|
// IMU stream — subscribed on demand via play button
|
||||||
chars.imuStream.addEventListener('characteristicvaluechanged', e => parseImuStream(e.target.value));
|
chars.imuStream.addEventListener('characteristicvaluechanged', e => parseImuStream(e.target.value));
|
||||||
|
|||||||
Reference in New Issue
Block a user