questions re: LoRa receive sensitivity at 915 MHz - Page 1
Forum section: electronics / rf-microwave

author: JBeale
author_rank: Frequent Contributor
timestamp: September 07, 2021, 12:53:29 am
content: Can anyone recommend a user forum where I might be able to discuss some technical experiments with LoRa? I'm in the US, so I am working at 915 MHz.I am using boards from Adafruit and they do have some user forums, but they do not seem well populated with a technical crowd.The two boards I have both use a small shielded board marked HopeRF RFM95C to generate the LoRa signals. I have tried a small omni coil and a fairly large +6dBi antenna but independent of which antennas I use, what I see in my experiments is that the maximum possible working signal reported (RSSI) is -47 dB and the weakest I have ever received is -120 dB. The sender is using Arduino code on a Feather M0 board, that sends short packets like "Hello World #123"https://learn.adafruit.com/adafruit-fea... m-9x-radioand the receiver is a "bonnet" board stacked on a Raspberry Pi Zero W, operating with CircuitPython running on the Pi.My results show my receiver dynamic range appears to be (120 - 47) or 73 dB, with a -120 dB sensitivity limit. I believe other people have reported somewhat different and better results from their LoRa devices, and I am interested to compare and see what is typically possible. Elsewhere I have seen -130 dBm receiver sensitivity reported as possible. That would be 10 dB better than what I see now, which would be a huge improvement, assuming the RSSI reading is reliably accurate. One thing I wonder about is if being in the immediate proximity of the running Pi Zero W board is raising the receive noise floor on the Pi "bonnet" board, or if there is some other hardware issue. My tests had the transmitter fixed, while I carried the receiver mounted on a backpack along a long winding path, including some completely open fields so I don't think there was a high local RF noise floor in the 915 MHz band everywhere I walked.EDIT: from a LoRa discussion at the lowpowerlab.com forum, I see that the minimum sensitivity of the RFM95C is affected by the offset of the crystal, and if you aren't using a TCXO on your board you will probably not get the maximum possible value. It depends whether your Tx and Rx side are aligned closely enough in frequency, and remains there as the board temperatures change (and there will inevitably be some change in temperature on the Tx side just from heating due to the power dissipation when transmitting.)

author: georges80
author_rank: Frequent Contributor
timestamp: September 07, 2021, 02:54:52 am
content: Some pretty important LoRa parameters are the SF and BW settings. They will significantly alter the signal you'll be able to receive.What are your settings for those parameters?cheers,george.

author: JBeale
author_rank: Frequent Contributor
timestamp: September 07, 2021, 03:29:18 am
content: Thanks for the reply! Spreading Factor and Bandwidth, I assume. I'm just getting started with this, so I simply used the defaults on the Arduino library (Radiohead RH_RF95) that Adafruit used in the code on this page.https://learn.adafruit.com/adafruit-feather-m0-radio-with-lora-radio-module/using-the-rfm-9x-radio.The code on that page demonstrates selecting the frequency and power, but not the other library default parameters. Based on the code and the comments, I believe I am using:915 MHz, 23dBm, Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC onIt is interesting that their code includes the linerf95.setTxPower(23, false);given that everywhere I have read claims +20 dBm is the maximum LoRa power output.

author: georges80
author_rank: Frequent Contributor
timestamp: September 07, 2021, 04:24:03 am
content: The defaults you list are going to give relatively low radio sensitivity/performance. It's all a trade off, increase SF and lower BW and you get more sensitivity and error handling robustness with lower bit rate for your messages and thus longer transmit time.I'd suggest you read up on the semtech chip that is being used. Semtech has some downloadable programs that allow you to play with various parameters and see what the tradeoffs are in terms of sensitivity versus bit rate.https://www.semtech.com/products/wireless-rf/lora-core/sx1276and the tool should be one of the links.I think the rf95 stuff is using the older (sx1276) semtech chip, it had a 20dBm max transmit. Their newer chip, sx1262, (not register compatible) takes that up a notch to 22dBm. It also has some nicer features to do with CAD. The hoperf modules that use the sx1262 (at least the ones I purchased) also have a txco that allows for lower BW -> higher sensitivity.There's a limit to what you can lower the BW to, that is based on the stability of the oscillator on the module - and whether it is temperature stable between the transmitter end and receiver end.A good antenna and decent cables (not too long) will help at both ends. Also height, since you're basically line of sight. Going through urban buildings etc will hurt range, as will foliage etc.Google for lora calculator toolcheers,george.

author: I wanted a rude username
author_rank: Frequent Contributor
timestamp: September 07, 2021, 04:28:52 am
content: Quote from: JBeale on September 07, 2021, 12:53:29 amThat's far weaker than expected, if your transmitter is right next to the receiver. Either one or both antennae are detuned (or not connected), or the device is not transmitting at the requested power (try changing it to 20). With the two antennae next to each other, you can expect an RSSI in the range of -20 to -10 dBm.Quote from: JBeale on September 07, 2021, 03:29:18 amAs George said, it's 20 dBm for the SX1276 and 22 dBm for the SX1262. The SX1262 is substantially more efficient for transmission due to using a DC-DC converter to power its power amplifier, and has a few dB better reception as well. It is also less buggy.

author: JBeale
author_rank: Frequent Contributor
timestamp: September 07, 2021, 11:17:22 pm
content: Thanks for those useful comments, I am reading through the Semtech documents now; all very interesting.Without changing my software or settings at all, I tried a few hardware changes. In further testing, I found that I could make the minimum working RSSI value worse, and eventually better, by changing the antenna and surrounding wiring. I presume that this RSSI value is a combined noise + signal reading, and the no-doubt mismatched small coil I had been using before (soldered directly to the board; no cable) was picking up quite a bit of noise from the R-Pi Zero board right next to it and plugged into its header. Originally my limit was -120 but when I tried to improve grounding with some extra copper foil around the boards, it actually made things worse; the minimum working signal got as bad as -110 dB.Then I switched to using a cable on the board's u.FL connector, going into a separate 1/4 wave vertical with sloping radials located about 15 cm away from the board. Then I managed to receive signals with RSSI values of -126 and even once -127. My initial mistake was assuming my too-compact antenna was simply limiting my total received signal strength, without considering that it was also too close to the noisy CPU board.

author: JBeale
author_rank: Frequent Contributor
timestamp: September 09, 2021, 06:01:55 pm
content: In case of interest, it appears that my particular Adafruit Feather M0 + RFM95C does not actually increase its effective output power beyond the "18" setting, so that's what I selected for now. Using 915 MHz, CR=4/5, SF=10, BW=125kHz, 10-byte payload, and a 1/4-wave groundplane antenna I got a reasonable amount of range.I did not at first realize that the chip registers provide a measured packet SNR value as well as raw RSSI. Plotting SNR against RSSI I can see more of what is happening. With the above settings, I gathered some data while taking a walk around the neighborhood and the minimum successfully received packet was at -128 dB RSSI and -15 dB SNR, which seems pretty good to me. If I'm reading it right, the instantaneous RSSI (register 0x1B) with no packet, just background noise is typically around -125 dB but varies from -122 to -127. The Semtech "LoRa Modem Calculator Tool" estimates -132 dBm receiver sensitivity for these modem setup parameters.

author: georges80
author_rank: Frequent Contributor
timestamp: September 10, 2021, 03:56:30 am
content: Looks like you are making good progress. There's quite a bit of stuff in LoRa that takes some time to appreciate. For the cost of the modules, it is very impressive how far they can communicate with so little power. Perfect for low bandwidth radio links for 'gadgets' that need to talk to each other.With the sx1276 there's also some 'stuff' to understand about how to get to 20dBm since it requires turning on the PA section. There's an interaction between the normal power settings and how the PA works. The rf95.setTxPower(23, false) you mentioned earlier is a software sillyness that is used to determine how to get the PA running etc. I think the code started off without folk understanding how to set the registers correctly and so the code 'grew' with some history/baggage. You need to look at the source code, scratch head a bunch, read the semtech datasheet for the registers involved, scratch head some more and then you'll get enlightment on why '23' and how it is NOT 23dBmThe sx1262 gets rid of all that 'rubbish'cheers,george.

author: JoeyG
author_rank: Regular Contributor
timestamp: October 14, 2021, 11:33:47 am
content: what wrong with the sx1262 ?