Controlling the LimeSDR using LimeSuite GUI


Hello everyone,
I need complete description of “ALL” the tabs and contols etc of the LimeSuite GUI.

                         I need to know how to control the LimeSDR USB type B socket device.

                        What i am involved in this: I am generating a Sinusoidal signal in MATLAB and 
                        transmitting it to the LimeSDR, connecting the TX and RX ports, and receiving back the 
                       signal on MATLAB.

                      The problem is this: The output signal is way way different from the input signal. I 
                      cannot even attribute this  to noise, defects in the cable etc....there is way too much 
                      difference to even call it just distortion.

                     I suspect i need to be able to control the LimeSDR settings through LimeSuite GUI. 

                     Therefore i need full instructions of how to use LimeSuite GUI.

                     Please help somebody

Thanks a lot,



Most of the setting in LimeSuiteGUI require understanding of LMS7002M chip as they simply set chip register value (setting tooltips should show register and bits). You can find LMS register descriptions here:

There are also some higher level functions e.g:
In “Calibrations” tab pressing calibrate buttons attempts to correct DC offset and IQ imbalance.
In “RBB” and “TBB” tabs “Tune” buttons configure low pass baseband filters for Rx and Tx respectively.
“Tune Gain” in TBB tab can be used to find optimal ‘frontend gain’ value.
“Calculate” buttons in “CLKGEN”, “SXR” and “SXT” calculate and set ADC/DAC clock generator, Tx and Rx PLL frequencies.

LMS7002M datasheet may be helpful:


I will go through this stuff and see how this will be helpful in achieving the feat of producing received output equal to Transmitted input??




This may be helpful too, although a little bit outdated:




Hi @IgnasJ,
I have read the callliberation guide finally, completely.

                     I have some questions:

                    1. In general, how useful are the figures and tables vis-a-vis controlling the LimeSDR via 
                         the LimeSuite GUI?
                    2. Do i need to "do" something to the LimeSDR USB board hardware, like with the SPI 
                    3. Do i need to do something to the SPI and microcontroller? If so how?
                    4. What really should be the settings values of each tab like: TBB, RFE, SXR, SXT, TXTSP, 
                         RXTSP, RBB, TRF, AFE, BIAS, CGEN, XBUF, LDO, BIST, CDS?
                    5. How is NCO controlled?
                    6. How are GFIRs controlled?
                    7. What is additional control of TBB, TRF, RBB and RFE?
                    8. How to set EN_DIR?
                    9. How to set mSPI?
                    10. What to do about RSSI, PDET?
                    11. And finally, what is to be done about the calliberation algorithms? Are they to be 
                           implemented somehow in MATLAB etc to control the LimeSDR?

Remember, i am trying to send in a Sine wave (generated on MATLAB and transferred to LimeSDR) and am expecting near exact replica(Sent from LimeSDR back to MATLAB)



Well your initial question was about description of controls in LimeSutieGUI.
I am not sure what approach you use to control LimeSDR from Matlab. If you just try call C functions from LimeSuite library, then I suggest to look at LMS API function descriptions in LimeSuite.h:

and API usage examples:


Hi @IgnasJ,
Ok. I am using this interface:

                   And this is the program that i am running on MATLAB, as indicated in this post:

                You can see the error in the plots there.

               So my guess is we need to control the LimeSDR using LimeSuite GUI, right?
               And hence my 11 questions.

I have never used it so I cannot tell how or if it works. I can see it maps to LMS API functions but it has not been updated for last 2+ years so there may be so compatibility issues with recent LimeSuite library (again, this is just speculation). Maybe its author or someone else who have used it could give better insights.
Have you tried something simpler like only receiving or only transmitting sine wave? Is you Matlab code supposed to transmit signal continuously or in bursts. If it is in bursts, then how do you detect burst start in Rx (maybe you just miss your transmit burst in Rx)?

1 Like

Hi @IgnasJ,
Alright, you have highlighted some potential issues i still need looking into.
Meanwhile, here are some points in reply to your previous message:

                    1. What exactly is the LimeSuite Library? Can you give me a link to this, if there is one? Is 
                         this library something which is part of the "Interface to MATLAB" or part of the 
                         "LimeSuite GUI Software"" ?
                    2. @jocover, the author of the Interface to MATLAB, is not responding to me at all. Can 
                        you clarify what i understand: you are suggesting there is a  compatibility issue 
                        between "his interface" and "the LimeSuite Library" ?
                    3. About Transmitting and Receiving the Sine wave, we will talk latter. First i need to be 
                        sure i have got the MATLAB-LimeSDR interface/infrastructure right!!!



Hi @Zack,
I have been reading and implementing the getting started manual you provided a link to, a few
days ago.

              The following is my feedback:

              1. If the manual you provided is outdated, is there a recent one available?
              2. Well i implemented the instructions but i don't get the same results as indicated in the 
                  manual for the graphs etc. Instead i receive many warnings and some "L warning" like a lot 
                  of times.
              3. Finally when i try to run the MATLAB program indicated at "",
                 i still receive the same errors in the plots indicated in that post

Can you enlighten me?
Thanks a lot