RTL-SDR

Тестирование Dreamcatcher от Outernet: ARM‑ПК на базе Linux с встроенным RTL‑SDR

На прошлой неделе мы опубликовали новую единицу Dreamcatcher от Outernet, которая представляет собой RTL-SDR + L‑диапазонный LNA + вычислительную плату, все на одной печатной плате. Dreamcatcher поставляется с новым активным керамическим патч‑антенны для L‑диапазона, стоит 99 USD (плюс доставка) и может быть куплена напрямую в их магазине. Outernet любезно прислал нам образец для обзора, и мы тестируем его уже несколько недель. Этот пост — обзор устройства.

Контекст

Outernet — это бесплатный сервис передачи данных, который использует спутники L‑диапазона для передачи информации, такой как новости, обновления погоды, статьи Википедии, книги и многое другое.

Ранее Outernet использовал вычислительную плату C.H.I.P стоимостью 9 долларов США, RTL-SDR‑dongle и внешний LNA в качестве приемного оборудования для их сервиса передачи данных. Однако популярность сервиса Outernet была заметно помехой из‑за огромных дефицитов поставок C.H.I.P. За последний год или около того практически невозможно было получить плату C.H.I.P, если вы не поддержали Kickstarter или не купили её в первоначальном запасы Outernet. Производя собственную PCB, включая вычислительное оборудование, Outernet, по сути, надеется контролировать ситуацию с запасами и не зависеть от третьих сторон, которые могут не суметь доставить.

На данный момент Dreamcatcher можно запустить только на их новом образе Armbian. Старый образ Skylark удалён с серверов, предположительно потому, что сигнал Outernet скоро изменится и старый демодулатор на Skylark может больше не работать. Образ Armbian по сути представляет собой обычный Armbian и на данный момент на нём фактически не запущено никакого ПО Outernet и не может декодировать их сигнал, но над этим работают. В конце концов они надеются заменить Skylark стандартным приложением декодирования, которое работает на Armbian.

В этом посте мы рассмотрим Dreamcatcher с Armbian и оценим его как универсальный приемник (не только для Outernet), а также рассмотрим новую активную керамическую патч‑антенну.

Обзор Dreamcatcher

Dreamcatcher — это единая печатная плата, которая сочетает RTL‑SDR, вычислительное оборудование на базе Linux (Armbian) и L‑диапазонный LNA и фильтр.

С первых впечатлений мы заметили, что плата относительно крупная квадратная примерно 12 см на 12 см. Самым заметным чипом является SoC Allwinner A13. RTL‑SDR‑радиоэлектрика расположена в верхнем правом углу; RF‑секции (R820T и LNA) обе закрыты RF‑экранирующими банками. Встроенной Wi‑Fi на плате нет, но в комплект входит компактный USB‑адаптер Wi‑Fi с маркировкой EDUP, который подключается к одному из USB‑портов на плате.

Мы измерили, что Dreamcatcher потребляет примерно 400–600 мА в режиме ожидания и 800 мА при использовании RTL‑SDR и 100% загрузке CPU. Нагрев не является проблемой: Dreamcatcher остается относительно прохладной во время эксплуатации, даже при 100% загрузке CPU, когда CPU достигает примерно 45 градусов C.

Компьютерная часть и порты

Dreamcatcher использует систем‑on‑chip AllWinner A13 (SoC). Внутри AllWinner A13 находится одноядерный процессор ARM Cortex‑A8 с тактовой частотой 1 ГГц. Аппаратное обеспечение очень похоже на то, что используется в C.H.I.P. На PCB размещено 512 МБ RAM, и встроенного flash‑памяти нет — всё хранится на SD‑карте.

На плате предусмотрено два слота SD. Один слот используется под образ Armbian Linux, другой можно использовать для хранения данных. Есть также три USB‑A порта, но один занят встроенным WiFi‑адаптером. Есть один micro USB порт для USB OTG и другой — только для питания. Порт USB OTG можно использовать для первоначальной настройки платы, до подключения к WiFi.

Также на плате есть аудио и вход для микрофона, выводы расширения и переключатели питания/сброса и настройки загрузки.

РЧ‑аппаратная часть

На плате реализована цепь для одного RTL‑SDR на базе R820T2 с TCXO точностью 1 PPM. Есть два SMA RF‑порта. Один порт подключен к L‑диапазонному LNA и фильтру, который будет использоваться для Outernet или другого приема спутников L‑диапазона с пассивной патч‑антенной. Порт L‑диапазона имеет LNA с усилением 34 дБ и фильтр L‑диапазона с пропускной полосой 1525–1559 МГц.

Другой SMA‑порт обходит LNA + фильтр, чтобы Dreamcatcher можно было использовать как обычный RTL‑SDR. Для обхода используется управляемый программой кремниевый переключатель, поэтому можно использовать только один порт за раз. Порт обхода также имеет программно управляемый 4,8‑В биас‑tee, который можно использовать для питания новой активной керамической патч‑антенны Outernet.

Настройка Dreamcatcher

Настройка Dreamcatcher включает запись последнего образа Dreamcatcher Armbian на microSD‑карту, вставку карты и завершение настройки через UART‑соединение. Полные инструкции описаны в файле readme.txt и в их руководстве по эксплуатации, доступном здесь. Здесь можно найти примеры кода, показывающие, как включить биас‑tee, например.

Полная настройка занимает примерно 10–15 минут, включая запись образа на SD‑карту. После настройки Dreamcatcher должен быть подключен к вашей WiFi сети, и по желанию можно SSH‑подключиться к нему с ПК в вашей сети с помощью PuTTY или любого другого SSH‑клиента.

Существует два способа настройки UART‑соединения на Dreamcatcher. Первый — использовать USB OTG порт, второй — адаптер USB→UART за 1–2 доллара. Самый простой — использовать USB OTG. Чтобы его использовать, сначала запишите образ на SD‑карту, затем подключите USB‑кабель от порта USB OTG Dreamcatcher к USB‑порту на вашем ПК. Dreamcatcher будет питаться через OTG порт, и после загрузки он станет видимым как последовательный порт на вашем ПК. Теперь вы можете использовать такую программу, как PuTTY, чтобы подключиться к этому последовательному порту.

Ниже приведены шаги для подключения к плате через PuTTY.

  1. Подсоедините адаптер USB→UART к выводам UART1, или подключите USB OTG кабель к ПК. Если используете USB OTG, подайте питание на устройство.
  2. Теперь определите COM‑порт, который назначен вашему адаптеру USB→UART или USB OTG кабелю, найдя устройство в Диспетчере устройств.
  3. Далее в PuTTY выберите «Serial», введите назначенный COM‑порт и установите скорость передачи 115200. Нажмите «Connect».
  4. Если используется USB OTG, появится приглашение для входа в систему. Если используется UART‑адаптер, вы можете запустить Dreamcatcher и текст начнет прокручиваться в PuTTY. Подождите, пока он загрузится и достигнет приглашения на вход.

Теперь следуйте инструкциям в файле readme.txt, чтобы настроить учетные записи пользователей и подключиться к WiFi.

Изображение Outernet Armbian не поставляется с предустановленным ПО, поэтому после входа в систему вам нужно будет установить драйверы RTL‑SDR и любое другое ПО, которое вы хотите использовать на устройстве.

Dreamcatcher login on UART

Dreamcatcher Testing

Базовое ПО

Сначала мы протестировали Dreamcatcher с простым программным обеспечением, например rtl_adsb, которое автоматически устанавливается во время установки RTL‑SDR. Первый шаг — подключить антенну к порту LNA_bypass. Порт обхода по умолчанию включен, поэтому дополнительных команд для его включения не требуется. rtl_adsb без проблем принимал самолеты.

Далее мы установили dump1090 и повторили тест. Опять же самолеты принимались без проблем. Мы также протестировали веб‑сервер dump1090, и без труда подключились к нему с сетевого ПК.

Далее мы протестировали rtl_fm, чтобы понять, можно ли получить звук через разъем для наушников. Сначала нужно установить sox командой “apt-get install sox”. Затем по умолчанию громкость приглушена и установлена на ноль, чтобы снять её, введите “alsamixer”. Используйте клавиши со стрелками и клавишу “m” для выбора всех устройств и снятия приглушения. Также увеличьте громкость на усилителе мощности. При включенном звуке rtl_fm работал хорошо и мог довольно громко воспроизводить звук через динамик. Команда, которую мы использовали: “rtl_fm -M wbfm -f 89.1M | play -r 32k -t raw -e s -b 16 -c 1 -V1 -“

Мы также тестировали другую программу, такую как rtl_433, которая без проблем запускалась.

В настоящее время Outernet подготовил Howto‑руководства для нескольких приложений, включая ADS-B, прослушивание FM‑радиовещания, настройку APRS iGate, настройку Tight VNC, который позволяет сетевой графический дисплей, настройку YAAC APRS на Tight VNC, настройку приема WSPR и использование rtl_power для анализа широкополосного спектра.

GR‑Iridium & L‑Band

Мы также протестировали gr‑iridium на Dreamcatcher, это программное обеспечение, которое позволяет прослушивать вызовы и данные спутников Iridium в L‑диапазоне. Чтобы установить его, нам пришлось сперва переключить менеджер пакетов Armbian с Jessie на Stretch. Это позволило загрузить и установить последнюю версию GNU Radio через apt‑get, что требуется для установки gr‑iridium.

Для приема мы не могли использовать новую активную керамическую патч‑антенну, потому что SAW‑фильтр обрезает частоту примерно на 1559 МГц, а Iridium находится около 1625 МГц. Вместо этого мы использовали LNA4ALL и старую металлическую патч‑антенну Outernet. Мы также протестировали металлическую патч‑антенну с встроенным L-band LNA, и это тоже работало, хотя это сложнее, поскольку длинный коаксиальный кабель нельзя использовать без значительных потерь сигнала (поскольку LNA не находится рядом с антенной). Сигналы Iridium часто достаточно сильны, чтобы ловиться простым диполем, так что это тоже может подойти, если не удаётся получить патч‑антенну.

Нам удалось запустить gr‑iridium на 1 MSPS, но при более высокой скорости возникли ограничения CPU, что печально, потому что gr‑iridium действительно требует пропускной способности, чтобы охватить как можно большую часть диапазона Iridium. Однако даже при 1 MSPS мы смогли принять и декодировать очень короткий 2‑секундный вызов.

К сожалению, на данный момент в Armbian нет ПО для сигнала Outernet или сигналов Inmarsat, поэтому мы не смогли протестировать эти сигналы. Также JAERO для сигналов AERO доступен для openSUSE 42.3, но пока не доступен на Debian. Если кто‑то знает о каких‑либо других декодерах сигнала L‑диапазона, пожалуйста, сообщите в комментариях. Outernet планирует выпустить декодер на базе Armbian для своего спутникового сервиса в будущем.

Программное обеспечение для потоковой передачи радиоданных

К сожалению, мы столкнулись с трудностями при попытках запустить программное обеспечение потоковой передачи RTL‑SDR, такое как rtl_tcp, SpyServer и OpenWebRX. Вкратце, по умолчанию ни одно из них не работает очень хорошо, однако некоторые настройки помогли улучшить ситуацию.

С rtl_tcp нам удалось достигнуть плавной работы только при скорости данных 0,25 MSPS. По сравнению Raspberry Pi 3, подключенная к той же WiFi сети, без труда справлялась как минимум с 1 MSPS. Оказывается, что встроенный в Dreamcatcher WiFi‑адаптер EDUP достаточно медленный, несмотря на поддержку 802.11n. Переход на адаптер WiFi более высокого качества позволил нам плавно передавать на скорости 1 MSPS. Команда Outernet также сообщила нам, что использование Ethernet‑адаптера обеспечивает плавную передачу на 2,4 MSPS.

Далее мы попробовали новое потоковое ПО SpyServer, предназначенное для Airspy SDR, но работающее и с RTL‑SDR. Первая проблема — публичная загрузка SpyServer не запускалась на Dreamcatcher. Нам пришлось попросить разработчика SpyServer сделать специальную A5‑версию, собранную для старых CPU. После запуска SpyServer, к сожалению, оказалось, что она не работает плавно на любой частоте выборки, с полной IQ или без неё. SpyServer потребляет меньше пропускной способности по сравнению с rtl_tcp, но здесь проблема заключалась в высокой загрузке CPU. SpyServer выполняет множество вычислений на стороне сервера, поэтому загрузка CPU довольно высока. К сожалению, CPU на Allwinner A13 кажется недостаточно мощным, чтобы запускать SpyServer.

Обновление: разработчик SpyServer, Youssef, обновил A5‑версию, чтобы она была более эффективной. Теперь она работает плавно на скорости выборки 1 MSPS с включённым “Full IQ”. Но помните, что нужно установить 1 MSPS в файл конфигурации сервера, чтобы не использовать децимацию.

Мы также попробовали OpenWebRX, который используется для эффективной удаленной передачи. Посмотрите sdr.hu для различных OpenWebRX SDR, размещённых в интернете. Чтобы сэкономить пропускную способность, OpenWebRX отправляет только данные водопада и сжатый аудио, вместо полного IQ. Но даже на 0,25 MSPS процессор Dreamcatcher испытывал трудности и находился на 100% загрузке, используя файл конфигурации по умолчанию. После небольших изменений в конфигурации мы достигли плавных результатов на 1 MSPS, но только для одного подключения. Андраш, разработчик OpenWebRX, работает над оптимизациями кода для Dreamcatcher, что может улучшить производительность в будущем.

Обновление: Андраш, разработчик OpenWebRX, создал dreamcatcher‑оптимизированную версию, которая использует некоторые специальные инструкции в ARM‑процессоре и уменьшил разрешение FFT в конфигурационном файле. С этой версией OpenWebRX работает плавно до 1.2 MSPS, но всё ещё может обслуживать только одно подключение пользователя.

Мы считаем, что OpenWebRX может испытывать трудности при работе на Cortex A8 Dreamcatcher, поскольку это одноядерный CPU, а OpenWebRX запускает несколько потоков. По сравнению с Raspberry Pi 3, который легко запустил OpenWebRX и суммарная загрузка CPU оставалась менее 50%, Pi 3 имеет Cortex A53 @ 1.2 ГГц, что является 4‑ядерным CPU.

Чтобы понять различия в производительности CPU между Pi 3 и Dreamcatcher, мы запустили sysbench на одиночном потоке и на режиме 4 потоков с использованием: “sysbench –test=cpu run” и “sysbench –test=cpu –num-threads=4 run”.

  • Sysbench Dreamcatcher (1 Поток) – 286.584 с
  • Sysbench Dreamcatcher (4 Потоки) – 286.8299 с
  • Sysbench RPi3 (1 Поток) – 182.3092 с
  • Sysbench RPi3 (4 Потоки) – 45.7500 с

Sysbench показывает, что Pi 3 заметно быстрее, особенно если можно задействовать все четыре ядра.

Керамическая активная патч‑антенна

Мы также протестировали новейшую версию патч‑антенны Outernet для L‑диапазона. Эта новая патч‑антенна использует керамическое диэлектрическое вещество вместо воздушной прослойки, как на их предыдущей металлической патч‑антенне. Эти керамические патчи похожи на те, что используются в маленьких GPS‑антеннах, но больше.

Новая активная патч‑антенна также «активная», что означает встроенный низкошумный усилитель (LNA), который должен питаться через биас‑tee 3–5 В. Порт RF_bypass Dreamcatcher имеет необходимый биас‑tee 4,8 В для питания. В цепь также встроен SAW‑фильтр для L‑диапазона, и мы предполагаем, что диапазон пропускания (1525–1559 МГц) такой же, как и на фильтре порта Dreamcatcher L‑диапазона.

Эта новая активная патч‑антенна — хорошая идея, так как позволяет проложить несколько метров коаксиального кабеля, чтобы вынести антенну за пределы и разместить её в удобной позиции, где она может видеть спутник.

Мы сравнили новую активную керамическую патч‑антенну с предыдущей металлической патч‑антенной + комплект Outernet LNA, используя RTL‑SDR Blog V3 dongle, питание LNAs по биас‑tee на обеих антеннах. Уровни сигнала были примерно на 1–2 дБ ниже на керамической антенне, но мы заметили, что керамическая патч‑антенна немного менее направленная и её легче настраивать. Мы также тестировали 2,5 метра тонкого RG174 коаксиального кабеля и не заметили потерь SNR. LNA помогает увеличить сигнал, поэтому потери сигнала в коаксиале минимальны.

Ещё одна проблема таких антенн — отсутствуют крепления, поэтому мы просто приклеили на заднюю часть PCB резьбу 1/4 дюйма и использовали стандартное крепление камеры‑вакуум, чтобы закрепить её на окне с хорошим обзором спутника Inmarsat. Антенна на обратной стороне также не водонепроницаема, поэтому для водонепроницаемости она была позже закрыта пластиковым пакетиком. Людям, желающим закрепить её более надёжно, можно рассмотреть вариант пластикового ланчбокса или другого прочного решения.

Заключение

Стоит ли Dreamcatcher своих денег? За 99 USD (плюс доставка) вы получаете полностью собранную вычислительную плату с RTL‑SDR и L‑Band LNA+модуль фильтра встроенными, а также активную керамическую антенну. Это первая вычислительная плата, о которой нам известно, которая включает RTL‑SDR на самой PCB. В прошлом проекты вроде XiOne пытались сделать что‑то похожее, но не реализовали.

Учитывая, что Raspberry Pi 3 стоит 35$, RTL‑SDR, способный принимать L‑диапазон, как V3, стоит 20$, а Nooelec/Outernet L‑Band LNA+SAW фильтр модуль стоит 17.95$. Металлическая патч‑антенна Outernet больше не продается, но ранее она стоила 25$. Общая стоимость этих отдельных компонентов составляет 97.95 USD.

Dreamcatcher по‑прежнему немного «багует», с проблемами в отношении потокового сервера RTL‑SDR и приложений. И по сравнению с Pi 3 производительность CPU заметно ниже, что означает, что ПО с высокой нагрузкой CPU, например OpenWebRX, не работает так хорошо. Но обычные приложения, которые можно запускать на устройстве, такие как dump1090, rtl_433 и т. д., работают нормально. В будущем хотелось бы увидеть более мощный CPU, чтобы на плате можно было запускать ещё больше приложений плавно.

Что касается зрелости продукта, Outernet разместил предупреждение на своей витрине для потенциальных покупателей о том, что Dreamcatcher «только для любителей, хобби и аппаратных хакеров», и что «прямой поддержки не предоставляется». Бóльшая помощь доступна будет на их форумах. Чтобы фактически использовать плату, вам понадобится приличное знание Linux (умение устанавливать и запускать программы через терминал), и предпочтительно некоторый опыт работы с другими маленькими вычислительными платами, такими как Raspberry Pi.

В целом Dreamcatcher — отличная покупка для людей, желающих получить всё‑в‑одном устройство, но она всё ещё скорее подходит для продвинутых экспериментов. Надеемся, что плата вскоре станет зрелой, и мы увидим реальные приложения Outernet, а также возможные обновления аппаратной части, которые значительно повысят ценность платы.


Источник:

Подбираете SDR под задачу?

Опишите, что и где хотите принимать, — подскажем подходящие модели и где их купить.

Похожие материалы

Весь блог