rtl_power:(1)

πŸ’– rtl_power:(1) πŸ’–

okay bestie, welcome to the User Commands corner of your terminal, because today we're talking about rtl_power: β€” the wideband spectrum monitor utility β€” from the osmocom rtl-sdr project. grab a snack, this one's a whole vibe. πŸ¦‹


✨ NAME ✨

rtl_power: β€” wideband spectrum monitor utility. that's it, that's the name, she's simple and she's iconic. πŸ’…


🌈 DESCRIPTION 🌈

so basically: you take a re-purposed DVB-T receiver, you treat it like a software defined radio, and it receives signals in I/Q data form. it was written for, and is incorporated in, the osmocom rtl-sdr project. no cap. 🫢


πŸŽ€ USAGE πŸŽ€

rtl_power, a simple FFT logger for RTL2832 based DVB-T receivers. periodt.

this tool gathers signal data over a very wide area of the frequency spectrum, and then that data can be used to find active areas of the spectrum. it's giving spectrum detective. πŸ”βœ¨

Use:

rtl_power -f freq_range [-options] [filename]
  • -f lower:upper:bin_size [Hz] β€” the main character option, literally required.
    • bin size is a maximum β€” smaller, more convenient bins will be used.
    • valid range is 1Hz - 2.8MHz.
  • [-i integration_interval] β€” default: 10 seconds.
⚠️ buggy if a full sweep takes longer than the interval. bestie I'm just the messenger. 😭
  • [-1] β€” enables single-shot mode (default: off).
  • [-e exit_timer] β€” default: off/0.
  • [-d device_index] β€” default: 0.
  • [-g tuner_gain] β€” default: automatic.
  • [-p ppm_error] β€” default: 0.
  • filename β€” a '-' dumps samples to stdout.
    • omitting the filename also uses stdout. so you literally cannot lose. πŸ’–

🧚 Experimental options: 🧚

these are the "we're doing science" options, iykyk:

  • [-w window] β€” default: rectangle. options are: hamming, blackman, blackman-harris, hann-poisson, bartlett, youssef.
  • [-c crop_percent] β€” default: 0%, recommended: 20%-50%.
    • discards data at the edges, 100% discards everything.
    • has no effect for bins larger than 1MHz.
  • [-F fir_size] β€” default: disabled.
    • enables low-leakage downsample filter.
    • fir_size can be 0 or 9.
    • 0 has bad roll off.
    • try with '-c 50%'.
  • [-P] β€” enables peak hold (default: off).
  • [-D] β€” enable direct sampling (default: off).
  • [-O] β€” enable offset tuning (default: off).

πŸ“Š CSV FFT output columns: πŸ“Š

date, time, Hz low, Hz high, Hz step, samples, dbm, dbm, ...

πŸ”₯ EXAMPLES πŸ”₯

okay so here's where it gets fun, these are literally the whole point:

rtl_power -f 88M:108M:125k fm_stations.csv

creates 160 bins across the FM band, individual stations should be visible. slay. πŸ‘‘

rtl_power -f 100M:1G:1M -i 5m -1 survey.csv

a five minute low res scan of nearly everything. "nearly everything" is such a mood. πŸ’€

rtl_power -f ... -i 15m -1 log.csv

integrate for 15 minutes and exit afterwards.

rtl_power -f ... -e 1h | gzip > log.csv.gz

collect data for one hour and compress it on the fly. the pipe is chef's kiss. 🀌

Convert CSV to a waterfall graphic with:

http://kmkeen.com/tmp/heatmap.py.txt

πŸ™ˆ and now... the same thing again πŸ™ˆ

yes bestie, the manpage really did say it twice. she said it again for the people in the back. keeping it 100% intact because the facts do not change:

rtl_power, a simple FFT logger for RTL2832 based DVB-T receivers.

Use:

rtl_power -f freq_range [-options] [filename]
  • -f lower:upper:bin_size [Hz]
    • bin size is a maximum, smaller more convenient bins will be used.
    • valid range 1Hz - 2.8MHz.
  • [-i integration_interval] β€” default: 10 seconds.
⚠️ buggy if a full sweep takes longer than the interval.
  • [-1] β€” enables single-shot mode (default: off).
  • [-e exit_timer] β€” default: off/0.
  • [-d device_index] β€” default: 0.
  • [-g tuner_gain] β€” default: automatic.
  • [-p ppm_error] β€” default: 0.
  • filename β€” a '-' dumps samples to stdout.
    • omitting the filename also uses stdout.

🧚 Experimental options: 🧚

  • [-w window] β€” default: rectangle.
    • hamming, blackman, blackman-harris, hann-poisson, bartlett, youssef.
  • [-c crop_percent] β€” default: 0%, recommended: 20%-50%.
    • discards data at the edges, 100% discards everything.
    • has no effect for bins larger than 1MHz.
  • [-F fir_size] β€” default: disabled.
    • enables low-leakage downsample filter.
    • fir_size can be 0 or 9.
    • 0 has bad roll off.
    • try with '-c 50%'.
  • [-P] β€” enables peak hold (default: off).
  • [-D] β€” enable direct sampling (default: off).
  • [-O] β€” enable offset tuning (default: off).

πŸ“Š CSV FFT output columns: πŸ“Š

date, time, Hz low, Hz high, Hz step, samples, dbm, dbm, ...
rtl_power -f 88M:108M:125k fm_stations.csv

creates 160 bins across the FM band, individual stations should be visible.

rtl_power -f 100M:1G:1M -i 5m -1 survey.csv

a five minute low res scan of nearly everything.

rtl_power -f ... -i 15m -1 log.csv

integrate for 15 minutes and exit afterwards.

rtl_power -f ... -e 1h | gzip > log.csv.gz

collect data for one hour and compress it on the fly.

Convert CSV to a waterfall graphic with:

http://kmkeen.com/tmp/heatmap.py.txt

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, we love a crossover episode. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

This manual page was written by Maitland Bottoms for the Debian project (but may be used by others). giving Debian, receiving credit, we love to see it. πŸ’œ


Copyright (c) 2013 A. Maitland Bottoms <bottoms@debian.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

🚨 bestie the warranty one is real β€” no warranty, none, zero, not even a little one. read the GPL for the deets.

and that's the whole page, mwah πŸ’… β€” this was RTL_SDR version 0.5.1, brought to you by the rtl_power:(1) manual. go scan something beautiful. βœ¨πŸŒΈπŸ¦‹