Project

General

Profile

LimeSDR Family » History » Version 22

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