Skip to content

Companion — офіційний конфігуратор OpenIPC

Companion — офіційний кросплатформний застосунок для налаштування камер OpenIPC, побудований на Avalonia UI. Він підключається до пристрою по SSH і дає графічний доступ до того, що зазвичай редагується руками в конфігах: параметрів WFB-NG, налаштувань камери, телеметрії, пресетів і прошивки.

Головне вікно OpenIPC Companion

Головне вікно Companion. Скриншот з ранньої збірки — набір вкладок з того часу змінився, актуальний список нижче.

Що вміє Companion:

  • Налаштування камери — роздільна здатність, частота кадрів, експозиція
  • Телеметрія — перегляд метрик у реальному часі (температура, напруга, якість сигналу)
  • Майстри налаштування (Setup wizards) — покрокове налаштування пристрою та мережі
  • Пресети — збереження та застосування готових наборів налаштувань
  • Прошивка — оновлення, а також резервне копіювання і відновлення
  • Кросплатформність — Windows, macOS, Linux; збірки для Android та iOS у розробці

NVR не підтримується

Companion поки не працює з NVR. Для NVR використовуйте OpenIPC Config від MarioFPV.

Companion — це і є «мультиконфігуратор»

Це не новий окремий застосунок, а той самий офіційний конфігуратор під новою назвою. Раніше він називався OpenIPC Config, у спільноті — «мультиконфігуратор»; з релізу v0.7.14 (січень 2026) збірки називаються Companion-*. Репозиторій openipc-configurator теж перейменовано — старі посилання автоматично ведуть на OpenIPC/companion і відкривають ті самі релізи.

Тому окремої сторінки про «мультиконфігуратор» більше немає — усе зібрано тут, разом із покроковою прошивкою камери.

Не плутайте з OpenIPC Config від MarioFPV — це окремий інструмент для NVR та URLLC-пристроїв.

Що потрібно

КомпонентВимоги
ПристрійКамера з прошивкою OpenIPC або наземна станція на Radxa
МережаКомп'ютер і пристрій в одній мережі (Ethernet, Wi-Fi або USB-NCM)
ДоступПрацюючий SSH на пристрої, відомий IP та пароль root
ОСWindows, macOS або Linux (x64 чи arm64)

Встановлення

Готові збірки завантажуються зі сторінки релізів Companion. Збирати з коду не потрібно — оберіть архів під свою систему.

СистемаФайлЯк запустити
WindowsCompanion-windows-x64.zip або Companion-windows-arm64.zipРозпакувати архів і запустити Companion.Desktop.exe
macOSCompanion-macos-x64.dmg або Companion-macos-arm64.dmgЗмонтувати .dmg і перетягнути Companion.app у Applications
LinuxCompanion-linux-x64.zip або Companion-linux-arm64.zipРозпакувати і запустити ./Companion.DesktopApp (за потреби chmod +x)

Який архів обрати

arm64 — для Apple Silicon (M1–M4), Windows на ARM та одноплатних комп'ютерів. Для звичайних ПК і ноутбуків на Intel/AMD — x64.

Збірка з коду

Якщо потрібна остання версія з master або збірка під платформу без готового архіву, знадобиться .NET SDK 8.0:

bash
git clone https://github.com/OpenIPC/companion.git
cd companion

dotnet build Companion.Desktop/Companion.Desktop.csproj -c Release
dotnet run --project Companion.Desktop/Companion.Desktop.csproj

На Ubuntu/Debian залежності ставляться так:

bash
sudo apt-get install -y dotnet-sdk-8.0 dotnet-runtime-8.0

Android

Збірка під Android існує, але перебуває в статусі альфа. Відома проблема: під час роботи через тунель на Radxa застосунок може зависати — розробники пов'язують це з командою, що очікує на розірваному з'єднанні.

Підключення до пристрою

Companion працює поверх SSH і завжди підключається користувачем root — ім'я користувача вводити не потрібно, лише пароль.

  1. Увімкніть камеру (або Radxa) та переконайтесь, що вона доступна в мережі — наприклад, ping 192.168.1.10
  2. Запустіть Companion
  3. Заповніть поля вгорі вікна:
    • IP Address — адреса пристрою (типово 192.168.1.10 для камери)
    • Port — порт SSH, типово 22
    • Password — пароль root (на стоковій прошивці OpenIPC — 12345)
  4. Оберіть тип пристрою перемикачем: Camera або Radxa
  5. Натисніть Connect

Не знаєте IP камери

У застосунку є вбудований сканер мережі — він пройде по підмережі й покаже знайдені пристрої OpenIPC. Використані адреси кешуються, тож наступного разу IP можна просто обрати зі списку.

Вкладки застосунку

Набір вкладок залежить від того, який тип пристрою ви обрали при підключенні.

Камера

ВкладкаПризначення
WFBПараметри WFB-NG: канал, ширина каналу, потужність передавача, ключ шифрування
CameraНалаштування відео: роздільна здатність, FPS, бітрейт, кодек, експозиція
TelemetryНалаштування телеметрії та OSD: порт, швидкість UART, протокол
SetupМайстри налаштування пристрою та мережі, службові операції
FirmwareОновлення прошивки, резервне копіювання та відновлення
PreferencesНалаштування самого застосунку

Radxa (наземна станція)

ВкладкаПризначення
WFBПараметри WFB-NG на боці наземної станції
SetupМайстер налаштування станції
PreferencesНалаштування застосунку

Режим Firmware Focused

У Preferences можна увімкнути Firmware Focused Mode — тоді всі вкладки, крім Firmware і Preferences, ховаються. Зручно, коли Companion потрібен лише як інструмент прошивки.

Під основним вікном є панель логів — її можна розгорнути мишею за роздільник. Саме там видно реальні SSH-команди та помилки, тому при будь-якій проблемі дивіться спершу туди.

Прошивка камери

Найчастіша задача, заради якої відкривають конфігуратор.

Якщо потрібне лише скидання налаштувань

Коли оновлювати прошивку не треба, а потрібне тільки повне скидання до заводських налаштувань — виконайте на пристрої команду firstboot (через SSH або термінал). Вона поверне заводські налаштування без перевстановлення прошивки.

  1. Переконайтесь, що у вас є стабільне підключення до пристрою (Air Unit) — див. Підключення до пристрою вище
  2. Відкрийте вкладку Firmware та оберіть ваш пристрій — виробника, модель і тип прошивки
Вкладка Firmware у Companion

Вкладка Firmware (скриншот версії v0.7.2). Прошивку можна обрати трьома способами — автоматично за виробником і моделлю (рекомендовано), зі списку образів або файлом з диска.

Увага!

Перед початком прошивки обов'язково перевірте якість живлення дрона!
У разі вимкнення живлення під час прошивки ви можете «зацеглити» ваш пристрій.

  1. Очікуйте кілька хвилин, поки з'явиться пінг до пристрою (синя кнопка Connect у конфігураторі)

  2. Якщо протягом 5 хвилин підключення так і не з'явилось — пристрій не прошився. Перейдіть до інструкції з відновлення: Загальний гайд з прошивки через UART

Перед прошивкою зробіть бекап

Резервна копія стокової прошивки займає кілька хвилин і рятує від більшості невдалих експериментів.

Пресети

Пресет — це готовий набір налаштувань (канал, потужність, параметри камери), який застосовується одним натисканням. Офіційна збірка пресетів живе в репозиторії OpenIPC/fpv-presets.

Вкладку Presets тимчасово приховано

У версіях до v0.7.15 пресети були окремою вкладкою (її видно на скриншотах старіших збірок), але з січня 2026 її приховано: механізм пресетів переробляється, формат і поведінка ще зміняться. У поточних релізах застосувати пресет із застосунку не можна — нижче описано формат на майбутнє.

Кожен пресет — це окрема тека з файлом preset-config.yaml:

yaml
name: "High Power FPV"
author: "OpenIPC"
description: "Optimized settings for high-power FPV."
sensor: "milos-sensor.bin"
files:
  wfb.yaml:
    wireless.txpower: "30"
    wireless.channel: "161"
  majestic.yaml:
    fpv.enabled: "true"
    system.logLevel: "info"

Що тут описано:

  • Метаданіname, author, description, category
  • files — які файли на пристрої змінити і які ключі в них перезаписати
  • sensor — необов'язковий бінарний файл сенсора, який буде залитий на пристрій

Структура теки з пресетом:

presets/
├── high_power_fpv/
│   ├── preset-config.yaml
│   ├── sensor/
│       └── milos-sensor.bin

Механіка така: застосунок сканує теку presets/, читає кожен preset-config.yaml і будує з нього список змін, які будуть внесені на пристрій. Щоб додати свій пресет у загальну збірку — надішліть pull request у fpv-presets.

Резервна копія прошивки

Це найкорисніша функція Companion: перед будь-якими експериментами варто зняти повний дамп флеш-пам'яті камери.

На вкладці Firmware розгорніть Backup / Restore і запустіть створення копії. Застосунок:

  1. Зупинить стример та інші важкі процеси, щоб звільнити RAM
  2. Вичитає всі розділи /dev/mtdblock* через dd
  3. Порахує MD5 для кожного .bin
  4. Спакує все в .tar.gz і завантажить архів на ваш комп'ютер

Всередині архіву:

backup-<chiptype>-<timestamp>/
  mtdblock0.bin   # завантажувач (U-Boot)
  mtdblock1.bin   # оточення завантажувача
  mtdblock2.bin   # ядро
  mtdblock3.bin   # rootfs
  mtdblock4.bin   # rootfs_data (налаштування користувача)
  md5sums.txt     # контрольні суми

Назви й кількість розділів залежать від SoC. Розділ rootfs_data містить ваші налаштування — після відновлення все, що ви змінили вже після створення копії, буде перезаписано.

Довідник розділів

РозділПристрійВміст
boot/dev/mtd0Завантажувач U-Boot
env/dev/mtd1Змінні оточення U-Boot
kernel/dev/mtd2Ядро Linux (uImage)
rootfs/dev/mtd3Коренева файлова система (SquashFS)
rootfs_data/dev/mtd4Оверлей з налаштуваннями користувача

Розмітка й нумерація відрізняються між SoC і виробниками. Перед прошивкою завжди звіряйтеся з /proc/mtd на конкретному пристрої.

Відновлення прошивки

Небезпечна операція

Відновлення прошивки — незворотна операція. Запис некоректних даних або втрата живлення під час прошивки можуть остаточно «зацеглити» пристрій. Беріться за це лише якщо розумієте ризики й маєте перевірену резервну копію.

Через Companion (рекомендовано)

Спосіб працює, поки пристрій завантажується й доступний по SSH.

  1. Відкрийте вкладку FirmwareBackup / Restore
  2. Поставте позначку "I accept the risk of permanently bricking this device"
  3. Натисніть Restore from Backup і оберіть свій архів .tar.gz
  4. Підтвердьте попередження

Далі застосунок розпакує архів, звірить MD5 локально, прочитає /proc/mtd з пристрою, щоб підтвердити розмітку, залиє розділи через flashcp і перезавантажить пристрій. Якщо перевірка контрольних сум не пройде, відновлення буде скасовано до будь-якого запису на пристрій.

Вручну через SSH

Якщо застосунок використати не виходить, але SSH до пристрою є:

bash
# 1. Розпакувати архів
tar -xzf backup-<chiptype>-<timestamp>.tar.gz
cd backup-<chiptype>-<timestamp>

# 2. Перевірити контрольні суми
md5sum -c md5sums.txt

# 3. Скопіювати розділи на пристрій
scp mtdblock*.bin root@<device-ip>:/tmp/

# 4. Прошити кожен розділ
ssh root@<device-ip>

flashcp -v /tmp/mtdblock0.bin /dev/mtd0   # завантажувач
flashcp -v /tmp/mtdblock1.bin /dev/mtd1   # оточення
flashcp -v /tmp/mtdblock2.bin /dev/mtd2   # ядро
flashcp -v /tmp/mtdblock3.bin /dev/mtd3   # rootfs
flashcp -v /tmp/mtdblock4.bin /dev/mtd4   # rootfs_data

reboot

Тільки flashcp

flashcp стирає і записує атомарно. Не використовуйте dd для запису в MTD-розділи — він не стирає пам'ять перед записом. Номери розділів звіряйте з реальним /proc/mtd вашого пристрою.

Щоб оновити лише ядро та rootfs, не чіпаючи завантажувач і налаштування:

bash
flashcp -v /tmp/mtdblock2.bin /dev/mtd2
flashcp -v /tmp/mtdblock3.bin /dev/mtd3
reboot

Якщо пристрій не завантажується

Коли ядро або rootfs пошкоджені й Linux не стартує, залишаються апаратні шляхи:

  • Через U-Boot і TFTP — потрібен UART-перехідник та TFTP-сервер. Адреси флеш-пам'яті й розміри розділів залежать від конкретного SoC, тому дійте за загальним гайдом з прошивки через UART.
  • З SD-картки — на SigmaStar та Ingenic завантажувач ініціалізує SD-картку сам і шукає на ній скрипт boot.scr, тож відновлення можливе без UART.
  • Пошкоджений завантажувач (mtd0) — пристрій не видає нічого в консоль і програмно не відновлюється. Потрібен апаратний програматор (наприклад, CH341A) з підключенням напряму до чипа SPI NOR.

Файли налаштувань і логи

Сам застосунок зберігає налаштування у файлі appsettings.json — там задаються перевірка оновлень, логування, зіставлення hostname пристроїв та репозиторії пресетів.

Системаappsettings.jsonЛоги
Windows%APPDATA%\Local\Companion\appsettings.json%APPDATA%\Local\Companion\Logs
macOS$HOME/Library/Application Support/Companion/appsettings.json$HOME/Library/Application Support/Companion/Logs
Linux~/.config/appsettings.json~/.config/companion.log
Android/data/user/0/org.openipc.Companion/files/.config/companion.log

Логування налаштовується через Serilog — довідник з конфігурації.

Вирішення проблем

Помилка hostname при підключенні

Companion визначає тип пристрою за його hostname. Якщо ваш пристрій не в списку, додайте його в секцію DeviceHostnameMapping файлу appsettings.json:

json
"DeviceHostnameMapping": {
  "Camera": [
    "openipc-ssc338q",
    "openipc-ssc30kq"
  ],
  "Radxa": [
    "radxa",
    "raspberrypi"
  ],
  "NVR": [
    "openipc-hi3536dv100"
  ]
}

Не підключається взагалі

  1. ✅ Пристрій пінгується з комп'ютера
  2. ✅ IP і порт правильні (типово 22)
  3. ✅ Пароль root вірний (стоковий — 12345)
  4. ✅ Обраний правильний тип пристрою (Camera / Radxa)
  5. ✅ Подивіться панель логів унизу вікна — там буде текст помилки SSH

macOS не запускає застосунок

Оновіться до останнього релізу: у версії v0.9.4 виправлено запуск підписаного застосунку на macOS (додано .NET entitlements).

Android зависає

Відома проблема альфа-збірки при роботі через тунель на Radxa. Поки що використовуйте десктопну версію.

Корисні посилання

Чи була ця сторінка корисною?