Run gr-gsm with LimeSDR-Mini

I eagerly expect to make gr-gsm work thoroughly on my limeSDR-Mini.
So I checked this

and the project that was mentioned in this topic

I found something that inspired me!

It seems that this project can only make grgsm_scanner available on limeSDR with gr-limesdr support until now.
I speculate that these following scripts in class wideband_scanner are decisive:


in constructor __init__

self.rtlsdr_source = limesdr.source("", 0, "")
self.rtlsdr_source.set_sample_rate(sample_rate)
self.rtlsdr_source.set_center_freq(carrier_frequency - 0.1e6, 0)
self.rtlsdr_source.set_bandwidth(sample_rate,0)
self.rtlsdr_source.set_gain(int(gain),0)

in method set_carrier_frequency

def set_carrier_frequency(self, carrier_frequency):
        self.carrier_frequency = carrier_frequency
        self.rtlsdr_source.set_rf_freq(carrier_frequency - 0.1e6, 0)

I compared this file with the original one at


and found that the source seems to be initialized by these scripts


in constructor __init__

self.rtlsdr_source = osmosdr.source(args="numchan=" + str(1) + " " +
                str(grgsm.device.get_default_args(args)))

self.rtlsdr_source.set_sample_rate(sample_rate)
self.rtlsdr_source.set_center_freq(carrier_frequency - 0.1e6, 0)
self.rtlsdr_source.set_freq_corr(ppm, 0)
self.rtlsdr_source.set_dc_offset_mode(2, 0)
self.rtlsdr_source.set_iq_balance_mode(0, 0)
self.rtlsdr_source.set_gain_mode(True, 0)
self.rtlsdr_source.set_bandwidth(sample_rate, 0)
self.rtlsdr_source.set_gain(gain, 0)
self.rtlsdr_source.set_if_gain(32, 0)
self.rtlsdr_source.set_bb_gain(30, 0)

in method set_carrier_frequency

def set_carrier_frequency(self, carrier_frequency):
        self.carrier_frequency = carrier_frequency
        self.rtlsdr_source.set_center_freq(carrier_frequency - 0.1e6, 0)

I hope to get answers to these two questions:

1. The difference between set_rf_freq() and set_center_freq() in gr-limesdr, and what they do.

2. For other functions using source blocks in gr-gsm like

they also have similar scripts such as

self.rtlsdr_source = osmosdr.source( args="numchan=" + str(1) + " " + args )
self.rtlsdr_source.set_sample_rate(samp_rate)
self.rtlsdr_source.set_center_freq(fc - shiftoff, 0)
self.rtlsdr_source.set_freq_corr(ppm, 0)
self.rtlsdr_source.set_dc_offset_mode(2, 0)
self.rtlsdr_source.set_iq_balance_mode(2, 0)
self.rtlsdr_source.set_gain_mode(True, 0)
self.rtlsdr_source.set_gain(gain, 0)
self.rtlsdr_source.set_if_gain(20, 0)
self.rtlsdr_source.set_bb_gain(20, 0)
self.rtlsdr_source.set_antenna("", 0)
self.rtlsdr_source.set_bandwidth(250e3+abs(shiftoff), 0)

Just by modifying the codes about the initialization of source block like this, can I make it work via a gr-limesdr source directly rather than gr-osmosdr? If not, what other modification should be done?

@andrewback

@Garmus would be best positioned to advise.