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

Головне вікно 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. Збирати з коду не потрібно — оберіть архів під свою систему.
| Система | Файл | Як запустити |
|---|---|---|
| Windows | Companion-windows-x64.zip або Companion-windows-arm64.zip | Розпакувати архів і запустити Companion.Desktop.exe |
| macOS | Companion-macos-x64.dmg або Companion-macos-arm64.dmg | Змонтувати .dmg і перетягнути Companion.app у Applications |
| Linux | Companion-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:
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 залежності ставляться так:
sudo apt-get install -y dotnet-sdk-8.0 dotnet-runtime-8.0Android
Збірка під Android існує, але перебуває в статусі альфа. Відома проблема: під час роботи через тунель на Radxa застосунок може зависати — розробники пов'язують це з командою, що очікує на розірваному з'єднанні.
Підключення до пристрою
Companion працює поверх SSH і завжди підключається користувачем root — ім'я користувача вводити не потрібно, лише пароль.
- Увімкніть камеру (або Radxa) та переконайтесь, що вона доступна в мережі — наприклад,
ping 192.168.1.10 - Запустіть Companion
- Заповніть поля вгорі вікна:
- IP Address — адреса пристрою (типово
192.168.1.10для камери) - Port — порт SSH, типово
22 - Password — пароль root (на стоковій прошивці OpenIPC —
12345)
- IP Address — адреса пристрою (типово
- Оберіть тип пристрою перемикачем: Camera або Radxa
- Натисніть 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 або термінал). Вона поверне заводські налаштування без перевстановлення прошивки.
- Переконайтесь, що у вас є стабільне підключення до пристрою (Air Unit) — див. Підключення до пристрою вище
- Відкрийте вкладку Firmware та оберіть ваш пристрій — виробника, модель і тип прошивки
Вкладка Firmware (скриншот версії v0.7.2). Прошивку можна обрати трьома способами — автоматично за виробником і моделлю (рекомендовано), зі списку образів або файлом з диска.
Увага!
Перед початком прошивки обов'язково перевірте якість живлення дрона!
У разі вимкнення живлення під час прошивки ви можете «зацеглити» ваш пристрій.
Очікуйте кілька хвилин, поки з'явиться пінг до пристрою (синя кнопка Connect у конфігураторі)
Якщо протягом 5 хвилин підключення так і не з'явилось — пристрій не прошився. Перейдіть до інструкції з відновлення: Загальний гайд з прошивки через UART
Перед прошивкою зробіть бекап
Резервна копія стокової прошивки займає кілька хвилин і рятує від більшості невдалих експериментів.
Пресети
Пресет — це готовий набір налаштувань (канал, потужність, параметри камери), який застосовується одним натисканням. Офіційна збірка пресетів живе в репозиторії OpenIPC/fpv-presets.
Вкладку Presets тимчасово приховано
У версіях до v0.7.15 пресети були окремою вкладкою (її видно на скриншотах старіших збірок), але з січня 2026 її приховано: механізм пресетів переробляється, формат і поведінка ще зміняться. У поточних релізах застосувати пресет із застосунку не можна — нижче описано формат на майбутнє.
Кожен пресет — це окрема тека з файлом preset-config.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 і запустіть створення копії. Застосунок:
- Зупинить стример та інші важкі процеси, щоб звільнити RAM
- Вичитає всі розділи
/dev/mtdblock*черезdd - Порахує MD5 для кожного
.bin - Спакує все в
.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.
- Відкрийте вкладку Firmware → Backup / Restore
- Поставте позначку "I accept the risk of permanently bricking this device"
- Натисніть Restore from Backup і оберіть свій архів
.tar.gz - Підтвердьте попередження
Далі застосунок розпакує архів, звірить MD5 локально, прочитає /proc/mtd з пристрою, щоб підтвердити розмітку, залиє розділи через flashcp і перезавантажить пристрій. Якщо перевірка контрольних сум не пройде, відновлення буде скасовано до будь-якого запису на пристрій.
Вручну через SSH
Якщо застосунок використати не виходить, але SSH до пристрою є:
# 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, не чіпаючи завантажувач і налаштування:
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:
"DeviceHostnameMapping": {
"Camera": [
"openipc-ssc338q",
"openipc-ssc30kq"
],
"Radxa": [
"radxa",
"raspberrypi"
],
"NVR": [
"openipc-hi3536dv100"
]
}Не підключається взагалі
- ✅ Пристрій пінгується з комп'ютера
- ✅ IP і порт правильні (типово
22) - ✅ Пароль root вірний (стоковий —
12345) - ✅ Обраний правильний тип пристрою (Camera / Radxa)
- ✅ Подивіться панель логів унизу вікна — там буде текст помилки SSH
macOS не запускає застосунок
Оновіться до останнього релізу: у версії v0.9.4 виправлено запуск підписаного застосунку на macOS (додано .NET entitlements).
Android зависає
Відома проблема альфа-збірки при роботі через тунель на Radxa. Поки що використовуйте десктопну версію.
Корисні посилання
- Companion на GitHub — код, issues, документація
- Релізи Companion — готові збірки під усі платформи
- Демо на YouTube — огляд роботи застосунку
- fpv-presets — офіційна збірка пресетів
- Прошивка через UART — відновлення пристрою, який не завантажується
- Оновлення прошивки (sysupgrade) — те саме вручну через термінал
- Конфігурація WFB-NG — що саме змінюють параметри на вкладці WFB

