Skip to content

Waybeam v0.40 — стабілізація на Maruko, штучний горизонт та нові режими Star6E

Лише тиждень після v0.24 — і новий великий стрибок: 11 липня в OpenIPC/waybeam_venc влили squash-синхронізацію з форком розробника — 26 PR-ів, приблизно два місяці роботи. Поточна версія — v0.40.1. Нижче — головне з v0.25–v0.40.1 і на що звернути увагу при оновленні.


🔹 Стабілізація тепер і на Maruko

Найпомітніша зміна: video0.framing = stab (v0.35) та stab-fill (v0.37) запрацювали на Infinity6C / Maruko — на рівні можливостей із Star6E. З'ясувалося, що детектор руху MI_IVE на цьому чипі блокувала несумісна vendor-бібліотека, а не залізо; сумісну libmi_ive.so тепер постачає тарбол.

Нюанси:

  • детектор — програмна NEON-бібліотека, тож на одноядерному Maruko стабілізація коштує помітну частку CPU (у stab-fill ≈29% ядра на 50 fps);
  • нове поле video0.stabAccuracy (v0.36): high / medium / low / auto — важіль «якість ↔ CPU». auto = high на Star6E, low на Maruko;
  • на Maruko stab-fill несумісний з record.mode: "dual".

🔹 Attitude — штучний горизонт з IMU

Гіроскоп BMI270, який досі значився «POC без споживача», отримав роботу (v0.39–v0.40):

  • нова секція конфігу attitude: кут монтажу (mountDeg), інверсії, перестановка осей (axisFwd/axisDown) для плат у нестандартній орієнтації, трими рівня;
  • GET /api/v1/attitude — живі roll/pitch/yaw для HUD;
  • GET /api/v1/attitude/calibrate_level — калібрування рівня однією командою: потримайте камеру рівно ~1.5 с, трими обчисляться і збережуться самі;
  • 12-байтовий трейлер ATTITUDE у RTP-sidecar — штучний горизонт прямо в покадровій телеметрії;
  • сам sidecar тепер мультипідписний: до 4 одержувачів одночасно, підписка HUD більше не «викрадає» телеметрію в adaptive-link контролера;
  • у WebUI з'явилась 14-та секція Attitude з живим індикатором і кнопкою «Capture level trims».

Обмеження: трейлер і калібрування — тільки Star6E (на Maruko calibrate_level повертає 501). У v0.40.1 оцінювач загартовано: биті IMU-семпли (NaN/Inf) відкидаються, «застиглий» горизонт зі статусом valid більше неможливий.


🔹 Власні драйвери сенсорів Star6E BREAKING

Star6E наздогнав Maruko: замість стокових .ko тепер власні in-tree драйвери IMX335/IMX415 (v0.25) з переробленими лінійками режимів (v0.26–v0.34):

  • IMX335: 2560×1920@30/60, 2560×1440@90, 2176×1224@100, 1920×1080@120 та ультранизьколатентний 1600×900@144;
  • IMX415: 5 видимих режимів — 4K@~33, 2816×1584@60, 1920×1080@90, 1728×972@100, 1728×816@120;
  • частину службових режимів приховано, індекси перенумеровано кілька разів.

Перевірте sensor.mode перед оновленням

Режимів тепер менше, ніж у стокового драйвера. Збережений у /etc/waybeam.json індекс поза новим діапазоном не дає waybeam стартувати (помилка вибору режиму при завантаженні). Поставте "mode": -1 або звірте індекс зі списком GET /api/v1/modes після оновлення.


🔹 Чесні FPS і точний CBR

  • Справжні 144 fps (v0.34.1): енкодер тепер отримує реальну частоту сенсора, а не обрізану до 120 — раніше rate-control «ламався» і завищував бітрейт у рази;
  • фіксована експозиційна політика (v0.38): AE більше не розтягує кадр — частота не «провисає» від яскравості сцени (раніше замість 144 виходило 142–143.5 залежно від освітлення);
  • точна компенсація CBR для режимів понад 120 fps: на 144 fps ефірний бітрейт тепер відповідає заданому (було ~1.19× перевищення).

🔹 Стабільність: watchdog проти зависань

Адверсарне тестування перемикань режимів виявило давню ваду SigmaStar SDK: teardown пайплайну міг зависнути в непереривному D-state (це пояснює й старі «мертві» камери після зміни роздільності). У v0.37:

  • двофазний teardown стабілізації — знизив частоту зависань з ~1 із 2 до <1 із 20;
  • teardown-watchdog: якщо перезапуск пайплайну не завершився за 12 с — обмежений автоматичний ребут (~45 с) замість вічного зависання. Працює для всіх режимів, не лише стабілізації.

🔹 Документація

Сторінки Waybeam актуалізовано під v0.40.1 (застарілі відомості — у розгортуваних блоках):

Репозиторій: github.com/OpenIPC/waybeam_venc — ліцензія MIT, відкритий код.

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