Project

General

Profile

LimeSDR Family » History » Version 20

laforge, 04/28/2018 01:16 PM
add limesdr pic

1 1 laforge
{{>toc}}
2
3
h1. LimeSDR
4
5 4 laforge
The "LimeSDR":https://myriadrf.org/projects/limesdr/ is a low-cost SDR board featuring the Lime Microsystems LMS7002 RF chip.
6
7 20 laforge
!{width:700px}LimeSDR_transp_3.jpg!
8
9 4 laforge
Key characteristics include:
10
* RF Transceiver: Lime Microsystems LMS7002M MIMO FPRF
11
* FPGA: Altera Cyclone IV EP4CE40F23 – also compatible with EP4CE30F23
12 6 ahuemer
* Memory: 256 MBytes DDR2 SDRAM
13 4 laforge
* USB 3.0 controller: Cypress USB 3.0 CYUSB3014-BZXC
14
* Oscillator: Rakon RPT7050A @ 30.72MHz
15
* Continuous frequency range: 100 kHz – 3.8 GHz
16
* Bandwidth: 61.44 MHz
17
* RF connection: 10 U.FL connectors (6 RX, 4 TX)
18
* Power Output (CW): up to 10 dBm
19
* Multiplexing: 2×2 MIMO
20
* Power: micro USB connector or optional external power supply
21
* Status indicators: programmable LEDs
22
* Dimensions: 100 mm x 60 mm
23 1 laforge
24 3 laforge
h2. RF Output Power
25
26
TBD
27 1 laforge
28
h2. Clock
29
30
The on-board clock is a 250ppb VCTCXO.  GSM strictly requires 30ppb, but 250ppb _should_  be sufficient for laboratory use.
31
32
h3. Clock Calibration
33
34
TBD
35
36
h3. Using external clock reference
37
38
TBD
39
40 19 pespin
h1. LimeSDR Mini
41
42
The "LimeSDR Mini":https://myriadrf.org/projects/limesdr/ is a smaller, less expensive version of the original LimeSDR.
43
44
Key characteristics include:
45
* RF Transceiver: Lime Microsystems LMS7002M FPRF
46
* FPGA: Altera MAX 10 (10M16SAU169C8G)
47
* EEPROM memory: 2 x 128 KB for RF transciever MCU firmware and data
48
* Flash memory: 1 x 4 MB flash memory for data
49
* USB 3.0 controller: FTDI FT601
50
* Rakon 30.72 MHz VCTCXO
51
* Continuous frequency range: 10 MHz – 3.5 GHz
52
* Bandwidth: 30.72 MHz
53
* RF Connection: 2 x SMA connectors (each can be switched between high and low frequency bands) + 1x U.FL REF CLK
54
* Power Output (CW): up to 10 dBm
55
* Dimensions: 69 mm x 31.4 mm
56
57
h2. RF Output Power
58
59
TBD
60
61
h1. OsmoTRX on LimeSDR
62 1 laforge
63 16 pespin
In terms of OsmoTRX support, you will find a relatively complex driver stack consisting of:
64 15 laforge
* "LimeSuite":https://github.com/myriadrf/LimeSuite.git containing the actual drivers and utilities for LimeSDR (*version 17.09 or later required*)
65 17 laforge
** for LimeSDR-mini, you will need 17.10 or later
66 1 laforge
* "SoapySDR":https://github.com/pothosware/SoapySDR.git as middleware that wraps LimeSuite
67
* "SoapyUHD":https://github.com/pothosware/SoapyUHD.git as plug-in exposing SoapySDR devices to UHD
68
* UHD as the driver interface below OsmoTRX
69
70 5 laforge
{{graphviz_link()
71
digraph G{
72
  rankdir = LR;
73
  LimeSDR -> LimeSuite [label = "USB/libusb"];
74
  LimeSuite -> SoapySDR;
75
  SoapySDR -> UHD [label = "SoapyUHD"];
76
  UHD -> OsmoTRX [label = "libuhd"];
77
}
78
}}
79
80
81 1 laforge
You will need to observe the following dependencies when building the above:
82
# SoapyUHD depends on SoapySDR
83
# LimeSuite depends on SoapySDR.
84
85
h3. Verifying the driver stack
86
87
You can ensure that LimeSuite recognizes your device using the *LimeUtil* part of LimeSuite:
88
89
<pre>
90 12 laforge
$ LimeUtil --find
91 1 laforge
  * [LimeSDR-USB, media=USB 3.0, module=STREAM, addr=1d50:6108, serial=0009060B00xxyyzz]
92
</pre>
93
94
You can ensure that SoapySDR and LimeSuite work together as expected using the *SoapySDRUtil* part of SoapySDR:
95
96
<pre>
97 12 laforge
$ ./SoapySDRUtil --find
98 1 laforge
######################################################
99
## Soapy SDR -- the SDR abstraction library
100
######################################################
101
102
linux; GNU C++ version 6.3.0 20170221; Boost_106200; UHD_003.009.005-0-unknown
103
104
Found device 0
105
  addr = 1d50:6108
106
  driver = lime
107
  label = LimeSDR-USB [USB 3.0] 9060B00462B1C
108
  media = USB 3.0
109
  module = STREAM
110
  name = LimeSDR-USB
111
  serial = 0009060B00xxyyzz
112
</pre>
113
114 13 duo_kali
h2. STEP BY STEP GUIDE TO INSTALL OSMO_TRX WITH LimeSDR from source (using ubuntu 16.04)
115 7 duo_kali
116 9 duo_kali
<pre>
117 7 duo_kali
---Install LimeSuite, UHD and SoapyUHD 
118
119
sudo add-apt-repository -y ppa:myriadrf/drivers
120
sudo apt-get update
121
122
#install core library and build dependencies
123
sudo apt-get install git g++ cmake libsqlite3-dev
124
125
#install hardware support dependencies
126
sudo apt-get install libsoapysdr-dev libi2c-dev libusb-1.0-0-dev
127
128
#install graphics dependencies
129
sudo apt-get install libwxgtk3.0-dev freeglut3-dev
130
131
---Install LimeSuite
132
133
git clone https://github.com/myriadrf/LimeSuite.git
134
cd LimeSuite
135
mkdir builddir && cd builddir
136
cmake ../
137
make -j4
138
sudo make install
139
sudo ldconfig
140
141
cd LimeSuite/udev-rules
142
sudo ./install.sh
143
144
Type “LimeSuiteGUI” on terminal to check GUI is running
145
146 8 duo_kali
---Install UHD 
147 7 duo_kali
(with all dependency)
148
149
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
150
151
git clone https://github.com/EttusResearch/uhd
152
cd uhd
153
154
git tag -l
155
...
156
release_003_009_004
157
release_003_009_005
158
release_003_010_000_000
159
# Example: For UHD 3.10.000.000: 
160
  git checkout release_003_010_000_000 (get the latest if fine)
161
162
cd host
163
mkdir build
164
cd build 
165
cmake ../
166
make
167
sudo make install
168
sudo ldconfig
169
170
export LD_LIBRARY_PATH=/usr/local/lib
171
172
try run command to find LimeSDR :
173
uhd_find_devices
174
175
176 1 laforge
177 7 duo_kali
---Install SoapySDR and SoapyUHD 
178
179
git clone https://github.com/pothosware/SoapySDR.git
180
cd SoapySDR
181 12 laforge
mkdir build
182 7 duo_kali
cd build
183
cmake ..
184 1 laforge
make
185 7 duo_kali
sudo make install
186
sudo ldconfig
187
188
git clone https://github.com/pothosware/SoapyUHD
189
cd SoapyUHD
190 12 laforge
mkdir build
191 7 duo_kali
cd build
192
cmake ..
193
make
194
sudo make install
195
sudo ldconfig
196
197 14 duo_kali
---NOW BUILD OSMO-TRX 
198 1 laforge
199 14 duo_kali
mkdir osmo
200 7 duo_kali
cd osmo
201
git clone https://github.com/osmocom/osmo-trx.git
202
cd osmo-trx
203
autoreconf -fi
204
./configure
205
make -j5
206
make check
207
sudo make install
208
sudo ldconfig
209
210
run on terminal: (test and see its connect with SoapyUHD and UHD)
211
212 1 laforge
osmo-trx
213 18 pespin
214
</pre>
215
216
h2. Troubleshooting
217
218
h3. Firmware upgrade
219
220
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.
221
<pre>
222
-- Make connection: 'LimeSDR-USB [USB 2.0] 9060B00471827'
223
224
UHD Warning:
225
    Firmware version mismatch!
226
      Expected firmware version 4, but found version 3
227
      Follow the FW and FPGA upgrade instructions:
228
      http://wiki.myriadrf.org/Lime_Suite#Flashing_images
229
      Or run update on the command line: LimeUtil --update
230
231
UHD Warning:
232
    Gateware version mismatch!
233
      Expected gateware version 2, revision 12
234
      But found version 2, revision 8
235
      Follow the FW and FPGA upgrade instructions:
236
      http://wiki.myriadrf.org/Lime_Suite#Flashing_images
237
      Or run update on the command line: LimeUtil --update
238
-- Reference clock 30.720 MHz
239
-- Device name: LimeSDR-USB
240
-- Reference: 30.72 MHz
241
-- Init LMS7002M(0)
242
-- Ver=7, Rev=1, Mask=1
243
-- LMS7002M calibration values caching Disable
244
</pre>
245
246
247
h3. Channel setting failed
248
249
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.
250
<pre>
251
ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/UHDDevice.cpp:642:open: Channel setting failed - map::at
252
ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/UHDDevice.cpp:642:open: Channel setting failed - map::at
253
ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/osmo-trx.cpp:489:main: Failed to create radio device
254
255
ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/osmo-trx.cpp:489:main: Failed to create radio device
256
Shutting down transceiver...
257
</pre>
258
259
You need to pass the correct parameters to osmo-trx:
260
* -s    Tx samples-per-symbol (1 or 4)
261
* -b    Rx samples-per-symbol (1 or 4)
262
<pre>
263
osmo-trx -s 4 -b 4
264
</pre>
Add picture from clipboard (Maximum size: 48.8 MB)