mirror of
https://github.com/markqvist/RNode_Firmware.git
synced 2025-11-22 07:51:53 -05:00
Added CPU temperature measurement and reporting on ESP32S3
This commit is contained in:
parent
8a3db4f0c3
commit
89ea59bbe6
3 changed files with 29 additions and 0 deletions
|
|
@ -46,6 +46,7 @@
|
||||||
#define CMD_STAT_PHYPRM 0x26
|
#define CMD_STAT_PHYPRM 0x26
|
||||||
#define CMD_STAT_BAT 0x27
|
#define CMD_STAT_BAT 0x27
|
||||||
#define CMD_STAT_CSMA 0x28
|
#define CMD_STAT_CSMA 0x28
|
||||||
|
#define CMD_STAT_TEMP 0x29
|
||||||
#define CMD_BLINK 0x30
|
#define CMD_BLINK 0x30
|
||||||
#define CMD_RANDOM 0x40
|
#define CMD_RANDOM 0x40
|
||||||
|
|
||||||
|
|
|
||||||
17
Power.h
17
Power.h
|
|
@ -13,6 +13,12 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#define PMU_TEMP_MIN -30
|
||||||
|
#define PMU_TEMP_MAX 90
|
||||||
|
#define PMU_TEMP_OFFSET 120
|
||||||
|
bool pmu_temp_sensor_ready = false;
|
||||||
|
float pmu_temperature = PMU_TEMP_MIN-1;
|
||||||
|
|
||||||
#if BOARD_MODEL == BOARD_TBEAM || BOARD_MODEL == BOARD_TBEAM_S_V1
|
#if BOARD_MODEL == BOARD_TBEAM || BOARD_MODEL == BOARD_TBEAM_S_V1
|
||||||
#include <XPowersLib.h>
|
#include <XPowersLib.h>
|
||||||
XPowersLibInterface* PMU = NULL;
|
XPowersLibInterface* PMU = NULL;
|
||||||
|
|
@ -187,6 +193,11 @@ bool bat_diff_positive = false;
|
||||||
#define PMU_R_INTERVAL 5
|
#define PMU_R_INTERVAL 5
|
||||||
#define PMU_SCV_RESET_INTERVAL 3
|
#define PMU_SCV_RESET_INTERVAL 3
|
||||||
void kiss_indicate_battery();
|
void kiss_indicate_battery();
|
||||||
|
void kiss_indicate_temperature();
|
||||||
|
|
||||||
|
void measure_temperature() {
|
||||||
|
if (pmu_temp_sensor_ready) { pmu_temperature = temperatureRead(); } else { pmu_temperature = PMU_TEMP_MIN-1; }
|
||||||
|
}
|
||||||
|
|
||||||
void measure_battery() {
|
void measure_battery() {
|
||||||
#if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_HELTEC32_V4 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_HELTEC_T114 || BOARD_MODEL == BOARD_TECHO
|
#if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_HELTEC32_V4 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_HELTEC_T114 || BOARD_MODEL == BOARD_TECHO
|
||||||
|
|
@ -380,6 +391,7 @@ void measure_battery() {
|
||||||
pmu_rc++;
|
pmu_rc++;
|
||||||
if (pmu_rc%PMU_R_INTERVAL == 0) {
|
if (pmu_rc%PMU_R_INTERVAL == 0) {
|
||||||
kiss_indicate_battery();
|
kiss_indicate_battery();
|
||||||
|
if (pmu_temp_sensor_ready) { kiss_indicate_temperature(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -387,11 +399,16 @@ void measure_battery() {
|
||||||
void update_pmu() {
|
void update_pmu() {
|
||||||
if (millis()-last_pmu_update >= pmu_update_interval) {
|
if (millis()-last_pmu_update >= pmu_update_interval) {
|
||||||
measure_battery();
|
measure_battery();
|
||||||
|
measure_temperature();
|
||||||
last_pmu_update = millis();
|
last_pmu_update = millis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool init_pmu() {
|
bool init_pmu() {
|
||||||
|
#if IS_ESP32S3
|
||||||
|
pmu_temp_sensor_ready = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_TECHO
|
#if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_TECHO
|
||||||
pinMode(pin_vbat, INPUT);
|
pinMode(pin_vbat, INPUT);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
11
Utilities.h
11
Utilities.h
|
|
@ -1014,6 +1014,17 @@ void kiss_indicate_battery() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kiss_indicate_temperature() {
|
||||||
|
#if MCU_VARIANT == MCU_ESP32 || MCU_VARIANT == MCU_NRF52
|
||||||
|
float pmu_temp = pmu_temperature+PMU_TEMP_OFFSET;
|
||||||
|
uint8_t temp = (uint8_t)pmu_temp;
|
||||||
|
serial_write(FEND);
|
||||||
|
serial_write(CMD_STAT_TEMP);
|
||||||
|
escaped_serial_write(pmu_temp);
|
||||||
|
serial_write(FEND);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void kiss_indicate_btpin() {
|
void kiss_indicate_btpin() {
|
||||||
#if HAS_BLUETOOTH || HAS_BLE == true
|
#if HAS_BLUETOOTH || HAS_BLE == true
|
||||||
serial_write(FEND);
|
serial_write(FEND);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue