After reading about LoRa spread spectrum technology and getting my own general vision on how it works ( LoRa and others ) I’ve purchased couple of HopeRF RFM98W modules to check their performance. I’ve expected double range for ~5 kbps and up to 8 times for the rates of ~100 bps.
I’ve realized that performance is well below that was declared in HopeRf specs and manual and checked it with several tests.
Most of the data I was able to find are related to the communication range. This is good to know, but far away from real numbers. We all know that range of RF communication may change within few orders of magnitude even at fixed power of the transmitter. The only true tests are when 2 devices are tested side by side at exactly same conditions.
The goal was to compare side-by-side performance of conventional FSK transceivers (RFM22B (SiLabs 443x IC)) and LoRa (RFM98W (Semtech SX127x IC)).
See the following video for tests arrangement.
Both RFM22B and RFM98W based beacons/receivers were built about the same way: RFM modules were glued to the back side of Arduino Pro Mini. RFM22B beacon and handheld finder are described in more details on RC Finder Beacon: Digital vs Analog page. Both antennas were checked with handheld receiver (beacon finder) and show about the same sensitivity.
Goal: find out the range and the threshold of both FSK and LoRa modules
RFM22B beacon is built-in in the Mavic Pro (see previous post). RFM98W beacon is inserted into the box attached to the Mavic’s legs. From previous testing I’ve realized that both methods of the beacon’s placement have about the same sensitivity. Both RFM modules are set to about the same frequency and about the same transmission speed. They transmit 9 byte signal (CRC check is ON) every 1 sec and both have the same preamble length.
I was able to get 4100 m range and turned back home because Mavic’s video link was about to its limit. All the time both modules show about the same dBm numbers and none of them had distinguished range limit (except of few packets drops of the RFM22B module at the end of the range). RFM98W had no packet lost.
The minimal value of RSSI before packet lost was -96 dBm. In case of RFM22B RSSI in dBm can be calculated from number shown on LCD as 1.1*NUM-112.5 (this includes both my own scaling at the receiver and RSSI to dBm conversion from RFM22 manual). In case of RFM98W RSSI (dBm) shown on LCD is given as (137-register(0x1A)) (top value); (137-register(0x1B)) (middle) and register(0x19) (bottom). As per manual 0x1A contains RSSI of the received packet; 0x1B is a noise and SNR is a difference between them. (SNR can show high values, this is nothing but wrongly defined uint in my code. If someone wants to know real number, do 255 – thatvalue to get negative SNR)
Important: we calculate RFM98W RSSI as it described in HopeRF manual, there are other versions of Semtech SX127x manuals with different definitions of these values (see discussion below).
We did not achieve our goal, because 4200 m was not enough to determine the range and the threshold in both cases. But we learned the following:
a) RSSI reading is about the same for both modules. So both rfm22 and rfm98 beacons/receiver pairs are properly done, there are no mistakes in electronics, antenna, or code.
b) RFM22B sensitivity limit is ~ -96 dBm, this value coincides with the value obtained in my previous tests.
Goal: find out the threshold of RFM98 LoRa modules
Since we know already threshold of RFM22, I did the test to have the same number for RFM98.
I’ve inserted a screen made of carton wrapped with Aluminum foil to reduce RSSI in about 20 dBm. All other settings were the same to Test 1.
At about 1300 m signal from RFM98 was lost. It happened when signal was at about -97 dBm.
a) RFM98 (LoRa) sensitivity limit is -97 dBm and close to the sensitivity limit of RFM22B (FSK). This is a surprise, because we expected ~6 dBm enhancement.
Goal: confirm sensitivity limit of RFM98 (LoRa) and RFM22B (FSK) modules in noiseless environment
The above test were performed at the conditions of powerful EM noise (from Mavic’s transmitters and electronics). Without that noise, rural surrounding practically does not have EM noises at all. All WiFi sources were off.
To reduce signal from the beacon (and have test range within hundred of meters), the beacon was placed into 2 metal cans, and those cans were then put into microwave oven. Can’s double walls reduce signal from -25 dBm to -64 dBm and total signal at the closed door of microwave oven was -80 dBm. Walking from- and to- the house the sensitivity limit was determined as -98 dBm — -100 dBm. From my previous experiments with RFM22B at about same conditions the limit of RFM22B was determined as – 96 dBm.
a) In a noiseless environment both RFM98 (LoRa) and RFM22B (FSK) sensitivity limits are about the same and are around -95 – -100 dBm. These values are closed to the values obtained in Test 1 and Test 2.
Goal: check sensitivity limit of RFM98 (LoRa) at different spread factors (therefore at different transmission speeds)
According to LoRa manual, limit of sensitivity gets significantly better with SF (spread factor) increase. Here is what LoRa calculator shows:
a) Default (used in our previous tests):
Expected receiver sensitivity is -124 dB and Time on Air is 35 ms, 5500 bps.
b) Slow (4096 chirps per bit):
Expected receiver sensitivity is -138 dBm and Time on Air is 760 ms, 250 bps.
First, fast settings a) were programed to both the beacon and receiver.
Second, slow settings b) were programed to both the beacon and receiver
For both settings, the beacon was inserted in a doubled can and in the microwave oven similar to test 3 and I walked to- and from- the house trying to detect range of sensitivity and RSSI values. I did not find any significant difference at all. Signal disappears at about the same distance and at about the same RSSI of -96 – -100 dBm
- Chipset origin. I could not find any info on HopeRF’s silicone origin. HopeRF RFM98W page says “Hope RF’s patented LoRaTM modulation technique” this is not true, I’ve checked, the patent belongs to Semtech. Chip labeled RF98, but not SX127x and even chip packaging is slightly different. On the other hand, HopeRF manual is exact copy of Semtech’s SX127x manual. It is hard to say about relationship between HopeRf and Semtech. Here is similar discussion on HopeRF ICs origin.
- RSSI numbers. When I was searching the net to compare my numbers with numbers of others I was surprised. About half of the reports discuss numbers in the -90 – -100 dBm range (including authors of RadioHead Library), while others discuss significantly lower numbers in the range of -120 – 130 dBm. Finlay I found the answer : different versions of SemTech’s manuals provide with different way of RSSI calculations: some of them (including HopeRF) say: (register(0x1A) – 137), while others say (register(0x1A) – 164) (for band 2). 27 dBm difference just because of different versions of the manual! So people report significantly different numbers because they use different libraries (or manuals)! I do believe my range of -90 – -100 is correct, because it corresponds to the range obtained from very different module and chipset (RFM22B, SiLabs SiLabs 443x )
- Logically: I have functional beacon/receiver which shows RSSI and range in full agreement with data obtained by side-by-side comparison with another module (FSK). Test specific to LoRa technology does not show any S/N improvement (though I see that packet transmission gets significantly longer with bigger SF, I must modify timeouts in my code to have 1 second packet transmitted). My numbers and range are close to the most of the reported values (including RadioHead library and Adafruit), but there are several exceptions where people report significantly longer ranges:
FSK vs LoRa give x6 range improvement in Wellington NZ (Dorji, Semtech LoRa SX1278xx chipset)
UK LoRa Versus FSK – 40km LoS (40 km range at 1000 bps with 20 dBm power RFM22B (FSK) and the same range with only 3 dBm at 1000 bps LoRa (Dorji, Semtech LoRa SX1278xx chipset), with 17 dBm improvement.
High Altitude Ballooning communication range of 240 km with the extension of up to 600 km!
The reason can be: a) HopeRF use some fake chips; b) Semtech use some fake chips and provide them to HopeRF. c) I dont see some other reasons, while they do exist.
The best idea would be purchase modules from different company and compare.