-
Hello everyone, I am currently working in a project where sensores and motors were connected trough a RS485 communication. The slaves were far from the Master, and the aplicattion were agriculture related, so , LoRa tecnology was a card on the table. The module used is the RFM995 with a ESP32. The first step was to check the maximum range of the tecnlogy. So, once the connection was set, a distance of 300m with the default settings wich is good good but nothing comperate with some other test were people could achieve 5km. In my situation it was a non obstacle scenario, what makes me think that I should achieve more distance. Trying with the following settings 450m were achieve but with a poor RSSI indicator. //-----MODULATION PARAMETERS-----> Does anyone know what i could do to reach at least 1 km with an RSSI of -70? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
It depends on so many variables. But here are a few indications:
I wrote an app that writes setup code for this library. Here's the end product, after some tweaking: // BW = 6: 62.5 kHz, CR = 1: 4/5, HM = 0 uint8_t reg1 = 0x62; // SF = 12: 12, CRC = 0 uint8_t reg2 = 0xC0; // LDRO = 1, AGCAutoOn = 1 uint8_t reg3 = 0x0C; // PaSelect = 1, MaxPower = 7: 15 dBm, OutputPower = 15: 17 dBm uint8_t regpaconfig = 0xFF; #define REG_OCP 0x0B #define REG_PA_CONFIG 0x09 #define REG_LNA 0x0c #define REG_OP_MODE 0x01 #define REG_MODEM_CONFIG_1 0x1d #define REG_MODEM_CONFIG_2 0x1e #define REG_MODEM_CONFIG_3 0x26 #define REG_PA_DAC 0x4D #define PA_DAC_HIGH 0x87 #define MODE_LONG_RANGE_MODE 0x80 #define MODE_SLEEP 0x00 #define MODE_STDBY 0x01 #define MODE_TX 0x03 #define MODE_RX_CONTINUOUS 0x05 #define MODE_RX_SINGLE 0x06 LoRa.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP); delay(10); LoRa.writeRegister(REG_PA_CONFIG, regpaconfig); LoRa.writeRegister(REG_MODEM_CONFIG_1, reg1); LoRa.writeRegister(REG_MODEM_CONFIG_2, reg2); LoRa.writeRegister(REG_MODEM_CONFIG_3, reg3); delay(10); LoRa.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STDBY); However it requires a small modification of the library. The two lines there should be moved out of uint8_t readRegister(uint8_t address); void writeRegister(uint8_t address, uint8_t value); Move them to line94 or so, and this will work.
|
Beta Was this translation helpful? Give feedback.
It depends on so many variables. But here are a few indications:
I wrote an app that writes setup code for this library. Here's the end product, after some tweaking: