Project

General

Profile

Actions

LimeSDR Family » History » Revision 18

« Previous | Revision 18/52 (diff) | Next »
pespin, 12/05/2017 03:27 PM


LimeSDR

The LimeSDR is a low-cost SDR board featuring the Lime Microsystems LMS7002 RF chip.

Key characteristics include:
  • RF Transceiver: Lime Microsystems LMS7002M MIMO FPRF
  • FPGA: Altera Cyclone IV EP4CE40F23 – also compatible with EP4CE30F23
  • Memory: 256 MBytes DDR2 SDRAM
  • USB 3.0 controller: Cypress USB 3.0 CYUSB3014-BZXC
  • Oscillator: Rakon RPT7050A @ 30.72MHz
  • Continuous frequency range: 100 kHz – 3.8 GHz
  • Bandwidth: 61.44 MHz
  • RF connection: 10 U.FL connectors (6 RX, 4 TX)
  • Power Output (CW): up to 10 dBm
  • Multiplexing: 2×2 MIMO
  • Power: micro USB connector or optional external power supply
  • Status indicators: programmable LEDs
  • Dimensions: 100 mm x 60 mm

RF Output Power

TBD

Clock

The on-board clock is a 250ppb VCTCXO. GSM strictly requires 30ppb, but 250ppb should be sufficient for laboratory use.

Clock Calibration

TBD

Using external clock reference

TBD

OsmoTRX on LimeSDR

In terms of OsmoTRX support, you will find a relatively complex driver stack consisting of:
  • LimeSuite containing the actual drivers and utilities for LimeSDR (version 17.09 or later required)
    • for LimeSDR-mini, you will need 17.10 or later
  • SoapySDR as middleware that wraps LimeSuite
  • SoapyUHD as plug-in exposing SoapySDR devices to UHD
  • UHD as the driver interface below OsmoTRX

You will need to observe the following dependencies when building the above:
  1. SoapyUHD depends on SoapySDR
  2. LimeSuite depends on SoapySDR.

Verifying the driver stack

You can ensure that LimeSuite recognizes your device using the LimeUtil part of LimeSuite:

$ LimeUtil --find
  * [LimeSDR-USB, media=USB 3.0, module=STREAM, addr=1d50:6108, serial=0009060B00xxyyzz]

You can ensure that SoapySDR and LimeSuite work together as expected using the SoapySDRUtil part of SoapySDR:

$ ./SoapySDRUtil --find
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

linux; GNU C++ version 6.3.0 20170221; Boost_106200; UHD_003.009.005-0-unknown

Found device 0
  addr = 1d50:6108
  driver = lime
  label = LimeSDR-USB [USB 3.0] 9060B00462B1C
  media = USB 3.0
  module = STREAM
  name = LimeSDR-USB
  serial = 0009060B00xxyyzz

STEP BY STEP GUIDE TO INSTALL OSMO_TRX WITH LimeSDR from source (using ubuntu 16.04)

---Install LimeSuite, UHD and SoapyUHD 

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

---Install LimeSuite

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

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

Type “LimeSuiteGUI” on terminal to check GUI is running

---Install UHD 
(with all dependency)

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq

git clone https://github.com/EttusResearch/uhd
cd uhd

git tag -l
...
release_003_009_004
release_003_009_005
release_003_010_000_000
# Example: For UHD 3.10.000.000: 
  git checkout release_003_010_000_000 (get the latest if fine)

cd host
mkdir build
cd build 
cmake ../
make
sudo make install
sudo ldconfig

export LD_LIBRARY_PATH=/usr/local/lib

try run command to find LimeSDR :
uhd_find_devices

---Install SoapySDR and SoapyUHD 

git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

git clone https://github.com/pothosware/SoapyUHD
cd SoapyUHD
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

---NOW BUILD OSMO-TRX 

mkdir osmo
cd osmo
git clone https://github.com/osmocom/osmo-trx.git
cd osmo-trx
autoreconf -fi
./configure
make -j5
make check
sudo make install
sudo ldconfig

run on terminal: (test and see its connect with SoapyUHD and UHD)

osmo-trx

Troubleshooting

Firmware upgrade

If you see UHD warnings regarding version mismath, follow the steps as explained in the same output, basically run "LimeUtil --update". It will download the latest firmware into $HOME/.local/share/LimeSuite/images/ and flash the device.

-- Make connection: 'LimeSDR-USB [USB 2.0] 9060B00471827'

UHD Warning:
    Firmware version mismatch!
      Expected firmware version 4, but found version 3
      Follow the FW and FPGA upgrade instructions:
      http://wiki.myriadrf.org/Lime_Suite#Flashing_images
      Or run update on the command line: LimeUtil --update

UHD Warning:
    Gateware version mismatch!
      Expected gateware version 2, revision 12
      But found version 2, revision 8
      Follow the FW and FPGA upgrade instructions:
      http://wiki.myriadrf.org/Lime_Suite#Flashing_images
      Or run update on the command line: LimeUtil --update
-- Reference clock 30.720 MHz
-- Device name: LimeSDR-USB
-- Reference: 30.72 MHz
-- Init LMS7002M(0)
-- Ver=7, Rev=1, Mask=1
-- LMS7002M calibration values caching Disable

Channel setting failed

If at osmo-trx startup time UHD fails with an alert similar to the one below, it means you forgot to specify the correct samples-per-symbol for both Tx and Rx, which in the case of LimeSDR is 4.

ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/UHDDevice.cpp:642:open: Channel setting failed - map::at
ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/UHDDevice.cpp:642:open: Channel setting failed - map::at
ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/osmo-trx.cpp:489:main: Failed to create radio device

ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/osmo-trx.cpp:489:main: Failed to create radio device
Shutting down transceiver...

You need to pass the correct parameters to osmo-trx:
  • -s Tx samples-per-symbol (1 or 4)
  • -b Rx samples-per-symbol (1 or 4)
    osmo-trx -s 4 -b 4
    
Files (4)

Updated by pespin over 6 years ago · 18 revisions

Add picture from clipboard (Maximum size: 48.8 MB)