ESP32 Bit Pirate home
  • LoRa
  • Intermediate
  • 12 min
  • RSSI scan

Recipe · Intermediate · LoRa

How to scan LoRa frequency activity with SX1262

Sweep a narrow range for RSSI peaks, preserve the original profile and use a display waterfall to compare activity over time.

SX1262 LoRa module and chirp waveform.
An RSSI peak is a clue about channel energy, not proof of a decodable LoRa packet.

Choose a narrow, valid range

The firmware accepts 150–960 MHz because it supports SX1262 generally. Stay inside the physical module matching and the frequencies you are allowed to observe. Core1262-HF remains an 850–930 MHz module.

  • Note the current frequency with status.
  • Start around one known authorized test channel.
  • Use your controlled transmitter to learn what a real hit looks like.
Step 1

Record the starting profile

The scan temporarily retunes the radio. Keeping the original value in view makes the final restore check unambiguous.

Understand the scan prompts

PromptDefaultImplementation limit
Start / endCurrent frequency ±1 MHz150–960 MHz in software; use the valid physical band.
Step0.2 MHz0.01–20 MHz; automatically widened when more than 200 points would be needed.
Dwell40 ms10–2000 ms per frequency.
Threshold-85 dBm-170–0 dBm; a hit is peak RSSI at or above this value.
Step 2

Run the RSSI scan

Answer the prompts with a small range around the controlled source. Press Enter after enough passes to compare transmitter-off and transmitter-on behavior.

What the counters mean

A hit event is emitted when one frequency crosses the threshold. A 2 dB hysteresis lets a later burst create a new event without printing the same noisy edge on every pass.

Step 3

Decide whether to save the strongest frequency

If one or more points reached the threshold, the command lists up to five best hits and asks Save best frequency?. Choose No for observation-only work. Choose Yes only when the strongest point is your known test transmitter and you intend to continue there.

Step 4

View the on-device waterfall

waterfall prompts for start/end, step, hold time and threshold, then draws one RSSI level per frequency through the board display interface. Press Enter to stop.

A display is required for the graph

The serial terminal reports setup and stop status, but the waterfall pixels appear only on a supported display-equipped board. The no-screen device view intentionally draws nothing.

Choose the right detector

  • Scan compares peak and average RSSI across frequencies and can save the strongest point.
  • Waterfall shows repeated RSSI levels across the range on the device display.
  • CAD checks for a LoRa preamble compatible with the active bandwidth and spreading factor.
  • Receive is the only one of these commands that attempts to decode a complete payload.

Troubleshooting

  • No peak reaches the threshold: lower it carefully, increase dwell time or move the controlled source closer.
  • Every point is active: raise the threshold, narrow the range and check for a strong nearby interferer or overload.
  • Step was adjusted: the requested range required more than the 200-point cap.
  • Saved the wrong frequency: use setfreq with the noted original value or restore the intended profile.
  • No waterfall image: use a supported board display; a serial-only DevKit has no graph surface.

Next steps

  • Run CAD at a candidate frequency to test for a compatible LoRa preamble.
  • Use receive mode with the known peer to prove that the full profile decodes.
  • Keep frequency scans as observations and document range, step, dwell and threshold with every result.

LoRa scan FAQ

Does a scan hit prove that LoRa is present?

No. It is peak RSSI above a threshold. Use CAD and receive to test a compatible LoRa signal and payload.

Does scan change the current frequency?

The original is restored unless valid hits exist and you explicitly choose to save the strongest one.

Where is the waterfall displayed?

On a supported ESP32 Bit Pirate board display. A no-screen board runs the command but has no graph output.

Go deeper