✅ Good
LimeSDR¶
LimeSDR — потужний відкритий SDR трансивер з повним дуплексом та 12-бітним АЦП. Ідеальний для srsRAN та інших LTE проектів.
Чому LimeSDR важливий для UMTC?
flowchart TB
subgraph lime["LimeSDR"]
ANT_RX["📡 RX Antenna"]
ANT_TX["📡 TX Antenna"]
LMS["LMS7002M<br/>RF Transceiver"]
FPGA["FPGA<br/>Altera MAX 10"]
USB["USB 3.0"]
end
subgraph pc["Комп'ютер"]
LIME_SUITE["LimeSuite"]
GNURADIO["GNU Radio"]
SRSRAN["srsRAN"]
end
ANT_RX --> LMS
LMS --> ANT_TX
LMS <--> FPGA
FPGA <--> USB
USB <--> LIME_SUITE
USB <--> GNURADIO
USB <--> SRSRAN
style lime fill:#d1fae5Огляд¶
Версії¶
| Модель | Частоти | Ширина | TX/RX | Ціна |
|---|---|---|---|---|
| LimeSDR USB | 100 кГц - 3.8 ГГц | 61.44 МГц | 2x2 | $300 |
| LimeSDR Mini | 10 МГц - 3.5 ГГц | 30.72 МГц | 1x1 | $150 |
| LimeSDR Mini 2.0 | 10 МГц - 3.5 ГГц | 40 МГц | 1x1 | $200 |
Характеристики LimeSDR Mini¶
| Параметр | Значення |
|---|---|
| Чіп | LMS7002M |
| ADC/DAC | 12 біт |
| Потужність TX | до 10 dBm |
| Інтерфейс | USB 3.0 |
| FPGA | Altera MAX 10 |
| Режим | Повний дуплекс |
Переваги¶
- 12-біт (vs 8-біт у HackRF)
- Full duplex
- 2x2 MIMO (USB версія)
- Широка підтримка софту
- Відкритий hardware
Встановлення¶
Linux¶
# PPA для Ubuntu
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt update
sudo apt install limesuite limesuite-udev
# Або з джерел
git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig
Перевірка¶
# Виявлення пристрою
LimeUtil --find
# Інформація
LimeUtil --info
# Тест
LimeQuickTest
Калібрування¶
# GUI калібрування
LimeSuiteGUI
# Або CLI
LimeUtil --make --force
LimeSuite GUI¶
Запуск¶
LimeSuiteGUI
Основні вкладки¶
| Вкладка | Функція |
|---|---|
| Modules | Вибір чіпа |
| TRX Board | Загальні налаштування |
| SXT/SXR | Частота TX/RX |
| TxTSP/RxTSP | Цифрова обробка |
| TBB/RBB | Аналогові фільтри |
| TRF/RFE | RF frontend |
| FFT viewer | Спектр |
Базове налаштування¶
1. Options → Connection Settings → Connect
2. Modules → Activate channel A/B
3. SXR → Frequency → 100 MHz
4. RFE → Enable
5. Chip → Calibrate
GNU Radio¶
Встановлення gr-limesdr¶
git clone https://github.com/myriadrf/gr-limesdr
cd gr-limesdr
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig
Приклад flowgraph¶
#!/usr/bin/env python3
from gnuradio import gr, blocks, analog
import limesdr
class lime_rx(gr.top_block):
def __init__(self):
gr.top_block.__init__(self)
# LimeSDR джерело
self.source = limesdr.source(
device_number=0,
device_serial='',
filename=''
)
self.source.set_sample_rate(2e6)
self.source.set_center_freq(100e6)
self.source.set_gain(30)
# FM демодулятор
self.demod = analog.wfm_rcv(
quad_rate=2e6,
audio_decimation=10
)
# Аудіо вихід
self.sink = audio.sink(48000)
self.connect(self.source, self.demod, self.sink)
Soapy SDR¶
Встановлення¶
sudo apt install soapysdr-module-lms7
Використання¶
import SoapySDR
# Виявлення
results = SoapySDR.Device.enumerate()
print(results)
# Підключення
sdr = SoapySDR.Device(dict(driver="lime"))
# Налаштування
sdr.setSampleRate(SoapySDR.SOAPY_SDR_RX, 0, 2e6)
sdr.setFrequency(SoapySDR.SOAPY_SDR_RX, 0, 100e6)
sdr.setGain(SoapySDR.SOAPY_SDR_RX, 0, 30)
# Прийом
rxStream = sdr.setupStream(SoapySDR.SOAPY_SDR_RX, SoapySDR.SOAPY_SDR_CF32)
sdr.activateStream(rxStream)
buff = np.array([0]*1024, np.complex64)
sr = sdr.readStream(rxStream, [buff], len(buff))
Практичні проекти¶
LTE базова станція (srsRAN)¶
# Встановлення srsRAN
sudo apt install srsran
# Конфігурація enb.conf
[rf]
device_name = lime
device_args = rxant=LNAW,txant=BAND2
# Запуск
sudo srsenb enb.conf
GSM (Osmocom)¶
# osmo-trx-lms
sudo apt install osmo-trx-lms
# Запуск
osmo-trx-lms -i 127.0.0.1
LoRa gateway¶
# Встановлення
git clone https://github.com/myriadrf/LoRa-SDR
# Налаштування для LimeSDR
DVB-T передавач¶
gnuradio-companion → DVB-T TX flowgraph
Частота: UHF TV (тільки для тестів!)
Модуляція: OFDM
MIMO (LimeSDR USB)¶
Налаштування¶
# Два канали одночасно
sdr.setSampleRate(SoapySDR.SOAPY_SDR_RX, 0, 10e6) # Channel A
sdr.setSampleRate(SoapySDR.SOAPY_SDR_RX, 1, 10e6) # Channel B
sdr.setFrequency(SoapySDR.SOAPY_SDR_RX, 0, 2.4e9)
sdr.setFrequency(SoapySDR.SOAPY_SDR_RX, 1, 2.4e9)
Застосування¶
- Beamforming
- Direction finding
- Diversity reception
- MIMO дослідження
Оптимізація¶
Calibration¶
# Повне калібрування
LimeSuiteGUI → Chip → Calibrate All
# Або CLI
LimeUtil --cal
Sample Rate¶
USB 3.0: до 61.44 MSPS
USB 2.0: до 10 MSPS
Рекомендовано:
- Тестування: 2-10 MSPS
- Продакшн: 20-40 MSPS
Температура¶
- Активне охолодження при TX
- Моніторинг через LimeSuiteGUI
- Thermal throttling при перегріві
Troubleshooting¶
Пристрій не виявляється¶
# Перевірити USB
lsusb | grep 0403
# Перевірити firmware
LimeUtil --update
Низька продуктивність¶
1. Використовувати USB 3.0
2. Зменшити sample rate
3. Закрити інші програми
4. Перевірити охолодження
Помилки калібрування¶
1. Перевірити антену
2. Відключити зовнішні сигнали
3. Перезапустити пристрій
4. Оновити firmware
TX не працює¶
1. Перевірити ліцензію!
2. Увімкнути PA
3. Перевірити частоту
4. Калібрувати TX
Пов'язані теми¶
- SDR Overview — огляд SDR пристроїв
- HackRF — альтернативний SDR
- USRP — професійна SDR платформа
- srsRAN — LTE стек на SDR
- srsENB — налаштування eNodeB
Шлях: sdr/limesdr.md