Hunting the HT-CT62 Meshtastic deafness syndrome
After running the SolarMeshtasticNode for 7 days on the rooftop of my house, it suddenly turned dead. The statistics script that was pulling telemetry failed and never recovered. After collecting the device and connecting an RS232<->USB adapter to it, the ESP32 microcontroller was pretty much alive - but not a single LoRa packet was received anymore.
Looking at the latest power graphs showed that it reached almost Reset-Voltage (3.2V) because of the lack of sunshine.

Hmm! Did a sudden voltage dip confused the Semtech SX1262 and kicked it into a deafness bug/mode?
As Meshtastic is reading the battery voltage every few minutes we can collect the “GetDeviceErrors” the Semtech SX1262 status at the same time.

A really ugly hack now for collecting this register and handling it (= Reboot if there is an issue).
if (deviceRunning) {
uint8_t status[3] = {0x00, 0x00, 0x00};
spiLock->lock();
digitalWrite(LORA_CS, LOW);
SPI.transfer(0x17); /* GetDeviceErrors */
status[0] = SPI.transfer(0x00); /* Status */
status[1] = SPI.transfer(0x00); /* OpError */
status[2] = SPI.transfer(0x00); /* OpError */
digitalWrite(LORA_CS, HIGH);
spiLock->unlock();
LOG_INFO("SX1262 Status register: 0x%x 0x%x 0x%x", status[0], status[1], status[2]);
if (status[1] != 0x00 || status[2] != 0x00) {
LOG_ERROR("Error bit in GetDeviceError register is set. Restarting device.");
ESP.restart();
}
}
Let’s see and wait.