В 2024 году я насмотрелся роликов ютубера saveitforparts и заинтересовался автоматическими спутниковыми антеннами. В Нидерландах такие обычно продают в виде компактных офсетных тарелок на моторизованном основании, вроде Megasat или Oyster. Это не совсем то же, что установки Winegard, которые попадаются saveitforparts в США. (Одну такую я, скорее всего, всё равно когда-нибудь куплю.) Но, листая Marktplaats, я наткнулся на штуку поинтереснее: морскую антенну. Intellian i4 продавали примерно за 200 евро, хотя новая сейчас стоит около 4000. Я купил её сразу и стал гордым владельцем куска корабельной техники.

В отличие от большинства автоматических тарелок для автодомов, морской нужна точность повыше. Поэтому все моторы в ней — мощные шаговые двигатели. Ещё там стоит четырёхвыходной конвертер (quad LNB) и забавный вращающийся отражатель, о котором расскажу ниже.

Основные мозги антенны (кроме логики захвата сигнала) живут во внутреннем блоке, который называется ACU, Antenna Control Unit. Раз уж ценник высокий, у него есть Ethernet, Wi-Fi и даже RS-232!

Антенна под своим радиопрозрачным колпаком
Антенна под своим радиопрозрачным колпаком
Четырёхвыходной конвертер (quad LNB)
Четырёхвыходной конвертер (quad LNB)
ACU, сверху на нём стоит тюнер
ACU, сверху на нём стоит тюнер
ACU изнутри
ACU изнутри

Как она вообще работает

Лодку постоянно качает: крен, тангаж, рыскание. А спутник висит в 36 000 км на геостационарной орбите, то есть относительно земли он неподвижен. Тарелка должна держать его, что бы ни делала лодка. Для этого ей нужно знать своё положение (GPS у неё встроенный), куда она смотрит (курс ей сообщает судно по NMEA) и где находится спутник.

Постойте, но мы же не лодка

Было бы здорово устроить NURDspace @ Sea, но это нам не по силам.

Что мы можем? Притвориться лодкой!

NMEA — текстовый последовательный протокол поверх RS-422 (дифференциального), реализовать его несложно. Нужны только преобразователь TTL в RS-422 и микроконтроллер, и вот мы уже яхта за 130 000 евро!

Достаточно отправлять блоку управления строку

$HCHDG,0.0,0.0,E,0.0,E*checksum

чтобы он мог правильно посчитать свою математику. Что она означает?

Каждое предложение NMEA начинается с $, за ним идёт двухбуквенный идентификатор источника (например, GP у GPS и HC у компаса), затем трёхбуквенный тип предложения, поля через запятую и в конце * с двумя шестнадцатеричными символами контрольной суммы. Контрольная сумма — просто XOR всех байтов между $ и *.

RP2040 с модулем RS-422 изображает яхту за 130 000 евро
RP2040 с модулем RS-422 изображает яхту за 130 000 евро

А управлять-то ею можно?

Для меня после покупки это был вопрос на миллион евро. На миллион — потому что примерно столько нужно, чтобы по-настоящему владеть яхтой.

Сначала у меня не было даже программы для управления антенной, в сети я её тогда тоже не нашёл. Доступа к партнёрскому порталу Intellian у меня нет. Что я сделал? Всё просто: написал в Intellian и попросил программу. И мне её охотно прислали!

Программа Aptus Controller
Программа Aptus Controller

Теперь антенной можно было управлять из этой программы. А без неё?

Я начал снифать обмен между Aptus и ACU. Оказалось, это довольно простой текстовый протокол с контрольной суммой в конце:

{XX param1 param2 ... paramN}C

Ещё полезнее то, что Aptus написан на C#, так что код легко декомпилировать и прочитать. Этого хватило, чтобы получить всё нужное. В итоге, примерно через два года, я попросил LLM составить описание протокола.

Как считается контрольная сумма? Просто: для каждого символа сообщения вычисляется num = (num + char_value - 32) % 95, а в конце возвращается ASCII-символ с кодом num + 32:

public static char UIF_CheckSum(StringBuilder sb, int length)
{
    int num = 0;
    for (int index = 0; index < length; ++index)
        num = (num + sb[index] - 32) % 95;
    return (char)(num + 32);
}

То же на Python:

def uif_checksum(message: str) -> str:
    num = 0
    for char in message:
        num = (num + ord(char) - 32) % 95
    return chr(num + 32)

Как сказать антенне, куда смотреть? Тоже очень просто: отправить ACU команду GO с азимутом и углом места.

{GO 16250 2000}

Почему числа такие большие? Вместо чисел с плавающей точкой, которые на разных компиляторах и архитектурах ведут себя непредсказуемо, всё хранится целыми с двумя неявными знаками после запятой. Поэтому 16250 == 16250 всегда однозначно истинно, а сравнение float может молча не сработать. К тому же вычисления с плавающей точкой медленные, если FPU нет (или он сам медленный). Для морских и критически важных систем такая предсказуемость очень важна!

Что это за крутилка?

Немного об устройстве тарелки. Большинство телевизионных тарелок на крышах — офсетные: конвертер у них вынесен вбок от центра зеркала. Так он не отбрасывает тень на отражатель и не съедает сигнал.

У нашей тарелки прямофокусная схема, конвертер стоит точно по центру. У бытовых антенн так бывает реже, зато опорно-поворотное устройство получается компактным и симметричным, а это важно, когда тарелка крутится на лодке. Диаметр всего 40 см (чем больше тарелка, тем больше усиление), но благодаря такой схеме мощности ей вполне хватает. (Прим. пер.: в характеристиках производителя диаметр отражателя i4 указан как 45 см.)

Помогает и моторизованный контррефлектор между зеркалом и конвертером. Это часть технологии Intellian Dynamic Beam Tilting (DBT). Вместо того чтобы постоянно гонять шаговые моторы на каждую волну и качку, контррефлектор всё время подстраивается и держит луч на спутнике. Основные моторы берут на себя только крупные поправки, поэтому вся конструкция работает тихо и отзывчиво. Вот чем занята наша крутилка! Интересная всё-таки техника.

Прим. пер.: в комментариях к заметке об этом проекте на Hackaday читатели предложили другое объяснение: вращающийся смещённый контррефлектор нужен для конического сканирования. Луч описывает небольшой круг вокруг спутника, а по модуляции уровня сигнала антенна понимает, в какую сторону подправить наведение.

Контррефлектор
Контррефлектор
И его мотор
И его мотор

И что с ней делать?

Сначала я написал небольшой скрипт-прослойку между ACU и Gpredict, чтобы тот видел антенну как обычный поворотный механизм. Так она может следить и за спутниками не на геостационарной орбите. Правда, я с этим пока почти не играл: облучатель у тарелки только на Ku-диапазон, а негеостационарных спутников в этом диапазоне я пока не знаю.

Потом мы перевезли антенну в NURDspace и закинули на крышу, а один добрый коллега-хакер отдал нам кое-что из спутникового хозяйства. Среди 75-омных кабелей нашёлся Digibit R1, и вместе с Dreambox DM800 он послужил тюнером, чтобы попробовать поймать телевизионные транспондеры. Первый захват сигнала порадовал: мы настроились на Astra 1P в позиции 19.2°E и увидели китайский канал CGTN HD!

MPV показывает корейский канал
MPV показывает корейский канал
Тарелка отдыхает на крыше NURDspace
Тарелка отдыхает на крыше NURDspace

Ура, я могу смотреть спутниковое телевидение дома: сигнал прилетает из космоса, а дальше идёт ко мне через WireGuard. Техника — это прекрасно!

Конечно, у меня были и другие планы, но они заслуживают отдельных постов.

И напоследок видео, где тарелка исполняет свой радостный тестовый танец.

Комментарии (3)


  1. CitizenOfDreams
    28.10.2026 17:50

    Качающийся субрефлектор это интересно, не встречал раньше такого. Согласен с выводами читателей Hackaday - он помогает быстро измерить направление ошибки наведения, но не освобождает основные приводы от работы: на плавающем судне ходящем корабле они все равно будут постоянно активны.

    Углы отклонения у субрефлектора мизерные, судя по геометрии. А если сделать отклонение больше, то возрастут потери и ухудшится кроссполяризация, что 40-сантиметровая тарелка не может себе позволить. Ну и движение субрефлектора явно не управляемое, а просто постоянное вращение, вроде обруча на стройной талии гимнастки.


    1. opium Автор
      28.10.2026 17:50

      Фраза «основные моторы берут на себя только крупные поправки» — слишком категоричное объяснение в исходнике, которое осталось в переводе. В паспорте Intellian i4/i4P отдельно указаны двухосевые шаговые приводы стабилизации и внеосевое вращение субрефлектора с проверкой уровня сигнала 50 раз в секунду: https://www.mastersystems.com/wp-content/uploads/2024/08/i4-i4P-Datasheet.pdf. Производитель говорит об уменьшении движений основного отражателя, а не о том, что при качке достаточно одного субрефлектора. Примечание про коническое сканирование в переводе уже есть, но оно не устраняет неточную формулировку перед ним; текст статьи пока не исправлен.


    1. CitizenOfDreams
      28.10.2026 17:50

      Качающийся субрефлектор это интересно, не встречал раньше такого.

      А, вспомнил, саму технологию конического сканирования встречал много лет назад, только тогда еще не понял, что это такое. Там это было реализовано неподвижным субрефлектором и вращающимся рупором облучателя (слегка асимметричным внутри).

      Примечание про коническое сканирование в переводе уже есть, но оно не устраняет неточную формулировку перед ним; текст статьи пока не исправлен.

      Наверное, технические статьи и надо так переводить: оставлять неточности оригинала с примечаниями.