Both modules need the same frequency, spreading factor, bandwidth and sync word, and an antenna must be fitted before you transmit.
What the message means
LoRa receivers only hear packets that match their radio settings. Transmitting without an antenna can damage the module.
Fix it in this order
- Fit the antenna before you send anything.
- Use the frequency band allowed in your country and sold for your module.
- Set the same frequency, spreading factor, bandwidth and sync word on both sides.
- Check the SPI wires, NSS, RESET and DIO pins against your library.
- Power the module from 3.3 V with a clean supply.
- Test with the modules a few metres apart before you test range.
Why it happens
A LoRa receiver demodulates only signals that match its own settings. Frequency, spreading factor, bandwidth and sync word must agree between the two modules, and a mismatch in any one of them looks the same as no signal at all.
The antenna matters for two reasons. Without it little of the signal leaves or arrives, and a transmitter that sends into no load can be damaged, so fit it first. The permitted frequency band depends on your country, so check the rules that apply to you.
If you see this, do this
| You see | Do this |
|---|---|
| Chip not found | SPI wiring or power. |
| Chip found, no packets | Settings mismatch. |
Related
nRF24L01 radio, ESP32 strapping pins.
Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.
Why this happens
LoRa uses a spread-spectrum modulation. The receiver only decodes a signal that matches its own settings: frequency, spreading factor, bandwidth, coding rate, and the sync word that marks the network. A single difference gives silence, exactly as if the transmitter were off. On the SX127x chips the default private sync word is 0x12 and the LoRaWAN public one is 0x34.
Each increase of the spreading factor roughly doubles the time a packet spends on the air, and improves sensitivity. The antenna has to suit the frequency. A quarter-wave length at 433 MHz is about 299.8 / 433 / 4 = 0.173 m, or 17.3 cm. An SX1278 board is typically sold for the 433 MHz class, while 868 and 915 MHz boards use another chip variant.
How to confirm the cause
- Check that the chip answers. Reading its version register (0x42) should return 0x12. If the library’s begin() call fails, fix the wiring first.
- Print the radio settings on both sides and compare every one.
- Put the boards one metre apart, set the spreading factor to 7 and the bandwidth to 125 kHz, and send a packet each second.
- Check the antenna is connected, and the module is a version made for the frequency you set.
- Check that the receive side has its interrupt pin (DIO0) wired if the library uses a callback.
Worked example
Matching settings with the commonly used LoRa library for Arduino. Both sides must use the same lines, with your own pin numbers.
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
LoRa.setPins(10, 9, 2); // NSS, RESET, DIO0
if (!LoRa.begin(433E6)) { Serial.println("radio not found"); while (1); }
LoRa.setSpreadingFactor(7);
LoRa.setSignalBandwidth(125E3);
LoRa.setCodingRate4(5);
LoRa.setSyncWord(0x12);
}
void loop() {}Common mistakes
- Ignoring the result of begin().
- Using a 433 MHz setting with an 868 or 915 MHz module.
- Changing the sync word on one side only.
- Powering the module from 5 V or connecting 5 V logic directly.
- Testing range before testing at one metre.
If this did not fix it
- Supply dips while transmitting. Add a capacitor close to the module and check the regulator.
- CRC or header mode mismatch between the two ends.
- Interference from other equipment on a nearby frequency.