Skip to content

Instantly share code, notes, and snippets.

@keichan34
Created August 26, 2026 21:53
Show Gist options
  • Select an option

  • Save keichan34/c8bbacfd67d62bf7070bc2453607ff4e to your computer and use it in GitHub Desktop.

Select an option

Save keichan34/c8bbacfd67d62bf7070bc2453607ff4e to your computer and use it in GitHub Desktop.
RTLSDR-Airband configs for Yakushima?
# RTLSDR-Airband configuration for the Yakushima Town 367.450 MHz and
# 367.475 MHz channels listed in data/soumu_frequencies.csv.
#
# The receiver stays tuned continuously in multichannel mode. The tuner center
# is offset above both channels to keep them away from the RTL-SDR DC spike at
# the center of the sampled spectrum.
#
# The RTLSDR-Airband binary must be built with NFM support (-DNFM=ON). Each
# squelch-open transmission is recorded natively as 16 ksample/s CF32 I/Q plus
# an MP3 safety copy. Use scripts/cf32_to_wav.py for offline WAV conversion.
localtime = true;
devices:
(
{
type = "rtlsdr";
index = 0;
# Starting values: tune gain for the antenna/site and set correction to the
# measured oscillator error in ppm. A stable device serial is preferable to
# index once the target hardware is known.
gain = 28.0;
correction = 0;
mode = "multichannel";
centerfreq = "367.550M";
channels:
(
{
freq = "367.450M";
label = "Yakushima 367.450 MHz";
modulation = "nfm";
bandwidth = 12500;
# Automatic squelch is used until receiver-specific signal/noise levels
# have been observed in foreground mode.
outputs:
(
{
type = "rawfile";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_367_450";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
},
{
# Native MP3 provides an immediately playable capture check.
type = "file";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_367_450";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
}
);
},
{
freq = "367.475M";
label = "Yakushima 367.475 MHz";
modulation = "nfm";
bandwidth = 12500;
# This channel is demodulated simultaneously with 367.450 MHz and has
# an independent automatic squelch and recording stream.
outputs:
(
{
type = "rawfile";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_367_475";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
},
{
# Native MP3 provides an immediately playable capture check.
type = "file";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_367_475";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
}
);
}
);
}
);
# RTLSDR-Airband configuration for the Yakushima Town 385 MHz channels listed
# in data/soumu_frequencies.csv.
#
# The receiver stays tuned continuously in multichannel mode. The 385.550 MHz
# tuner center keeps all three channels away from the RTL-SDR DC spike at the
# center of the sampled spectrum.
#
# The RTLSDR-Airband binary must be built with NFM support (-DNFM=ON). Each
# squelch-open transmission is recorded natively as 16 ksample/s CF32 I/Q plus
# an MP3 safety copy. Use scripts/cf32_to_wav.py for offline WAV conversion.
localtime = true;
devices:
(
{
type = "rtlsdr";
index = 0;
# Starting values: tune gain for the antenna/site and set correction to the
# measured oscillator error in ppm. A stable device serial is preferable to
# index once the target hardware is known.
gain = 28.0;
correction = 0;
mode = "multichannel";
centerfreq = "385.550M";
channels:
(
{
freq = "385.450M";
label = "Yakushima 385.450 MHz";
modulation = "nfm";
bandwidth = 12500;
outputs:
(
{
type = "rawfile";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_385";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
},
{
# Native MP3 provides an immediately playable capture check.
type = "file";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_385";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
}
);
},
{
freq = "385.475M";
label = "Yakushima 385.475 MHz";
modulation = "nfm";
bandwidth = 12500;
outputs:
(
{
type = "rawfile";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_385";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
},
{
# Native MP3 provides an immediately playable capture check.
type = "file";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_385";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
}
);
},
{
freq = "385.600M";
label = "Yakushima 385.600 MHz";
modulation = "nfm";
bandwidth = 12500;
outputs:
(
{
type = "rawfile";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_385";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
},
{
# Native MP3 provides an immediately playable capture check.
type = "file";
directory = "PATH TO RECORDING DIRECTORY";
filename_template = "yakushima_bousai_385";
continuous = false;
split_on_transmission = true;
include_freq = true;
append = true;
dated_subdirectories = true;
}
);
}
);
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment