New satnogs-flowgraphs parameters

The improved gr-soapy exposes a lot of new stuff to parameterize the device and the activated channel. In addition, now is possible to set the device specific gains. I have updated satnogs-flowgraphs accordingly to support these new features.

So before describing the new fields, let see a typical output of the SoapySDRUtil probing a device, in this case the LimeSDR-mini.

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=FT601
  hardware=LimeSDR-Mini
  boardSerialNumber=0x1d42574f558c9f
  firmwareVersion=5
  gatewareVersion=1.24
  hardwareVersion=64
  protocolVersion=1

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 1 Tx
  Timestamps: YES
  Sensors: clock_locked, lms7_temp
  Registers: BBIC
  Other Settings:
     * SAVE_CONFIG - Save LMS settings to file
       [key=SAVE_CONFIG, type=string]
     * LOAD_CONFIG - Load LMS settings from file
       [key=LOAD_CONFIG, type=string]
     * OVERSAMPLING - oversampling ratio (0 - auto)
       [key=OVERSAMPLING, type=int, options=(0, 1, 2, 4, 8, 16, 32)]
  GPIOs: MAIN

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Supports AGC: NO
  Stream formats: CF32, CS12, CS16
  Native format: CS16 [full-scale=32767]
  Stream args:
     * Buffer Length - The buffer transfer size over the link.
       [key=bufferLength, units=samples, default=0, type=int]
     * Link Format - The format of the samples over the link.
       [key=linkFormat, default=CS16, type=string, options=(CS16, CS12)]
     * Skip Calibration - Skip automatic activation calibration.
       [key=skipCal, default=false, type=bool]
     * align phase - Attempt to align phase of Rx channels.
       [key=alignPhase, default=false, type=bool]
  Antennas: NONE, LNAH, LNAL_NC, LNAW, Auto
  Corrections: DC removal, DC offset, IQ balance
  Full gain range: [-12, 61] dB
    TIA gain range: [0, 12] dB
    LNA gain range: [0, 30] dB
    PGA gain range: [-12, 19] dB
  Full freq range: [0, 3800] MHz
    RF freq range: [30, 3800] MHz
    BB freq range: [-7.68, 7.68] MHz
  Tune args:
     * LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
       [key=OFFSET, units=Hz, default=0.0, type=float, range=[-7.68e+06, 7.68e+06]]
     * BB - Specify a specific value for this component or IGNORE to skip tuning it.
       [key=BB, units=Hz, default=DEFAULT, type=float, range=[-7.68e+06, 7.68e+06], options=(DEFAULT, IGNORE)]
  Sample rates: [0.1, 65] MSps
  Filter bandwidths: [1.4001, 130] MHz
  Sensors: lo_locked
  Other Settings:
     * TSP_CONST - Digital DC test signal level in LMS7002M TSP chain.
       [key=TSP_CONST, default=16383, type=int, range=[0, 32767]]
     * CALIBRATE -  DC/IQ calibration bandwidth
       [key=CALIBRATE, type=float, range=[2.5e+06, 1.2e+08]]
     * ENABLE_GFIR_LPF - LPF bandwidth (must be set after sample rate)
       [key=ENABLE_GFIR_LPF, type=float]
     * TSG_NCO - Enable NCO test signal
       [key=TSG_NCO, default=4, type=int, options=(-1, 4, 8)]
  • As you can see, there are the device specific settings section. Eg SAVE_CONFIG, LOAD_CONFIG. These parameters should be set in the --dev-args field. In addition, this field also supports the serial keyword for specifying a specific device, in setups with multiple SDR devices of the same type. There was a discussion in #373 (closed) about depreciation of the SATNOGS_DEV_ARGS which sets this parameter. Please do not remove it!

  • The --stream-args eg. bufferLength=xx, SkipCal=xxx specifies the stream arguments of the enabled channels. From the output of SoapySDRUtil it may seems that these arguments can be applied for every channel. Unfortunately, the API does not support per stream arguments, so this field applies the stream arguments to all enabled streams.

  • The --gain-mode specified which gain mode will be used. For gr-soapy 3 different mode are supported. 'Overall', 'Specific', 'Settings Field'.

image

For the usage in SatNOGS we care only for 'Overall' or 'Settings Field'. If the 'Overall' is set, the --gain value is taken into account. If 'Settings Field', the user can specify device specific gains in the --other_settings.

  • --tune-args sets the tuning arguments for a specific channel. Eg OFFSET=xxxx.

  • --other-settings specifies channel specific settings. Eg ENABLE_GFIR_LPF=xxx. If --gain-mode is set to 'Settings field' it also accepts device specific gain settings. For example ENABLE_GFIR_LPF=xxx,TIA=xxx,LNA=xxx,PGA=xxx.