Hunting the HT-CT62 Meshtastic deafness syndrome

 Date: February 2, 2025

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.

Voltage log of my Meshtastic station. Marker shows that it almost reached reset voltage.
Voltage Log of my Meshtastic station. Marker shows that it almost reached reset voltage.

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.

Semtech SX1262 Device Error Register
Semtech SX1262 Device Error Register

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.


Previous
⏪ Zephyr: USB ACM (Virtual Serial Port) with the ST STM32U083

Next
Zephyr + The Things Network + Solar + MQTT + STM32U0: Puttying everything together ⏩