WiFi LoRa 32 V4 / ESP32-S3 SX1262 cannot get TTN US915 FSB2 uplinks visible

Hi,

I am trying to get a Heltec WiFi LoRa 32 V4 working with The Things Network / The Things Stack on US915 FSB2. I have tried both the Heltec LoRaWan_APP examples and RadioLib. The board seems alive and the SX1262 can be initialized, but I cannot get TTN live data to show join requests/uplinks reliably.

Hardware:

  • Heltec WiFi LoRa 32 V4
  • ESP32-S3 + SX1262
  • Chip ID available privately if Heltec support needs it
  • Heltec license installed locally, not posted publicly
  • Board connected on Windows COM4
  • Region: US915
  • TTN frequency plan: United States 902-928 MHz, FSB 2 used by TTN
  • LoRaWAN class: A
  • Activation: OTAA, unconfirmed uplinks

TTN device settings:

  • Manual registration
  • Frequency plan: United States 902-928 MHz, FSB 2 used by TTN
  • LoRaWAN version tried: 1.0.2 and 1.0.4
  • Regional Parameters tried: matching 1.0.2 / RP002 1.0.4 depending on device
  • JoinEUI/AppEUI: 0000000000001234
  • DevEUI currently used: 70B3D57ED0077CF9
  • AppKey: set locally, not posted

Important note:
I previously had a possible EUI byte-order issue. Some test firmware printed reversed values like:

  • DevEUI: 027C07D07ED5B370
  • AppEUI: 3412000000000000

I corrected the code so the serial output now prints:

  • DevEUI: 70B3D57ED0077CF9
  • AppEUI: 0000000000001234

Current Heltec LoRaWan_APP test:

  • Based on stock LoRaWan example shape
  • License words installed before Mcu.begin(…)
  • Uses WIFI_LORA_32_V4
  • Uses USE_KCT8103L_PA
  • Uses LORA_RX_LNA=HIGH
  • Uses RADIO_CHIP_SX1262
  • Uses REGION_US915
  • Uses HELTEC_BOARD=30
  • Channel mask currently:
    {0xFF00, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000}
  • Default DR: 3
  • ADR: on
  • Sends fixed unconfirmed payload:
    01 02 03 04 05 06 07 08 09 0A 0B
  • Serial shows STATE_INIT, STATE_JOIN, then join failed / retry.

I also tried:

  • mask {0x00FF,0,0,0,0,0}
  • KCT8103L PA profile
  • GC1109 PA profile
  • DR0 and DR3
  • ADR on/off
  • Heltec LoRaWan_APP OTAA
  • RadioLib OTAA
  • RadioLib ABP

RadioLib details:

  • SX1262 init succeeds with explicit pins:
    NSS=8, DIO1=14, RST=12, BUSY=13
    SPI SCK=9, MISO=11, MOSI=10
  • V4 RF switch / PA pins from Heltec config:
    PA=7, CSD=2, CTX=5
  • RadioLib RSSI/spectrum scanner works, so SPI and basic SX1262 access seem OK.
  • RadioLib ABP test activates locally and sendReceive returns ERR_NONE for repeated unconfirmed uplinks, but I still do not see uplinks in TTN.

Local scanner observation:
I ran a passive US915 spectrum/RSSI scanner with the same SX1262. It sees energy/spikes around TTN downlink-window frequencies and relatively quiet FSB2 uplink channels, so the radio receive side seems at least functional. I know passive scan cannot prove that a gateway hears my device.

Symptoms:

  • Heltec LoRaWan_APP enters join state but no successful join.
  • RadioLib OTAA returns no join accept.
  • RadioLib ABP reports local send success, but TTN shows no data.
  • TTN live data currently shows no recent activity for the new device.

Questions:

  1. For WiFi LoRa 32 V4, which exact board macros/profile should be used?
    WIFI_LORA_32_V4?
    WIFI_LORA_32_V4_R8?
    USE_KCT8103L_PA?
    USE_GC1109_PA?
    another combination?

  2. For TTN US915 FSB2, is this channel mask correct for Heltec LoRaWan_APP?
    {0xFF00, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000}

  3. Is HELTEC_BOARD=30 correct for WiFi LoRa 32 V4 in LoRaWan_APP / Mcu.begin?

  4. Are DevEUI and JoinEUI expected in display/MSB byte order in the arrays for the current Heltec ESP32 library, or reversed/LSB order?

  5. Does the V4 require any special RF switch setup for LoRaWAN TX/RX beyond the board macros?

  6. Can someone share a minimal known-good Arduino or PlatformIO example for WiFi LoRa 32 V4 + TTN US915 FSB2 OTAA?

  7. Is Heltec ESP32 Dev-Boards 2.1.7 current enough for WiFi LoRa 32 V4, or should I use a newer package/version?

Any advice would be appreciated. I can provide serial logs or a minimal test sketch if helpful.

1 Like

Which board macro’s in which library?

From memory, looks about right. The LW_App code base is ancient - really really ancient. And they haven’t even updated it for the v4 board …

Use the Espressif official Arduino-ESP32 BSP - the Heltec one is fully Heltec’d.

Which board macros for which library. For RadioLib there is no support for the extra LNA/PA that’s been added, yet.

I’m the testing surf. The head of development hasn’t worked on his v4 yet, so the actual official RadioLib answer is NO.

Per #4, just don’t. Use the Espressif offering. Maybe, maybe look at the Heltec BSP to see what they have done.

Context: Shipping v3 based stuff that does things up the Wazoo using the latest Espressif + latest RadioLib and it’s all peaches & cream.

The v4 PA/LNA distorts the radio footprint to cater for the MeshBull5hit crowd. For LW, it has the potential to have the gateway & LNS unable to understand the RSSI & SNR figures and for many jurisdictions will breach legal limits.

I’m running into the exact same issue as you are (Heltec v4 not joining TTN’s LoRaWAN). But I can at least confirm that on my v3 board I was able to join using this channel mask, so it is correct.

1 Like

Small update / more detail from my side.

Hardware:

  • Board: Heltec WiFi LoRa 32 V4
  • MCU/radio: ESP32-S3 + SX1262
  • Region: US915
  • TTN frequency plan: United States 902-928 MHz, FSB 2 used by TTN
  • Antenna: 915 MHz antenna attached
  • COM port works, serial output works, flashing works
  • Chip ID: b8b45ba3bd10
  • I have a Heltec license generated, but I am not posting it publicly. I can provide it privately if Heltec support needs it.

TTN setup:

  • End device created manually
  • Frequency plan: US915 FSB2
  • Tried LoRaWAN 1.0.2 and 1.0.4 style settings
  • JoinEUI is non-secret and can be shared if useful
  • DevEUI is non-secret and can be shared if useful
  • AppKey is not posted publicly

What I tried:

  • Heltec LoRaWAN example / stock-ish example with my keys and license
  • US915 / FSB2 settings
  • Channel mask intended for TTN sub-band 2, e.g. 0xFF00 style mask
  • New TTN device profile instead of the old V2 profile
  • Reset DevNonces in TTN
  • Slower join attempts, not rapid retry
  • Local spectrum scanner firmware confirms the board can receive RF/noise and scan the US915 region

Problem:

  • TTN shows no uplinks and no join attempt for this V4 device.
  • I do not see “join request” in the TTN live data for the device.
  • So this looks like the packet is not reaching TTN at all, or the device is transmitting on the wrong channels / wrong radio config / wrong stack settings.
  • With some test firmware the board appears alive, but TTN remains silent.

Questions:

  1. Is there a known working WiFi LoRa 32 V4 + TTN + US915 FSB2 example?
  2. What exact channel mask should be used for TTN FSB2 on the V4/SX1262 board?
  3. What LoRaWAN version/profile should be selected in TTN for V4: 1.0.2, 1.0.3, 1.0.4, or 1.1?
  4. Does the V4 require different pin/radio/TCXO settings from the V3 examples?
  5. Is the TTN Device Repository V2 profile acceptable for V4, or should V4 always be registered manually?
  6. Is there a simple raw LoRa TX test sketch for V4/SX1262 that can confirm TX frequency/channel before debugging LoRaWAN?

If someone has a minimal working V4 US915 TTN sketch, even just sending one byte every few minutes, that would help a lot.

The primary people answering are volunteers who are unlikely to be inclined to do a diff on what is not a small update / more detail and just looks like a duplicate post. Heltec staff rarely visit here.

And my answers to the same questions stand. Forget the v4 for now, it will get looked at by the RadioLib LW senior developer who also owns a v4 but hates it, at some point soonish.