---
name: "osmocom_siggen"
section: "1"
platform: "linux"
package: "gr-osmosdr"
version: "0.2.2-1+b4"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/osmocom_siggen"
---

# osmocom\_siggen(1)

Signal Generator Application with GUI controls

## NAME

osmocom\_siggen - Signal Generator Application with GUI controls

## SYNOPSIS

**osmocom\_siggen:** \[*options*\]

## DESCRIPTION

Signal Generator Application with GUI controls

## OPTIONS

- **-h**, **--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

- Argument

  Notes

- 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

- Argument

  Notes

- 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

- Argument

  Notes

- 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

- Argument

  Notes

- 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

- Argument

  Notes

- miri=\<device-index\>

  0-based device identifier

- buffers=\<number-of-buffers\>

  Default is 32

## UHD Source / Sink

Argument Notes

- 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

- Argument

  Notes

- 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

- Argument

  Notes

- 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

- Argument

  Notes

- 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

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_fft/1.md) [osmocom\_siggen(1)](/osmocom_siggen/1.md) [osmocom\_spectrum\_sense(1)](/osmocom_spectrum_sense/1.md)
