Selecting RF port on LimeSDR


I’m currently trying to run gr-ieee80211 with my LimeSDR. All the software seems to be working, but I’m seeing no signal (ie the constellation diagram has all points at [0,0]). It looks like the USB Quick Test receive test is working at 800 MHz on port RX1_L using the example.ini file they provide. With the USRP, there’s an option in gnuradio-companion to set the RF input/output port used, but I haven’t been able to find anything like that for LimeSDR. Does it automatically choose the input port? How do you tell it to use RX2 vs RX1?


In your osmocom source block you can specify the antenna, LNAL or LNAH, etc.


Thanks, I didn’t know it understood those!


You mean Gnuradio right? If you don’t enter the antenna Gnuradio assumes there is only one antenna and chooses that somehow, some way, which I am not yet familiar with. Probably could find it in the osmocom source.

The naming convention I discovered from Gqrx so thanks go to @csete and/or @joshblum (soapysdr) or maybe even it is from osmocom.


Also see SoapySDRUtil --probe="driver=lime" to get the names of the ports. In this case, the names are based off of the LMS7, not the silkscreen, These are the options

  • Rx Antennas: LNAH, LNAL, LNAW, LB1, LB2
  • Tx Antennas: BAND1, BAND2

You will see the two tx antenna options for each channel and the 3 rx options for each channel. The loopbacks are just internal to the LMS7. Mostly for debug, but they are there too as a useful options.

Parameter needed to switch RX input in gnuradio for limesdr

How is channel selection accomplished?


Like for osmosdr source/sink block? Use one of those antenna names (like LNAH, LNAL, LNAW) in the antenna entry box. That will set the RF path in the LimeSDR to one of the external antenna connections.


You answered it over on that other thread. It’s so obvious that some of us missed it. :wink:


How to specify the antenna names in RX_2 when using two RX_1 and RX_2 simultaneously in osmosdr source? in this case i set number of channel==2 .


Unless I am misunderstanding, when the number of channels are two, you get two independent antenna boxes to fill:

  • Ch0: Antenna
  • and Ch1: Antenna

Each can have the values LNAL, LNAH, or LNAW which correspond to the physical input LNA paths on the LMS7

Channel0 antenna will let you select from any of the LNA paths on mimo channel “A” of the LMS7 and channel1 antenna gives you the LNA input paths for mimo channel “B” of the LMS7


@bardia1990 This may sound strange to try, but it looks like gr-osmosdr also expects the user to add nchan=2 to the device arguments:


  // try to parse device specific nchan values, assume 1 channel if none given

  BOOST_FOREACH( std::string arg, arg_list )
    dict_t dict = params_to_dict(arg);
    if (dict.count("nchan"))
      dev_nchan += boost::lexical_cast<size_t>( dict["nchan"] );
    else // no channels given via args
      dev_nchan++; // assume one channel

  // if at least one nchan was given, perform a sanity check
  if ( max_nchan && dev_nchan && max_nchan != dev_nchan )
throw std::runtime_error("Wrong device arguments specified. Missing nchan?");

I think the hardware was supposed to set nchan from the find arguments or the user is supposed to pass this in. Not entirely sure. Try this for device arguments:


So I think nchan is the number of hardware channels, and numchan is the number of requested channels on the gr-osmosdr block.

How to use two or more LimeSDRs independent in the same time?
Antenna choice under osmosdr/soapy

by set the device argument with (driver=lime,soapy=0,serial=000etcabcef,nchan=2) osmocom-sdr work correctly but when see spectrum channel RX-2 it has -10db smaller than spectrum channel (fft sink) in RX-1. i think that two channel (RX-1 H) and (RX-2 H) are same but when see deference between them i really don’t know about this. please help me again. thank a lot.
Best Regard.