Well, that part is easy. Follow this link for the theory. Note that under ‘normal’ circumstances, the transmission speed v is ‘the speed of light’, c. Also note, that this is NOT 300.000.000 m/s, as most calculators use, but rather 299.792.458 m/s. The difference for our calculations is substantial. For instance, its the difference between an antenna of 7.8cm and one of 8.2cm.
Hi. Sorry if I see this post late. But you may kindly help me.
The calculations look correct according to my basic knowledge about communications. However, I am in doubt about the usage of the antennas that are offered by the Semtech together with SX1276MB1MAS pack. The shorter antenna is assigned for 433 MHz and the longer for 833 MHz. Even if we consider the antenna according to (1/2 * wavelength) for 833, how about the 433 MHz considering your calculations? You said 17,31 cm for 433 MHz. However, it is about 8.8 cm. Please see these two links:
https://www.digikey.com/product-detail/en/linx-technologies-inc/ANT-433-CW-HD/ANT-433-CW-HD-ND/340132
https://www.digikey.com/product-detail/en/linx-technologies-inc/ANT-868-CW-HWR-SMA/ANT-868-CW-HWR-SMA-ND/1139579
A practical problem that I have here is: With SX1276MB1MAS I can reach up to 500 m with 868 MHz with the long antenna. However, for 433 MHz with the small antenna, I just reach up to 20 m which is so short range.
In the past, for a particular project, I spent a lot of time checking and tuning antennas on a typical ISM device, the RFM22. My conclusion after around a year of testing is that the theoretical calculated length, whilst a good starting point, is very rarely the optimum length for maximum radiated signal.
There is often an assumption that the output impedance on typical ISM modules is always exactly 50ohm. Whilst this is a reasonable assumption for a high end communications device, typical ISM modules use low cost components, and probably not high tolerance ones. It would seem likley therefore that the output impedance of an ISM device will vary from 50ohm.
Typical improvements in radiated power I was seeing by tuning the antennas for each individual ISM module were 3dB and in some cases as much as 6dB.
By all means calculate the antenna length exactly, but I would be surprised if that is always going to be the ‘best’ length.
We have the same observation. If you hook up a quarter wavelength ‘simple wire’ antenna to an analyser to optimise it for VSWR you usually see that the actual length for optimal VSWR is significantly shorter than the theoretical quarter wavelength.
That’s because a simple quarter wave should work as a dipole and needs a quarter wave counter pole.
Normal the counter pole will be the GND plane of the PCB. Or when you hook up a quarter wave to a analyzer (most of the time you do that with a piece of coax between it). You trim the quarter wave to the that.
@lex_ph2lb nope it’s not the ground plane. We measure and trim our antenna’s always with a ground plane. The reason that a quarter wavelength antenna is shorter than the theoretical wavelength is the velocity factor, or antenna shortening factor.
The theoretical wavelength is calculated in free space, with the electromagnetic waves travelling at the speed of light. In any other medium, like copper wire, they move slower, hence the quarter wavelength in the wire is shorter than in free space, requiring a somewhat shorter antenna.
The order of magnitude of the delta in antenna length is around 5% so indeed noticeable!
That is correct.
Is there a simple formula for calculating the exact antenna length taking into account the velocity factor, or will the 5% rule of thumb be sufficiently reliable in practice?
To be more exact:
868 MHz band LoRaWAN frequencies range from 867.1 MHz to 868.5 MHz (FSK not included) or 867.1 MHz to 868.8 MHz (FSK included) with corresponding middle frequencies 867.8 Mhz and 867.95 MHz respectively.
The optimal LoRaWAN antenna length for 868 MHz band should thus be calculated with (velocity factor not included):
299,792,458 / 867,800,000 = 0.345462 m (FSK channel not included), or
299,792,458 / 867,950,000 = 0.345402 m (FSK channel included)
In practice this will make too little difference (with using 868.0 MHz for the calculation) to be significant.
You will probably come very close if you just take the theoretical length minus 5%
lex_ph2lb of TTN Almelo actuelly wrote two instructions for building antenna’s…
For LoRa modules, then I would suggest the answer is no.
There will be too much variation in the components that match the actual output of the SX127x (LoRa device) to the physical antenna to make an exact calculation possible, unless you know exactly what the matching is.
I am not sure that this should be a surprise, even with top end radio gear antennas should be ‘tuned’ using SWR meters to ensure a good match. If it was possible to calculate the exact length of an antenna then there ought to be no need for antenna tuning at all.
And even if you make the perfect match and squeeze the last few tenths of a dB out of the performance, you will see that in practical use of the device, the proximity of other materials to the device makes such a noticeable effect on your antenna characteristics that all your perfectionist efforts were pretty much useless
I’m sorry my response took this long. Must have overlooked your question. Antenna lengths give better reception the closer to the wavelength the antennalength is. 1/2, 1/4, 1/8 and 1/16th lengths do work. 17.31 cm divided by half is 8.66 cm. 8.8 seems a bit long, about 1.6% too long. That might answer the shorter range. Could also be this is just a flunk antenna: it happens that antenna’s are just defective.
I would experiment with two pieces of 8.66 and 8.8 cm wires, see how the reception turns out. That rules out any defect in the stock 8.8 cm antenna.
Thaks a lot for all your useful and informative comments. I have tested different antennas provided with my other shields, SX1276MB1MAS. However, I get the same results which are a too short range (500 m for 868 MHz)!
There is a point about the output power that I see from two LoRa modules (SX1276MB1MAS and SX1276MB1LAS) according to the following links:
https://www.digikey.com/products/en?keywords=sx1276MB1LAS
https://www.digikey.com/products/en?keywords=sx1276MB1MAS
I understand that LAS type is equipped with a power amplifier providing a 20 dBm output power where MAS type (with just 14 dBm output power) is not.
Do you think this might be a reason to not achieve a longer range than 500 m for MAS type LoRa shield?
Thanks again,
Mehrdad
Depends if 500M is about right for the environement and antennas , but you would expect more even in an urban environment.
The power increase between 14dBm and 20dBm is 6dBm and this represents a doubling of range\distance.
Yes. Actually, it was 500 m TX/RX line of sight and this is something that you can simply achieve with other wireless modules like Zigbee. I am now stopped at this point and cannot continue to develop the projects with this unbelievable short range from LoRa (Low Powe, Long Range …).
I know that LoRaWan can help to cover the longer areas. However, I need to make sure if I have received to the maximum possible with this SX1276MB1MAS first.
I wonder if anybody has achieved to the longer node-to-node ranges and how?
Its not LoRa that is the issue, something with your setup, code or devices.
Significantly reduced range is a symptom of damaged LoRa modules and\or in the case of the SX1276MB1MAS a problem with the antenna switch itself or not driving the switch correctly in software, as mentioned elsewhere.
I have done 40km LOS on simple 1/4 wave wire antennas for RX and TX, 434Mhz, BW62500, SF8, 3mW. standard hardware, basic software. Expect half that range at 868Mhz.
Wow. This is really perfect!!!
I have tested several devices and all are the same in my case. Then, as you mentioned, it might be ‘not driving the switch correctly in software’. In a very simple case, I use two simple TX/RX examples (SX_01a_TX_LoRa and SX_01a_RX_LoRa) and SX1272 library. I have tested several alternatives. My pure setting for 868 MHz is here:
sx1272.ON();
e = sx1272.setMode(4);
e = sx1272.setHeaderON();
e = sx1272.setChannel(CH_10_868);
e = sx1272.setCRC_ON();
e = sx1272.setPower(‘M’);
e = sx1272.setNodeAddress(3);
I use the following command to transmit a packet (message) to the node no. 8:
e = sx1272.sendPacketTimeout(8,message,50);
and this for receiving the packet in a for loop:
for (unsigned int i = 0; i < sx1272.packet_received.length; i++)
{
my_packet[i] = sx1272.packet_received.data[i];
Serial.println( my_packet[i]);
}
I wonder if it would be possible for you to kindly provide me a link to the library (.h and .cpp file) you have used and the setting for the SX1276 that you have successfully used?
If it is hard to write it here, my email is mehrdad_babazadeh@yahoo.com
Thanks a lot again,