Prerequisites: SETUP.md smoke test complete; RTL-SDR driver installed and verified with rtl_test -t
Duration: ~90 min
Points: 100
Authorization
- Lab Authorization Form signed
- Lab environment: authorized lab machines only
- No transmissions in this lab (receive only)
- Survey only the frequency ranges listed below; do not attempt to decode or capture communications protocols
Objective
Operate the RTL-SDR as a passive spectrum sensor. Observe and document signal activity across three frequency ranges. Build a baseline understanding of what "the spectrum looks like" before the attack-focused labs begin.
Part A — FM Broadcast Band Survey (20 min)
Setup
Open GQRX. In the configuration dialog:
- I/O Device: your RTL-SDR device
- Input rate: 250000 (250 kSps)
- Center frequency: 100.0 MHz
Steps
- Open GQRX and configure as above. Click the power button to start the SDR.
- In the "Receiver Options" panel, set Mode to WFM (stereo) or NFM.
- Observe the FFT spectrum. You should see peaks corresponding to FM broadcast stations.
- Tune across 88-108 MHz and identify at least three distinct station peaks.
- For each station: record the center frequency, estimated signal strength (dBm from the GQRX readout), and whether audio is audible.
- Take a screenshot of the GQRX waterfall showing all three stations visible simultaneously.
Deliverable A
Table with three FM stations (frequency, approximate dBm, audio quality good/fair/poor) + 1 screenshot of the spectrum.
Part B — 2.4 GHz ISM Band Survey (20 min)
The RTL-SDR can tune to 2.4 GHz. It cannot capture a full 802.11 channel (would need 20+ MHz sample rate), but it can observe spectral occupancy across the band.
Steps
- In GQRX, switch to:
- I/O Device: RTL-SDR
- Input rate: 2400000 (2.4 Msps -- maximum reliable RTL-SDR rate)
- Center frequency: 2437 MHz (802.11 channel 6 center)
- Observe spectral activity. Busy office/home environments will show dense occupancy from nearby APs.
- Retune to 2412, 2437, and 2462 MHz (channels 1, 6, 11) in sequence. Observe any differences in occupancy density.
- Take a screenshot at each center frequency (3 screenshots total).
- Write a 2-3 sentence observation: does the band look congested? Do you see any recognizable patterns?
Note: you are observing spectral occupancy only. At 2.4 Msps the RTL-SDR cannot capture a complete 802.11 frame. That comes in Week 2 with the Alfa NIC.
Deliverable B
3 screenshots (channels 1, 6, 11) + 2-3 sentence observation log.
Part C — Sub-GHz Survey with rtl_power (30 min)
rtl_power sweeps a wide frequency range by hopping the center frequency and recording power at each step. We will survey the 300-450 MHz sub-GHz ISM range.
Steps
- Run a power sweep:
rtl_power -f 300000000:450000000:50000 -g 40 -1 sub_ghz_survey.csv
This sweeps 300-450 MHz in 50 kHz steps, collects one sweep, saves to CSV. Runtime: ~30 seconds.
- Visualize the results:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv('sub_ghz_survey.csv', header=None)
# rtl_power CSV format: date, time, start_hz, stop_hz, step_hz, samples, power...
freqs = []
powers = []
for _, row in df.iterrows():
start = float(row[2])
step = float(row[4])
vals = [float(x) for x in row[6:] if x.strip()]
n = len(vals)
freqs.extend([start + i*step for i in range(n)])
powers.extend(vals)
plt.figure(figsize=(14,5))
plt.plot([f/1e6 for f in freqs], powers, linewidth=0.5)
plt.xlabel('Frequency (MHz)')
plt.ylabel('Power (dB)')
plt.title('Sub-GHz Survey 300-450 MHz')
plt.grid(True)
plt.savefig('sub_ghz_survey.png', dpi=150)
- Examine the output plot. Mark any peaks that stand out above the noise floor.
- Common signals in this range: 315 MHz (US garage/key fobs), 433.92 MHz (EU sensors/remotes). Your environment will vary.
- Screenshot the plot and annotate any peaks with a label (even if you don't know the source yet).
Virtual Path
The virtual path for Part C provides a pre-recorded sub_ghz_survey.csv file from a suburban environment. Use it in place of the live rtl_power run.
Deliverable C
The annotated frequency plot (sub_ghz_survey_annotated.png) + a 3-5 sentence description of at least two peaks you observed.
Write-up Questions (20 min)
Answer in 2-4 sentences each:
- At 2.4 Msps, what is the maximum signal bandwidth the RTL-SDR can capture without aliasing?
- Why does the FM broadcast survey at 250 kSps show stations clearly, while the 2.4 GHz survey at the same rate would miss most Wi-Fi traffic?
- You observed a peak at 433.92 MHz in your sub-GHz survey. What type of device is most likely transmitting at that frequency? What is the legal transmit power limit for a device operating there under FCC Part 15?
- Describe one security implication of the fact that sub-GHz ISM transmissions are unencrypted and unauthenticated by default.
Submission
Zip the following into lab1_YOURNAME.zip:
deliverable_A.md(table + screenshot path reference)- Screenshots: fm_station_1.png, fm_station_2.png, fm_station_3.png (or a single composite), gqrx_ch1.png, gqrx_ch6.png, gqrx_ch11.png
sub_ghz_survey_annotated.pngwriteup.md(answers to the 4 write-up questions)