Hello everyone.
I need your help to guide me through a communication problem between Heltec LoRa V3 devices. I am using 8 devices that send packets every 30 minutes to a receiver, also a Heltec LoRa V3. Most of the devices send the data without any issue, but 1 or 2 occasionally fail to report, or sometimes do not report for a long time.
I am receiving the data directly on my MQTT broker, which is connected to my Home Assistant where I analyze the data. The only thing I have done is to check in the field whether the device was powered by the battery and if it had a charge, and everything was fine. If I reboot the board at that moment, the packet is sent.
I am not sure if I need to be careful with the LoRa frequency configuration on each device because I left everything the same on all devices, only the packet sends a different value to define which device the packet belongs to. I don’t know if the overlap of signal transmission from two or more devices simultaneously is causing this problem.
CODE OF MASTER
// ----------------------------------------------------------------------------
// LoRa Configs ---------------------------------------------------------------
// ----------------------------------------------------------------------------
#define RF_FREQUENCY 433000000 // Hz
#define TX_OUTPUT_POWER 10 // dBm
#define LORA_BANDWIDTH 0 // [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved]
#define LORA_SPREADING_FACTOR 12 // [SF7..SF12]
#define LORA_CODINGRATE 4 // [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
#define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx
#define LORA_SYMBOL_TIMEOUT 0 // Symbols
#define LORA_FIX_LENGTH_PAYLOAD_ON false
#define LORA_IQ_INVERSION_ON false
#define RX_TIMEOUT_VALUE 1000
#define BUFFER_SIZE 30 // Define the payload size here
char txpacket[BUFFER_SIZE];
char rxpacket[BUFFER_SIZE];
static RadioEvents_t RadioEvents;
int16_t rssi,rxSize;
bool lora_idle = true;
// ----------------------------------------------------------------------------
CODE OF SLAVES
// ----------------------------------------------------------------------------
// LoRa configs ---------------------------------------------------------------
// ----------------------------------------------------------------------------
#define RF_FREQUENCY 433000000 // Hz
#define TX_OUTPUT_POWER -2 // dBm
#define LORA_BANDWIDTH 0 // [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved]
#define LORA_SPREADING_FACTOR 12 // [SF7..SF12]
#define LORA_CODINGRATE 4 // [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
#define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx
#define LORA_SYMBOL_TIMEOUT 0 // Symbols
#define LORA_FIX_LENGTH_PAYLOAD_ON false
#define LORA_IQ_INVERSION_ON false
#define RX_TIMEOUT_VALUE 1000
#define BUFFER_SIZE 30 // Define the payload size here
char txpacket[BUFFER_SIZE];
char rxpacket[BUFFER_SIZE];
static RadioEvents_t RadioEvents;
bool lora_idle=true;
void OnTxDone( void );
void OnTxTimeout( void );
int batteryValue = 0;
// ----------------------------------------------------------------------------