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:
-
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? -
For TTN US915 FSB2, is this channel mask correct for Heltec LoRaWan_APP?
{0xFF00, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000} -
Is HELTEC_BOARD=30 correct for WiFi LoRa 32 V4 in LoRaWan_APP / Mcu.begin?
-
Are DevEUI and JoinEUI expected in display/MSB byte order in the arrays for the current Heltec ESP32 library, or reversed/LSB order?
-
Does the V4 require any special RF switch setup for LoRaWAN TX/RX beyond the board macros?
-
Can someone share a minimal known-good Arduino or PlatformIO example for WiFi LoRa 32 V4 + TTN US915 FSB2 OTAA?
-
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.