Merge PowerSaving-v17 and harden noise calibration and RX recovery

Port the measured RXPS model without changing Cascade wire preambles or automatically enabling experimental levels. Use a spaced weighted median with bounded calibration windows, preserve packet ownership across CAD, and check actual SX126x receive mode before recovery.

Preserve Cascade sleep and radio fixes, integrate the new sensor and board profiles, and correct BSEC script inheritance and the MKE UART pin conflict. Native regressions, production-method/SPI harnesses, and ESP32, nRF52, and STM32 builds pass. Hardware comparison and fault-injection validation are recorded privately.
This commit is contained in:
mikecarper committed 2026-09-10 13:19:22 -07:00
commit 581b82fa51
34 files changed
+1800 -495

No files matched your search

+11
View File
@@ -225,7 +225,18 @@ uint8_t SensorMesh::handleRequest(uint8_t perms, uint32_t sender_timestamp, uint
if (telemetry_permissions & TELEM_PERM_BASE) {
telemetry.addVoltage(TELEM_CHANNEL_SELF, (float)board.getBattMilliVolts() / 1000.0f);
}
if (telemetry_permissions & TELEM_PERM_BASE) {
const float temperature = board.getMCUTemperature();
if (!isnan(temperature)) {
telemetry.addTemperature(TELEM_CHANNEL_SELF, temperature);
}
}
// query other sensors -- target specific
if ((telemetry_permissions & TELEM_PERM_LOCATION)
&& sensors.getLocationProvider() != nullptr
&& sensors.getLocationProvider()->getGPSPowerSaving()) {
sensors.getLocationProvider()->syncTime();
}
sensors.querySensors(telemetry_permissions, telemetry);
// TODO: let requester know permissions they have: telemetry.addPresence(TELEM_CHANNEL_SELF, perms);