Module: PWN::SDR::Decoder::RTTY

Defined in:
lib/pwn/sdr/decoder/rtty.rb

Overview

Pure-Ruby RTTY (Radioteletype, ITA2/Baudot) decoder.

Amateur RTTY is 45.45 baud 2-FSK with a 170 Hz shift; on USB the convention is mark ≈ 2125 Hz, space ≈ 2295 Hz in the demodulated audio. This module runs a per-symbol Goertzel on both tones, frames 1-start / 5-data / 1.5-stop asynchronously, and decodes ITA2 via DSP::BAUDOT_LTRS/FIGS. No minimodem, no sox.

Defined Under Namespace

Classes: Demod

Class Method Summary collapse

Class Method Details

.authorsObject

Author(s)

0day Inc. support@0dayinc.com



118
119
120
# File 'lib/pwn/sdr/decoder/rtty.rb', line 118

public_class_method def self.authors
  "AUTHOR(S):\n  0day Inc. <support@0dayinc.com>\n"
end

.decode(opts = {}) ⇒ Object

Supported Method Parameters

PWN::SDR::Decoder::RTTY.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' )



107
108
109
110
111
112
113
114
# File 'lib/pwn/sdr/decoder/rtty.rb', line 107

public_class_method def self.decode(opts = {})
  freq_obj = opts[:freq_obj]
  PWN::SDR::Decoder::Base.run_native(
    freq_obj: freq_obj,
    protocol: 'RTTY',
    demod: Demod.new
  )
end

.helpObject

Display Usage for this Module



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/pwn/sdr/decoder/rtty.rb', line 124

public_class_method def self.help
  puts "USAGE (ruby-native 2-FSK ITA2, no external binaries):
    #{self}.decode(
      freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq'
    )

    NOTE: Set GQRX to USB, tune so mark≈2125 Hz / space≈2295 Hz in
          the audio passband. 45.45 baud, 170 Hz shift, 1N5+1.5.

    #{self}.authors
  "
end