четверг, 28 мая 2020 г.

Як сколхозити вдома Web SDR приймач.

Ця ідея давно не давала мені спокійно жити, адже сдр приймач в мене є.

На даний час в світі є декілька реалізацій прийому радіосигналів через інтернет. SDRConsole має в собі сервер, з допомогою якого люди, в яких на комп'ютері встановлена SDRConsole можуть через інтернет під'єднатися до віддаленого приймача і слухати його. Подібним шляхом пішли і автори SDRSharp.

Донедавна на моїй площадці працював приймач по цій технології на SDRSharp. Приймачем там був AirspyR2 з Spywerter. Діапазон перекриття прийому радіосигналів був безперервним від 0 до 60 МГц.

Все це добре, але є одне але. Немає кросплатформенності, На кожен комп'ютер потрібно встановлювати відповідні програми. Програми як правило написані для Windows. А що робити як під рукою лише смартфон або комп'ютер на операційній системі відмінній від Windows будь-то Linux  чи MacOsX ?

Тут потрібне універсальне рішення. Скажімо так. Приймач під'єднано до сервера, а клієнт через інтернет браузер під'єднується до сервера і приймає радіосигнал.

Одного дня на очі попався мені KiwiSDR. В той момент я зрозумів що це саме те, що потрібно. Я спробував скористатися безліччю гаджетів для перевірки роботи приймачів. Вони працювали кругом. Це було надзвичайне відчуття. Нарешті я знайшов те, як би мені хотілося реалізувати роботу віддаленого приймача.



Зрозуміло, що я почав збирати кошти на KiwiSDR, але доки назбираєш, вирішив зробити щось подібне на Airspy R2.

Полазивши по інтернету і вивчивши роботу KiwiSDR, розібрався як теоретично це зробити.

Трохи історії та теорії. Робота приймача базується на технології OpenWebRx. Вперше світ про неї почув в листопаді 2014 р. від її автора Andras Retzler, HA7ILM. Він також є засновником сайту sdr.hu.  На даний момент там знаходяться ссилки на 492 приймача. Нижче фото вигляду ссилок на приймачі, розташовані на сайті. Увага ! Щоб зайти на сайт необхідно зареєструватись. Реєстрація можлива лише для радіоаматорів.




Приймачі розташовані по всій планеті, що дає змогу послухати себе та інших на них. Проходить шість років і 29 грудня 2019 р. Andras в своєму блозі пише, що перестає розвивати проект. Але так як це проект з відкритим вихідним кодом, Jakob Ketterl DD5JFK продовжив роботу. Він переписав частину коду, що дозволило використовувати досить велику кількість sdr приймачів на даний час. RTL-SDR, SDRPlay RSP1 RSP2 RSPDuo, Airspy R2 Mini HF+ Discovery, HackRF, Lime SDR, PlutoSDR, FiFiSDR, Perseus, Red Pitaya, USRP - ось список підтримуваних приймачів.
Ця технологія дозволяє передати від приймача до інтернет браузера потік даних, які можна відтворити в ньому з допомогою HTML5. Таким чином, маючи один з вищенаведених приймачів, антену та комп'ютер, можна вдома зробити свій WebSDR OpenWebRx, до якого через інтернет можна під'єднатись з допомогою любого гаджета і через Google Chrome чи Mozilla Firefox слухати ефір.

Сайт Jakobа знаходиться за адресою openwebrx.de. Нижче я відобразив головну сторінку сайту.


На ньому можна ознайомитись з документацією по встановленню та налаштуванню програмної частини.

На даний момент програмне забезпечення працює на Linux дистрибутивах Debian 10, Ubuntu 20.04, Raspbian. Jakob  дуже допоміг всім нам, хто має RaspberryPI. Він спростив процедуру встановлення. Достатньо лише скачати образ, записати його на флешку та відповідно до моделі приймача сконфігурувати файл налаштувань.

Тепер до практики. Вже вам відомо, що в мене є Airspy R2, тому далі все про нього.

Під'єднаємо приймач та введемо команду з допомогою якої визначимо чи програмне забезпечення його побачило.

SoapySDRUtil --probe="driver=airspy"


Якщо щось подібне напише у вас, то bingo! Все чудово. Можна іти далі.

В кого RTL-SDR, Airspy HF+, Sdrplay можуть спати спокійно. Файл вже налаштовано для використання цих приймачів. Для решта моделей потрібно буде його скоригувати.

Я розповім що робив в своєму випадку. По шляху /etc/openwebrx знаходиться файл config_webrx.py  Це він і є.


В режимі адміністратора відредагуємо цей файл

sudo nano /etc/openwebrx/config_webrx.py


Відкриється файл, що уявляє собою скрипт на пітоні. Зараз я прокоментую що де змінив для того, щоб в мене запрацював мій приймач.

Почнемо з простих речей. Вкажемо максимальну кількість одночасних підключень, кличний приймача, розташування (QTH), висоту над рівнем моря, поштову скриньку адміна, географічні координати (на основі них вираховується QTH локатор).

Далі іде інформаційна частина. Вона лише відображає інформацію на сторінці. Кличний адміна, поштова скринька адміна, який використовується приймач, яка використовується антена і веб сайт аміна (при його наявності).





Далі починається веселуха. Потрібно описати для сервера який приймач буде використовуватися та всі його налаштування. Не лякайтеся, все досить просто. Лише потрібно уважно все заповнити. Я прокоментую все що змінював і що означають параметри.
 


Назва приймача, назва приймача що буде відображатися в інтерфейсі користувача, ім'я драйвера який потрібно використати для керування приймачем, корекція частоти для точного відображення частоти, діапазон що буде прийматися, назва діапазону, центральна частота діапазону, який потрібно встановити рівень підсилення приймача, семплрейт, улюблена частота з якої починаємо слухати діапазон так звана стартова частота, та стартова модуляція.

Для прикладу хтось полюбляє послухати на 40 метровому діапазоні частоту 7175 КГц. На цій частоті використовується LSB модуляція. Встановили собі ці значення і запустивши приймач одразу починаєте її слухати. 

Ліричний відступ. Більшість приймачів може приймати максимальну смугу від 2.4 Мгц до 10 Мгц,( так званий семплрейт) все залежить від моделі приймача. Ці дані вказані в технічних характеристиках. Для прикладу максимальна смуга прийому RTL-SDR складає 2.4 МГц, а його семплрейт відповідно складає 2400000, а в Airspy HF+ максимальна смуга 768 КГц, відповідно семплрейт 768000.



Ну а тепер я розповім як я в себе все налаштував.


Знову ліричний відступ. Існують приймачі, які не приймають сигнали нижче 24 МГц. Як зробити так, щоб можна було все таки слухати частоти нижче ? Для цього використовують конвертери. З допомогою них спектр переноситься  в ділянку, де приймач чудово приймає, і таким чином ми можемо слухати що робиться в ефірі на цих частотах.

Саме такий приймач в мене. Я мусив використати конвертер. Вище на малюнку я показав як це потрібно зробити. Йому потрібно подати живлення. Це робиться з допомогою параметра "bias_tee": True та вказати частоту конвертера. В моєму випадку це 120 МГц. Параметр "lfo_offset": 120000000

Мій приймач може приймати спектр шириною в 10 Мгц та 2.5 Мгц, відповідно семплрейти будуть 10000000 та 2500000. Я вибрав менший, щоб не навантажувати Малину та USB порт. Перевіряємо уважно чи все вірно написали. Зберігаємо та перевантажуємо комп'ютер.

Тепер як користуватися. Якщо ви будете його використовувати лише в своїй домашній мережі, то достатньо з іншого комп'ютера набрати його адресу в Chrome чи Firefox і вже можете слухати.

Покажу на прикладі. Припустимо, що адреса комп'ютера, де встановлено приймач з програмним забезпеченням є 192.168.1.15 Тоді в адресній строці потрібно ввести https://192.168.1.15:8073 і натиснути ввод.

З'явиться щось подібне


Це вже працюе ваш WebSDR. І знову вітаю ! Все вийшло. В правому нижньому боці знаходиться панель керування приймачем. Там можна змінити частоту, вид модуляції, гучність, параметри водоспаду, шумодав, масштаб відображення.







Вверху жовтий гачок нагадує форму фільтра. Керуючи ним, можна мандрувати частотою та змінювати ширину смуги пропускання фільтру.
Жовта вертикальна вісь покаже місцезнаходження несучої частоти.








Тепер наступне. Кількість клієнтів робіть невелику. Я зробив два. Справа в тому, що обидва з них мають рівне право керувати приймачем, але другий слухає ту частоту, яку вибрав перший і навпаки. Як на мене це недолік.

Для того, щоб приймач можна було слухати будь-де поза межами внутрішньої локальної мережі не забудьте прокинути на маршрутизаторі порт 8073, інакше через інтернет до нього неможливо буде підключитись.


73 ! de UT2YR





вторник, 12 мая 2020 г.

Як встановити та налаштувати апаратний годинник в Raspberry Pi

Ні для кого не секрет, що в Малині немає вбудованого годинника. Тобто, при ввімкнені, комп'ютер немає ніц уяви котра зараз година та дата. А дізнається лише тоді, коли під'єднається до серверів часу, через інтернет або з допомогою дротового з'єднання, або з допомогою WiFi. Як можна зробити так, щоб Малина завжди знала котра година, навіть коли вимкнена ?

В цьому допоможе плата RTC (Real Time Clock) - годинник реального часу. Плати можуть бути зібрані або на PCF8523, або на DS1307, або на DS3231. Одразу порекомендую DS3231. В неї найкраща точність. Виглядає вона ось так.







Її можна придбати тут.  Коштує вона не надто дорого, але з її встановленням Малина стала зручніше в користуванні. Під'єднується вона на роз'єм GPIO згідно нижченаведеної схеми підключення.


Розпіновка GPIO виглядає так


Щоб довго не ламати голову я приведу фото як плата встановлена.




Для того, щоб ця плата запрацювала, потрібно активувати шину i2c в Raspberry Pi. Для цього виконаємо

sudo raspi-config



Далі  Interfacing Options -> I2C ->







На запитання Would you like the ARM I2C interface to be enabled ? потрібно відповісти Yes.


Система повідомить про активацію I2C.


Перевантажимо систему командою

sudo reboot

Далі потрібно довстановити необхідні пакети

sudo apt-get install python-smbus i2c-tools



Після встановлення пакетів перевсіримо, чи Малина бачить під'єднану плату.
 
sudo i2cdetect -y 1


Відповіддю на цю команду буде показана адреса ID # 68  - це адреса модуля.



Якщо адресу не побачите, то дивіться чи все вірно під'єднали.

Тепер потрібно прописати цей модуль (додати драйвер для завантаження). 

В кінець файлу /boot/config.txt додаємо строку

dtoverlay=i2c-rtc,ds3231

Відредагуємо файл

sudo nano /boot/config.txt


а ось і ця строка, вписана в файл



Зберігаємо файл і перезавантажуємо.

Після перезавантаження для перевірки роботи знову виконаємо команду

sudo i2cdetect -y 1

В місці відображення адреси буде стояти UU. Це означає, що все працює.





Тепер потрібно деактивувати fake-hwclock, адже в нас є апаратний годинник.

sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove
sudo systemctl disable fake-hwclock







Тепер, коли відключений fake-hwclock, потрібно активувати скрипт, що буде запускати апаратного годинника.

Виконаємо

sudo nano /lib/udev/hwclock-set



Закоментовуємо три рядки bash скрипта.




#if[ -e /run/systemd/system ]; then
# exit 0
#fi





Також потрібно закоментувати дві строчки

/sbin/hwclock --rtc=$dev --systz --badyear

/sbin/hwclock --rtc=$dev --systz


Має вийти так



Тепер перезавантажте Малину.


Настав час засинхронізуватися.

Прочитаємо яка дата та час записані зараз в апаратному годиннику

sudo hwclock -D -r



Увага. Коли вперше під'єднано модуль, годинник покаже невірне значення. Не лякайтеся. Це нормально.

Під'єднайте Малину до інтернету для отримання вірної дати або через WiFi або через дротове з'єднання.

Тепер цей час потрібно записати в годинник.

sudo hwclock -w

Прочитати всановлений час

sudo hwclock -r



Якщо дата та час збігається, то все гаразд !

Проведемо експеримент чи все вдалося. Вимикаємо Малину і перезапустимо її. Інтернет з'єднання повинно бути відсутнє, інакше Малина засинхронізується через інтернет. В такому випадку ми не зможемо бути впевнені в позитивному результаті.



Тепер Малина завжди буде знати котра година, навіть коли вимкнена і коли відсутній інтернет.

Я думаю, що зрозуміло для чого це робилося. При відсутності можливості синхронізації часу через інтернет буде неможливо працювати в цифрових режимах як FT8, JS8Call і т.д.

73 ! de UT2YR










воскресенье, 3 мая 2020 г.

Їжа для Малинки. Частина 1 Трохи невдала.

Нарешті я придбав четверту Малину. Взяв саму гогонату - з 4 гігабайтами оперативки. Одяг її в алюмінієвий корпус, такий як колись придбав для 3B+. Перші враження - працює швидше. Зараз повністю замінила мені домашній комп'ютер.

На питання чи я буду далі використовувати її в аматорському комплексі - буду. Мало того, я закупився USB звуковими картами і в планах все, що в мене вдома крутиться, зробити виключно на Малині.  

Погодьтеся, мати вдома декілька модифікацій Windows, OsX, Linux (Debian, Arch) трохи накладно. Іноді плутаєшся в командах (навіть в варіаціях Linux є свій неповторний діалект). Тому перехід на єдину операційну систему та декілька Малин неминучий.

DMR репітер, Echolink, Airspy sdr server і т.д. Бажано щоб все це працювало навіть при відключенні електроенергії.  Постає проблема безперебійного живлення всього цього. Враховуючи, що в мене більшість приймально-передавального обладнання працює від 12 Вольт та майже зібрана сонячна станція на цю напругу, постає питання як живити Малини, адже вони розраховані на 5 Вольт.

Погортавши інтернет, знайшов перетворювач  з 12 на 5 Вольт зі струмом до 3 Ампер за досить невеликі кошти.




Ціна в нього надзвичайно демократична. Я придбав їх набором з чотирьох штук.

Тепер про практику. Струм споживання Raspberry Pi 4 з зовнішньою USB звуковою картою та перехідником USB->COM складає 0.82 А, тобто по потужності десь біля 4.2 Вт.


При цих умовах деталі на платі нагріваються до 37 градусів за Цельсієм. 

Тепер залишилося пройти останній тест. Чи не створює він завад ? Згідно специфікації частота, на якій працює даний перетворювач складає 485 кГц.  Для цього скористаємося SDR приймачем. На цій частоті тихо. Прекрасно. А давайте пройдемося неподалік неї. І тут починається розчарування. Кожних 199 кГц чути роботу перетворювача.

198, 397, 595, 794, 993, 1192, 1391, 1590, 1789, 1988 ........ 3575, 3774 кГц. Далі вже не став. Цього повністю вистачило.

Багатьом не сподобається ця послідовність.

Юрій UY1YU протестив роботу цього перетворювача на УКХ. В результаті досліджень виявилося, що приймачі, які працювали поряд з ним, переставали приймати діапазони 144 та 430 МГц.

Висновок сьогодні такий: перетворювач заборонено застосовувати в радіо.

Продовжую далі пошуки.

73! de  UT2YR