osmocom_siggen(1)

πŸ“¦ version 0.2.3, in ubuntu jammy

✨ osmocom_siggen ✨

okay bestie, gather round, because this one is literally the signal generator with GUI controls and it is giving main character energy πŸŽ€


πŸ’– NAME πŸ’–

osmocom_siggen β€” Signal Generator Application with GUI controls


🌸 SYNOPSIS 🌸

osmocom_siggen: [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

Signal Generator Application with GUI controls. that's the whole vibe, fr fr β€” you point it at a device, you pick a waveform, and it makes signal ✨


πŸ’… OPTIONS πŸ’…

  • -h ARGS, --help β€” show this help message and exit
  • -a ARGS, --args=ARGS β€” Device args, [default=]
  • -A ANTENNA, --antenna=ANTENNA β€” Select Rx Antenna where appropriate
  • -s SAMP_RATE, --samp-rate=SAMP_RATE β€” Set sample rate (bandwidth), minimum by default
  • -g GAIN, --gain=GAIN β€” Set gain in dB (default is midpoint)
  • -f FREQ, --tx-freq=FREQ β€” Set carrier frequency to FREQ [default=mid-point]
  • -c FREQ_CORR, --freq-corr=FREQ_CORR β€” Set carrier frequency correction [default=0]
  • -x WAVEFORM_FREQ, --waveform-freq=WAVEFORM_FREQ β€” Set baseband waveform frequency to FREQ [default=0]
  • -y WAVEFORM2_FREQ, --waveform2-freq=WAVEFORM2_FREQ β€” Set 2nd waveform frequency to FREQ [default=none]
  • --sine β€” Generate a carrier modulated by a complex sine wave
  • --const β€” Generate a constant carrier
  • --offset=OFFSET β€” Set waveform phase offset to OFFSET [default=0]
  • --gaussian β€” Generate Gaussian random output
  • --uniform β€” Generate Uniform random output
  • --2tone β€” Generate Two Tone signal for IMD testing
  • --sweep β€” Generate a swept sine wave
  • --gsm β€” Generate GMSK modulated GSM Burst Sequence
  • --amplitude=AMPL β€” Set output amplitude to AMPL (0.1-1.0) [default=0.3]
  • -v, --verbose β€” Use verbose console output [default=False]

πŸ”§ Device specification πŸ”§

You can specify the source or sink device using a comma separated string of argument=value pairs. The always-up-to-date block documentation with examples is available right here.


πŸ“ FCD Source πŸ“

  • fcd=<device-index> β€” 0-based device identifier, optional
  • device=hw:2 β€” overrides the audio device
  • type=2 β€” selects the dongle type, 1 for Classic, 2 for Pro+

The "device" argument overrides the audio device used by the underlying driver to access the dongle's IQ sample stream.

The "type" argument selects the dongle type, 1 for Classic, 2 for Pro+.


πŸ’œ OsmoSDR Source πŸ’œ

  • osmosdr=<device-index> β€” 0-based device identifier
  • buffers=<number-of-buffers> β€” Default is 32
  • buflen=<length-of-buffer> β€” Default is 256kB, must be multiple of 512

🧚 RTL-SDR Source 🧚

  • rtl=<device-index> β€” 0-based device identifier OR serial number
  • rtl_xtal=<frequency> β€” Frequency (Hz) used for the RTL chip, accepts eng notation
  • tuner_xtal=<frequency> β€” Frequency (Hz) used for the tuner chip, accepts eng notation
  • buffers=<number-of-buffers> β€” Default is 32
  • buflen=<length-of-buffer> β€” Default is 256kB, must be multiple of 512
  • direct_samp=0|1|2 β€” Enable direct sampling mode on the RTL chip. 0: Disable, 1: use I channel, 2: use Q channel
  • offset_tune=0|1 β€” Enable offset tune mode for E4000 tuners
NOTE: use rtl_eeprom -s to program your own serial number to the device
NOTE: if you don't specify rtl_xtal/tuner_xtal, the underlying driver will use 28.0MHz

🌈 RTL-SDR TCP Source 🌈

  • rtl_tcp=<hostname>:<port> β€” hostname defaults to "localhost", port to "1234"
  • psize=<payload-size> β€” Default is 16384 bytes
  • direct_samp=0|1|2 β€” Enable direct sampling mode on the RTL chip 0=Off, 1=I-ADC input enabled, 2=Q-ADC input enabled
  • offset_tune=0|1 β€” Enable offset tune mode for E4000 tuners

⭐ Miri Source ⭐

  • miri=<device-index> β€” 0-based device identifier
  • buffers=<number-of-buffers> β€” Default is 32

πŸ‘‘ UHD Source / Sink πŸ‘‘

  • uhd β€” Use this argument without a value
  • nchan=<channel-count> β€” For multichannel USRP configurations use the subdev parameter to specify stream mapping
  • subdev=<subdev-spec> β€” Examples: "A:0", "B:0", "A:0 B:0" when nchan=2. Refer original ettus documentation on this
  • lo_offset=<frequency> β€” Offset frequency in Hz, must be within daughterboard bandwidth. Accepts eng notation

Additional argument/value pairs will be passed to the underlying driver, for more information see specifying the subdevice and common device identifiers in the Ettus documentation.


🫢 bladeRF Source / Sink 🫢

  • bladerf[=0] β€” 0-based device identifier (optional)
  • fw='/path/to/the/firmware.img' β€” program MCU firmware from given file. usually not needed. power cycle required.
  • fpga='/path/to/the/bitstream.rbf' β€” load FPGA bitstream from given file. required only at first run at the moment.

πŸ”₯ HackRF Source / Sink πŸ”₯

  • hackrf β€” Use this argument without a value
  • buffers=<number-of-buffers> β€” Default is 32

Only the first device found may be used at the moment because of libhackrf limitation.

Transmit support has been verified by using the crc-mmbTools DAB sdr transmitter.


πŸŽ€ IQ File Source πŸŽ€

  • file=<path-to-file-name>
  • freq=<frequency> β€” Center frequency in Hz, accepts eng notation
  • rate=<sampling-rate> β€” Mandatory, in samples/s, accepts eng notation
  • repeat=true|false β€” Default is true
  • throttle=true|false β€” Throttle flow of samples, default is true

🌟 EXAMPLES 🌟

okay these are the moments, copy them exactly bestie πŸ’…

osmocom_siggen -a hackrf -f 100e6 --sine

osmocom_siggen -a hackrf -f 100e6 --sweep -x 2M -y 1 -c34

πŸ‘€ SEE ALSO πŸ‘€

osmocom_fft(1) osmocom_siggen(1) osmocom_spectrum_sense(1)


and that's the whole page, no cap πŸ’– this came from the OSMOCOM crew, October 2013 vintage, and it's osmocom_siggen(1) through and through β€” iconic, periodt πŸŽ€βœ¨

πŸ“¦ where this page comes from