Heltec Wifi Lora 32 V2: LoRa not working

Hi to all,
I have the upper mentioned board I try to make a direct connection between 2 LoRa boards work.
Second and third board are from other brand and their direct Lora communication is sucessful.
With the Heltec board neither sending or receiving with the example LoRa code is possible. Other boards will neither receive something nor message reaches Heltec board. I´m working with Arduino IDE, Heltec ESP32 Dev-Boards library by Heltec, choose Heltec Wifi Lora 32(V2).
Finally I also uploaded WiFi_LoRa_32FactoryTest, WiFi connection is possible, display works as intended, permanent message regarding LoRa status on display is:
Received Size - packages:
With RSSI --db
Packet 0 sent done.
What’s the problem?
Thanks in advance!
raltze

The short answer is that you probably just need to ensure that all relevant configuration parameters are compatible between the various devices. This is generally straightforward if all devices are the same, potentially a little more complicated if they are not, and potentially more complicated again if you’re not using the same LoRa software library.

There were issues in the early days with Heltec products that used different LoRa chips (SX1276 vs SX1262), and consequently different LoRa support libraries. Back then, the main problem was in specifying the same SyncWord, but the parameter list that I finally ended up with (for both Heltec boards and other processor configurations using HopeRF RFM9xW radios) is as follows:

#define Frequency 917E6
#define SignalBandwidth 125E3
#define SignalBandwidthIndex 0
#define SpreadingFactor 7
#define CodingRate 1
#define CodingRateDenominator 5
#define PreambleLength 8
#define SyncWord 0x12
#define OutputPower 14
#define SymbolTimeout 0
#define FixedLengthPayload false
#define IQInversion false

The values in the above are just the ones I use, although the only variable that will often be different will be the operating frequency. The SignalBandwidth and SignalBandwidthIndex parameters do the same thing, just expressed in a different way (depending on the library in use), as is the case for the CodingRate and CodingRateDenominator.

It may help to note that the following are the parameters, with comments, normally used for Heltec devices using the SX1262 (LoRaWAN_APP library). I realise that this is not directly applicable in your case, at least as far as the Heltec board is concerned, but the comments may help understand the different ways of expressing some parameters.

#define RF_FREQUENCY 917000000
// Hz
#define LORA_BANDWIDTH 0
// [0: 125 kHz,
// 1: 250 kHz,
// 2: 500 kHz,
// 3: Reserved]
#define LORA_SPREADING_FACTOR 7
// [SF7…SF12]
#define LORA_CODINGRATE 1
// [1: 4/5,
// 2: 4/6,
// 3: 4/7,
// 4: 4/8]
#define LORA_PREAMBLE_LENGTH 8
// Same for Tx and Rx
#define TX_OUTPUT_POWER 14
// dBm
#define LORA_SYMBOL_TIMEOUT 0
// Symbols
#define LORA_FIX_LENGTH_PAYLOAD_ON false
#define LORA_IQ_INVERSION_ON false

Hi Peter,
thanks for the impressing detailed answer - though is was not that short as you try to say in the beginning of your answer, wasn´t it :slight_smile: Now Iĺl dig into the libraries to find differences in parameters. Other Lora device using LoRa.h while heltec unfortunately uses their own library. Anyway, i’ll put another few hours into and see how far I’ll come.

Finally I successfully made it work, it was the SyncWord and the SignalBandwith not aligned.
Thanks a lot for your help!

Just FYI, I have never used the Heltec LoRa library. I have always used the Sandeep Mistry LoRa library for devices, Heltec or other, that use the SX1276 LoRa chip. The newer boards, the CubeCells and V3 boards, use the SX1262 LoRa chip and are not supported by the Sandeep Mistry library, so I have had to use the Heltec LoRaWAN_APP library for them.