LimeSDR Family » History » Version 28
laforge, 08/17/2018 02:18 PM
remove paragraph about SoapySDR, as it's no longer needed
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 | |||
103 | 18 | pespin | h2. Troubleshooting |
104 | |||
105 | h3. Firmware upgrade |
||
106 | |||
107 | 25 | laforge | If you see UHD warnings regarding version mismatch, 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. |
108 | 18 | pespin | <pre> |
109 | -- Make connection: 'LimeSDR-USB [USB 2.0] 9060B00471827' |
||
110 | |||
111 | UHD Warning: |
||
112 | Firmware version mismatch! |
||
113 | Expected firmware version 4, but found version 3 |
||
114 | Follow the FW and FPGA upgrade instructions: |
||
115 | http://wiki.myriadrf.org/Lime_Suite#Flashing_images |
||
116 | Or run update on the command line: LimeUtil --update |
||
117 | |||
118 | UHD Warning: |
||
119 | Gateware version mismatch! |
||
120 | Expected gateware version 2, revision 12 |
||
121 | But found version 2, revision 8 |
||
122 | Follow the FW and FPGA upgrade instructions: |
||
123 | http://wiki.myriadrf.org/Lime_Suite#Flashing_images |
||
124 | Or run update on the command line: LimeUtil --update |
||
125 | -- Reference clock 30.720 MHz |
||
126 | -- Device name: LimeSDR-USB |
||
127 | -- Reference: 30.72 MHz |
||
128 | -- Init LMS7002M(0) |
||
129 | -- Ver=7, Rev=1, Mask=1 |
||
130 | -- LMS7002M calibration values caching Disable |
||
131 | </pre> |
||
132 | |||
133 | h3. Channel setting failed |
||
134 | |||
135 | 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. |
||
136 | <pre> |
||
137 | ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/UHDDevice.cpp:642:open: Channel setting failed - map::at |
||
138 | ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/UHDDevice.cpp:642:open: Channel setting failed - map::at |
||
139 | ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/osmo-trx.cpp:489:main: Failed to create radio device |
||
140 | |||
141 | ALERT 140046942525312 15:50:41.0 /home/pespin/dev/sysmocom/git/osmo-trx/Transceiver52M/osmo-trx.cpp:489:main: Failed to create radio device |
||
142 | Shutting down transceiver... |
||
143 | </pre> |
||
144 | |||
145 | You need to pass the correct parameters to osmo-trx: |
||
146 | * -s Tx samples-per-symbol (1 or 4) |
||
147 | * -b Rx samples-per-symbol (1 or 4) |
||
148 | <pre> |
||
149 | osmo-trx -s 4 -b 4 |
||
150 | </pre> |
||
151 | 27 | laforge | |
152 | h2. Other LimeSDR related information |
||
153 | |||
154 | {{child_pages()}} |