Lime Suite: Difference between revisions

Democratising Wireless Innovation
Jump to navigation Jump to search
(→‎Ubuntu PPA: Fixed 16.06 -> 16.04)
(35 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Welcome to Lime Suite =
Lime Suite is a collection of software supporting several hardware platforms including the LimeSDR, drivers for the LMS7002M transceiver RFIC, and other tools for developing with LMS7-based hardware.
Installing the Lime Suite enables many SDR applications such as GQRX to work with supported hardware through the bundled SoapySDR support module.


Lime Suite is a collection of software supporting several hardware platforms including the LimeSDR, drivers for the LMS7002M transceiver RFIC, and other tools for  developing with LMS7-based hardware.
This wiki page will guide users through available binary packages, obtaining dependencies, compiling the suite, basic testing with hardware, and upgrading firmware.
 
'''Please note that you should either install Lime Suite via a pre-built package/installer (2) ''or'' build it from source (3) and not do both.'''
 
[[File:lime_suite_comps.png|700px]]
 
* Interested in software or hardware development? Learn more about the [https://myriadrf.org/blog/limesuite-driver-architecture/ Lime Suite driver architecture].


== Supported hardware ==
== Supported hardware ==


* [https://myriadrf.org/projects/lime-suite/ LimeSDR] USB 3.0
* [[LimeSDR]]
* [https://myriadrf.org/projects/stream/ Stream] with LMS7002M UNITE (EVB7)
* [[STREAM]] with LMS7002M UNITE (EVB7)
* LMS7002M UNITE (EVB7) through COM port
* LMS7002M UNITE (EVB7) through COM port
* [http://www.kosagi.com/w/index.php?title=Novena_Main_Page Novena Laptop] with LMS7 RF board
* [http://www.kosagi.com/w/index.php?title=Novena_Main_Page Novena Laptop] with LMS7 RF board


== Installers and binaries ==
== Installers and packages ==


We have support for a select number of platforms and package managers.
We have support for a select number of platforms and package managers.
If your platform isn't supported, follow the next sections for getting the dependencies and building LimeSuite.
If your platform isn't supported, follow the next sections for getting the dependencies and building LimeSuite.
'''Note: either install Lime Suite via a package/installer or source code and do not do both!'''


=== Ubuntu PPA ===
=== Ubuntu PPA ===
Line 24: Line 33:
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get update
sudo apt-get install limesuite limesuite-udev soapysdr-lms7
sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
sudo apt-get install soapysdr-tools soapysdr-module-lms7
 
#soapysdr-tools use to be called just soapysdr on older packages
sudo apt-get install soapysdr soapysdr-module-lms7
</pre>
</pre>
We currently package for Ubuntu releases:
* 16.04
* 18.04
* 18.10


=== Windows ===
=== Windows ===
Line 31: Line 50:
[[File:windows_logo.png]]
[[File:windows_logo.png]]


* The build/bin/Release directory of the repo has a [https://github.com/myriadrf/LimeSuite/tree/master/build/bin/Release pre-built binary for the lms7suite GUI]. Use this application for testing, plotting, firmware updates, and hardware evaluation.
LimeSuite is bundled with the [https://github.com/pothosware/PothosSDR/wiki PothoSDR development environment] to use supported hardware in an ecosystem of SDR applications like GQRX, Pothos, CubicSDR, and GNU Radio.
* LimeSuite is also bundled with the [https://github.com/pothosware/PothosSDR/wiki PothoSDR development environment] to use supported hardware in an ecosystem of SDR applications like GQRX, Pothos, CubicSDR, and GNU Radio.


=== OSX homebrew ===
=== OSX homebrew ===
Line 52: Line 70:
</pre>
</pre>


== Get the dependencies ==
== Building from source ==
 
'''Note: either install Lime Suite via a package/installer or source code and do not do both!'''
 
=== Get the dependencies ===


[[File:git_logo.png]]
[[File:git_logo.png]]
Line 92: Line 114:
|}
|}


=== Ubuntu ===
==== Ubuntu ====


<pre>
<pre>
Line 109: Line 131:
</pre>
</pre>


=== Windows ===
==== Other Linux distributions ====
 
Ubuntu derivatives should be able to use the same instructions above.
 
Other distributions, e.g. RPM-based, will not be able use the myriadrf/drivers PPA, and O/S packaged dependencies may be different versions and use slightly different naming.
However, it should be possible to use the above as a guide and it is likely that, at the most, SoapySDR would have to be built from [https://github.com/pothosware/SoapySDR source].
 
==== Windows ====


Users building LimeSuite on windows will need a recent visual studio compiler, preferable 2015.
Users building LimeSuite on windows will need a recent visual studio compiler, preferable 2015.
Line 120: Line 149:
** It may be easier to download "cy_ssusbsuite_*.zip" rather than the full SDK
** It may be easier to download "cy_ssusbsuite_*.zip" rather than the full SDK


== Building LimeSuite ==
=== Building LimeSuite ===


[[File:Build_logo.png]]
[[File:Build_logo.png]]


=== Build on unix ===
==== Unix makefiles ====


The following commands will clone the LimeSuite repository,  configure the project using CMake, build the project, and install it.  
The following commands will clone the LimeSuite repository,  configure the project using CMake, build the project, and install it.  
Line 132: Line 161:
git clone https://github.com/myriadrf/LimeSuite.git
git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
cd LimeSuite
git checkout stable
mkdir builddir && cd builddir
mkdir builddir && cd builddir
cmake ../
cmake ../
make -j4
make -j4
sudo make install
sudo make install
sudo ldconfig
</pre>
</pre>


Line 142: Line 173:


<pre>
<pre>
cd LimeSuite/
cd LimeSuite/udev-rules
udev-rules
sudo ./install.sh
sudo ./install.sh
</pre>
</pre>


=== Build on windows ===
==== Visual Studio ====


[[File:Visual_studio_logo.png]]
[[File:Visual_studio_logo.png]]
Line 157: Line 187:
</pre>
</pre>


Now use cmake-gui or cmake command line to configure the project and to generate a visual studio project solution.
Complete '''command line example''' with cmake for MSVC 2015 64-bit (your dependency directories may vary):
The following settings are an example on how to specify the dependencies (cmake command line or gui),
<pre>
your installation directories may vary:
cd LimeSuite
git checkout stable
mkdir builddir
cd builddir
 
cmake ../ -G "Visual Studio 14 2015 Win64" ^
    -DWX_ROOT_DIR=C:/wxWidgets-3.1.0 ^
    -DwxWidgets_ROOT_DIR=C:/wxWidgets-3.1.0 ^
    -DwxWidgets_LIB_DIR=C:/wxWidgets-3.1.0/lib/vc140_x64_lib ^
    -DFX3_SDK_PATH="C:/EZ-USB FX3 SDK/1.3" ^
    -DSoapySDR_DIR=C:/PothosSDR
 
cmake --build . --config Release


<pre>
#installs files to CMAKE_INSTALL_PREFIX
-DWX_ROOT_DIR=C:/wxWidgets-3.1.0
cmake --build . --config Release --target install
-DwxWidgets_ROOT_DIR=C:/wxWidgets-3.1.0
-DwxWidgets_LIB_DIR=C:/wxWidgets-3.1.0/lib/vc140_x64_lib
-DFX3_SDK_PATH=C:/EZ-USB FX3 SDK/1.3
-DSoapySDR_DIR=C:/PothosSDR
</pre>
</pre>


Build the generated visual studio project solution.
'''Or use cmake-gui''' to configure and generate the visual studio project solution.
After generating, open the Visual Studio solution file and run the build target.


== LimeSDR notes ==
[[File:lime_suite_windows_cmake_gui.png]]


The following post-install tasks are designed to get users up and running with the LimeSDR
== Hardware notes ==
by making sure that LimeSuite utilities can find the LimeSDR attached to your system
and that firmware and FPGA images are up-to-date.


=== CyUSB driver (windows) ===
=== LimeSDR-USB ===
 
The following post-install tasks are designed to get users up and running with the LimeSDR USB 3.0 device.
Lets check that any necessary drivers are installed and that the LimeSuite utilities can find the LimeSDR attached to your system.
We will also cover using the LMS7 GUI to update the firmware and FPGA images stored in the board's flash memory.
 
[[File:limesdr-8_jpg_project-body_cropped.jpg]]
 
==== USB driver ====


'''Windows only''', OSX and Linux users do not need to install drivers for USB support.
'''Windows only''', OSX and Linux users do not need to install drivers for USB support.
Download the CyUSB driver: The driver is part of the [http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit cyusb suite],
Download the [https://github.com/myriadrf/Windows-drivers/archive/master.zip LimeSDR USB driver] and unzip the package.
however we also maintain a [http://downloads.myriadrf.org/project/limesdr/ zip of just the drivers] to make it easy on users.
LimeSDR should appear as an unrecognised device in the device manager.
LimeSDR should appear as an unrecognised device in the device manager.
Use the device properties dialogue to specify the path to the drivers directory (its the directory that contains CyUSB.chm).
Use the device properties dialogue to specify the path to the LimeSDR USB drivers directory.
Once the proper directory is specified, the driver installation should complete successfully.
Once the proper directory is specified, the driver installation should complete successfully.


=== Locating the LimeSDR ===
[[File:limesdr_windows_driver_install.png]]


From the command line run LimeUtil to get a list of available devices:
==== Device enumeration ====
 
Open the '''lms7suite GUI''' and check for the LimeSDR in the '''connection settings dialogue''':
 
[[File:lms7gui_connection_settings.png]]
 
From the '''command line run LimeUtil''' to get a list of available devices:
<pre>
<pre>
#make sure that STREAM is one of the available connections
LimeUtil --info
#now run LimeUtil with --find to locate devices on the system
LimeUtil --find
LimeUtil --find


Line 196: Line 250:
</pre>
</pre>


Similarly, if users will be working with SDR ecosystem applications,
Similarly, when working with '''SDR ecosystem applications''',
its also a good check to verify that the LimeSDR can be found by SoapySDR:
its also good to verify that the LimeSDR can be found by '''SoapySDRUtil''':


<pre>
<pre>
Line 203: Line 257:
SoapySDRUtil --info
SoapySDRUtil --info


SoapySDRUtil --find
#now run SoapySDRUtil with --find to locate devices on the system
SoapySDRUtil --find="driver=lime"


#Example print output from LimeUtil
#Example print output from LimeUtil
Line 214: Line 269:
</pre>
</pre>


* TODO  lms7suite GUI screenshot
==== Flashing images ====
 
You may need to update the FX3 firmware or FPGA bitstream stored in the flash memory of the LimeSDR.
Using the programming dialogue, LimeSuiteGUI can automatically download and flash the correct images on the LimeSDR.
 
[[File:lms7gui_program_flash_automatic.png]]


=== Updating firmware/FPGA ===
* Users may also obtain the image binaries manually by visiting [http://downloads.myriadrf.org/project/limesuite/ downloads.myriadrf.org]


* Download images here: http://downloads.myriadrf.org/project/limesdr/LimeSDR_USB_v1.1/
{{Community}}
* TODO screenshots with lms7suite GUI

Revision as of 03:13, 3 January 2019

Lime Suite is a collection of software supporting several hardware platforms including the LimeSDR, drivers for the LMS7002M transceiver RFIC, and other tools for developing with LMS7-based hardware. Installing the Lime Suite enables many SDR applications such as GQRX to work with supported hardware through the bundled SoapySDR support module.

This wiki page will guide users through available binary packages, obtaining dependencies, compiling the suite, basic testing with hardware, and upgrading firmware.

Please note that you should either install Lime Suite via a pre-built package/installer (2) or build it from source (3) and not do both.

Supported hardware

Installers and packages

We have support for a select number of platforms and package managers. If your platform isn't supported, follow the next sections for getting the dependencies and building LimeSuite.

Note: either install Lime Suite via a package/installer or source code and do not do both!

Ubuntu PPA

The drivers PPA for Ubuntu has a recent build of LimeSuite:

sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
sudo apt-get install soapysdr-tools soapysdr-module-lms7

#soapysdr-tools use to be called just soapysdr on older packages
sudo apt-get install soapysdr soapysdr-module-lms7

We currently package for Ubuntu releases:

  • 16.04
  • 18.04
  • 18.10

Windows

LimeSuite is bundled with the PothoSDR development environment to use supported hardware in an ecosystem of SDR applications like GQRX, Pothos, CubicSDR, and GNU Radio.

OSX homebrew

The pothosware homebrew tap has a build recipe for LimeSuite. Also checkout the dholm homebrew tap for other SDR related software. To install LimeSuite:

brew tap pothosware/homebrew-pothos
brew update
brew install limesuite

Building from source

Note: either install Lime Suite via a package/installer or source code and do not do both!

Get the dependencies

Before building LimeSuite from source, several dependencies must be installed. However, the dependencies required change based on how much of the suite will be used. LimeSuite will automatically try and build all components that it can satisfy the dependencies for. The following table is a guide to the the requirements for various components.

Component Dependencies Notes
Build system Git & CMake
Core library sqlite3 Has embedded copy for windows
LMS7 GUI wx widgets & OpenGL Has embedded GL for windows
LimeSDR libusb 1.0/CyAPI Use CyAPI for windows
NovenaRF7 i2c and spi dev Linux only device
SoapyLMS7 SoapySDR SDR app ecosystem support

Ubuntu

#packages for soapysdr available at myriadrf PPA
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update

#install core library and build dependencies
sudo apt-get install git g++ cmake libsqlite3-dev

#install hardware support dependencies
sudo apt-get install libsoapysdr-dev libi2c-dev libusb-1.0-0-dev

#install graphics dependencies
sudo apt-get install libwxgtk3.0-dev freeglut3-dev

Other Linux distributions

Ubuntu derivatives should be able to use the same instructions above.

Other distributions, e.g. RPM-based, will not be able use the myriadrf/drivers PPA, and O/S packaged dependencies may be different versions and use slightly different naming. However, it should be possible to use the above as a guide and it is likely that, at the most, SoapySDR would have to be built from source.

Windows

Users building LimeSuite on windows will need a recent visual studio compiler, preferable 2015. Other dependencies can be obtained from the following download links:

Building LimeSuite

Unix makefiles

The following commands will clone the LimeSuite repository, configure the project using CMake, build the project, and install it. The output of the cmake command will show enabled and disabled components. Pay careful attention to this before building with make.

git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
git checkout stable
mkdir builddir && cd builddir
cmake ../
make -j4
sudo make install
sudo ldconfig

Linux-only post install step: Install the udev rules to enable non-root users to access usb-based devices like the LimeSDR:

cd LimeSuite/udev-rules
sudo ./install.sh

Visual Studio

After installing the dependencies, open a cmd prompt and run the following command to clone the repository:

git clone https://github.com/myriadrf/LimeSuite.git

Complete command line example with cmake for MSVC 2015 64-bit (your dependency directories may vary):

cd LimeSuite
git checkout stable
mkdir builddir
cd builddir

cmake ../ -G "Visual Studio 14 2015 Win64" ^
    -DWX_ROOT_DIR=C:/wxWidgets-3.1.0 ^
    -DwxWidgets_ROOT_DIR=C:/wxWidgets-3.1.0 ^
    -DwxWidgets_LIB_DIR=C:/wxWidgets-3.1.0/lib/vc140_x64_lib ^
    -DFX3_SDK_PATH="C:/EZ-USB FX3 SDK/1.3" ^
    -DSoapySDR_DIR=C:/PothosSDR

cmake --build . --config Release

#installs files to CMAKE_INSTALL_PREFIX
cmake --build . --config Release --target install

Or use cmake-gui to configure and generate the visual studio project solution. After generating, open the Visual Studio solution file and run the build target.

Hardware notes

LimeSDR-USB

The following post-install tasks are designed to get users up and running with the LimeSDR USB 3.0 device. Lets check that any necessary drivers are installed and that the LimeSuite utilities can find the LimeSDR attached to your system. We will also cover using the LMS7 GUI to update the firmware and FPGA images stored in the board's flash memory.

USB driver

Windows only, OSX and Linux users do not need to install drivers for USB support. Download the LimeSDR USB driver and unzip the package. LimeSDR should appear as an unrecognised device in the device manager. Use the device properties dialogue to specify the path to the LimeSDR USB drivers directory. Once the proper directory is specified, the driver installation should complete successfully.

Device enumeration

Open the lms7suite GUI and check for the LimeSDR in the connection settings dialogue:

From the command line run LimeUtil to get a list of available devices:

#make sure that STREAM is one of the available connections
LimeUtil --info

#now run LimeUtil with --find to locate devices on the system
LimeUtil --find

#Example print output from LimeUtil
  * [module=STREAM, media=USB, name=USB 3.0 (LimeSDR-USB), addr=241:1204]

Similarly, when working with SDR ecosystem applications, its also good to verify that the LimeSDR can be found by SoapySDRUtil:

#make sure that lime is one of the available factories 
SoapySDRUtil --info

#now run SoapySDRUtil with --find to locate devices on the system
SoapySDRUtil --find="driver=lime"

#Example print output from LimeUtil
Found device 0
  addr = 241:1204
  driver = lime
  media = USB
  module = STREAM
  name = USB 3.0 (LimeSDR-USB)

Flashing images

You may need to update the FX3 firmware or FPGA bitstream stored in the flash memory of the LimeSDR. Using the programming dialogue, LimeSuiteGUI can automatically download and flash the correct images on the LimeSDR.