Skip to content

Heltec T114: Erratic TX LED blinking ("Christmas Tree") on flood advert RX #2318

@terminalvelocity23

Description

@terminalvelocity23

Problem Description

On the Heltec T114 (nRF52840) running the Companion Radio firmware, the green TX LED (GPIO35 / P_LORA_TX_LED) exhibits chaotic, high-frequency blinking (a "Christmas tree" effect). This happens:

Even when the device is idle (no phone connected, no keep-alives).

Most notably after receiving a flood-advert packet.

This blinking is not accompanied by actual RF transmissions (verified via TinySA). It might be visual noise from the dispatcher's repeated attempts to transmit when the software CAD (Channel Activity Detection) falsely reports the channel as busy.

Hardware Context

Board: Heltec T114 v2.1

LED: Simple green SMD LED on GPIO35. (Note: The T114 also has two RGB LEDs on GPIO14, but these are only active during the bootloader's DFU/OTA mode and are not used by MeshCore).

Root Cause Analysis (Findings)

This issue is not a simple bug but a combination of factors:

Flash State: The issue is highly sensitive to the state of the flash memory. It can often be completely cured by fully erasing the flash with nrf_erase2.uf2 and re-flashing.

RadioLib Version: The behavior is significantly worse with older versions of RadioLib. Upgrading to 7.6.0 improves stability but does not fix the root cause.

Hypothesis - Software CAD: One theory is that MeshCore's RSSI-based software CAD (RadioLibWrapper::isChannelActive) is prone to false positives, causing the dispatcher to repeatedly attempt (and fail) to send queued packets, triggering onBeforeTransmit() each time. However, this doesn't fully explain why the issue occurs when the outbound queue is empty.

Reproduction Steps

Flash a T114 with the standard companion_radio_ble firmware.

Ensure no phone is connected and client_repeat is 0.

Send a flood-advert from another node.

Observe: The green LED will begin blinking erratically for several seconds.

Additional Notes

The "Christmas tree" effect is not present on ESP32-based boards (Heltec V3/V4) in the same environment.

The RGB LEDs on the T114 are not used by MeshCore and should not be confused with the green TX LED. The RGB LEDs are controlled solely by the Heltec bootloader during DFU/OTA mode (red/purple).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions