Parameter needed to switch RX input in gnuradio for limesdr


Those just select the antenna ports for channel RX1 by default. How can I use RX2 ports?


For GQRX, its not coded in yet …
Might help to post a feature request on github gqrx … if its not already been requested for LimeSDR


gqrx uses gr-osmosdr, so it shouldn’t be a problem of gqrx, it doesn’t work in gnuradio either. isn’t it possible with device args?


I am not sure how you know from the software side how to specify or differentiate the antennas for rx channel 0 vs. rx channel 1

I guess that the channel selection is the essential question we are trying to answer. I’m a little slow here. :slight_smile:


Exactly :wink: SoapySDRUtil --probe="driver=lime" lists RX1 as RX Channel 0, RX2 = RX Channel 1, TX1 = TX Channel 0, TX2 = TX Channel 1. The second parameter would be the antenna port, which we can anyway select already.


I believe that if you set gr-osmosdr blocks to num channels == 2, you will get two streams and two sets of channel configuration parameters (gain, antenna, filter bw, freq). So the only way to access the second channel (channel 1) is to use the second stream and second set of parameters on this block.

Now it is a bit of a software limitation in gr-osmosdr, because I bet you would be looking to have a single stream and parameter set, just on channel 1 instead. gr-uhd blocks actually have a second channel list argument that performs mapping from the parameters to a physical channel. So this uhd source block for example would have 1 channel, with the channels list selected to be “[1]”.

Problem transmitting via second TX channel
Selecting RF port on LimeSDR

lol… so obvious, that i overlooked this option. however, for now we now at least, that this is not implemented int gqrx. i thought, that it would be a device argument.
but, you’re right, in gr you can’t use channel 1 without using channel 0, at least with the osmocom blocks. maybe some day there will be a soapy-source & -sink
i already tried uhd blocks in gr with the lime, without any success. i get some version missmatch and i don’t want to recompile everything to break it in the end ;D at least it is working

edit: actually you could set the antenna of channel 0 to ‘NONE’, which is possible and just use channel 1 then. i believe, that this would consume usb bandwidth though…

TX Antennas: NONE, BAND1, BAND2```

i guess, you'd have to use a null sink then for the 0th output of the block then, but at least we have workaround for now

Much like its uhd counterpart, I would like to see gr-osmosdr blocks gain an optional channels list. This list would be used to map from the block’s stream and parameter indexes to hardware indexes. There is a perfect place for this in the source/sink_impl.cpp, so you would not change the device implementations. I suppose gqrx would then just supply a channel drop down to select which channel.

I would rather improve gr-osmosdr in this way than hide some convoluted argument remapping option within SoapyLMS7. But I suppose if a lot of apps had some inflexibility with channel selection, we might have to go the other way.


Hello m.r joshblum
how to set Antenna Argument in source block when use two channel? when i use one channel( RX-1) i set Antenna argument with(LNAL-LNAH-LNAW) and work correctly but when use two channel RX1-L and RX2-L i get below error

Traceback (most recent call last):
File “/home/user/Desktop/”, line 143, in
File “/home/user/Desktop/”, line 137, in main
tb = top_block_cls()
File “/home/user/Desktop/”, line 82, in init
self.osmosdr_source_0_0 = osmosdr.source( args=“numchan=” + str(2) + " " + ‘driver=lime,soapy=0,serial=000907060246301F’ )
File “/usr/local/lib/python2.7/dist-packages/osmosdr/”, line 954, in make
return _osmosdr_swig.source_make(args)
RuntimeError: Wrong device arguments specified. Missing nchan?


If I remember right it was expecting adding ‘nchan=2’ to device arguments or something like that.

However, if you want to use LimeSDR in MIMO configuration in GNURadio Companion, I believe USRP Source/Sinks are the only way to go, since (afaik) you cannot provide different DSP frequency offsets for two channels with Osmocom Source/Sinks.

With USRP Source/Sinks on the other hand, you need to change number of channels to 2 and then everything may be easily set in RF options tab for each channel individually.


can you help me to use LimeSDR in MIMO configuration in GNURadio Companion by USRP Source?


Sure, what exactly do you need to know?


i have two LimeSDR and i want to use two usrp source block(or one) in gnuradio to syncronization but i don’t know how to set and configure parameters in usrp source such as device argument , antenna , clock source, time source , number of channel and board.
Best Regard


That may be a problem. I thought that you want to use MIMO configuration within a single device (i.e. 2xRX channel and 2xTX channel) - this may be done quite easily. As for synchronizing two devices together, frequency is not a problem (you just have to connect both boards with Ref input/output ports), but afaik noone has successfully implemented 1 PPS time synchronization for LimeSDR so far.

1 Like

i want use two limesdr then sync 4 receiver you know how do it?


Like I wrote above, if you need both frequency and time synchronization during operation, you have to implement time synchronization based on 1 PPS signal fed to GPIO pin on your own, as noone else has shared the code implementing such funcionality so far.

Or, if you don’t need automatic time synchronization during operation, you can estimate time offset between samples from both devices later, during data processing (e.g. before receiving actual signal of interests, feed the same known signal into RX inputs of both devices and calculate cross-cortelation functions of samples received from both devices and known signal pattern, in order to extract relative time offset between two devices).




I am trying to receive on both the channels of the LimeSDR and am using a USRP Source block in GNURadio with number of channels set to 2, as suggested above. I also understand the limitation of the board in that the two receive frequencies cannot be more than 60 MHz or so apart. My flowgraph in GNURadio is below:

But the two FFT sinks capture the signal for CH1 rather than their respective channel freqs, even after trying with low pass filter blocks in between. Interestingly, this works even if I remove the antennas connected to either channel, which means there definitely is an issue somewhere with the source block.

I also tried the same in Pothos Flow using the supported SoapySDR source block, as shown:
Screenshot from 2018-02-22 16-58-39

But, alas, same result. Not sure if this source block is also correctly implemented to support the multiple input feature of LimeSDR.

I then went into LimeSuite and checked the “Enable MIMO” checkbox at the top of the interface and kept the configuration to its default settings, but still no luck. Anyone got any solution for this? If it’s LimeSuite related, a walkthrough of the steps needed to configure the suite properly for multiple Rx on LimeSDR to work would be great, or even the .ini file itself. Thanks in advance.


This sounds like it might be one for @joshblum.


Hello, I’ am new to LimeSDR and GNURadio, but I am facing the same problem. I try to set up a GNURadio flowgraph with an Osmocom Sink with 2 channels with different frequencies. The result is the same as described above. Unfortunately i read in the lms7_api_quick_start_guide.pdf from the /docs folder, that this is not supported in LMS7. In 3.3 Example 3: dualRXTX it says “Note that setting different frequencies for the first and the second channel is not
supported as LMS7 uses single oscillator for both channels.”

Does that mean in the next LMS version it could be supported or is it not possible due to restrictions of the LimeSDR board? Thanks in advance.