Waybeam v0.40 — stabilization on Maruko, artificial horizon and new Star6E modes
Just a week after v0.24 — another big leap: on July 11 a squash sync with the developer's fork landed in OpenIPC/waybeam_venc — 26 PRs, roughly two months of work. The current version is v0.40.1. Below are the highlights of v0.25–v0.40.1 and what to watch out for when upgrading.
🔹 Stabilization now on Maruko too
The most visible change: video0.framing = stab (v0.35) and stab-fill (v0.37) now work on Infinity6C / Maruko — at feature parity with Star6E. It turned out the MI_IVE motion detector on this chip was blocked by an incompatible vendor library, not the hardware; a compatible libmi_ive.so now ships in the tarball.
Caveats:
- the detector is a software NEON library, so on the single-core Maruko stabilization costs a noticeable CPU share (
stab-fill≈29% of the core at 50 fps); - a new
video0.stabAccuracyfield (v0.36):high/medium/low/auto— the quality ↔ CPU lever.auto=highon Star6E,lowon Maruko; - on Maruko
stab-fillis incompatible withrecord.mode: "dual".
🔹 Attitude — an artificial horizon from the IMU
The BMI270 gyro, until now listed as a "POC with no consumer", got a job (v0.39–v0.40):
- a new
attitudeconfig section: mount angle (mountDeg), inversions, sensor axis remap (axisFwd/axisDown) for boards in non-standard orientations, level trims; GET /api/v1/attitude— live roll/pitch/yaw for HUDs;GET /api/v1/attitude/calibrate_level— one-command level calibration: hold the camera level for ~1.5 s, the trims are solved and persisted automatically;- a 12-byte ATTITUDE trailer in the RTP sidecar — an artificial horizon right in the per-frame telemetry;
- the sidecar itself is now multi-subscriber: up to 4 receivers at once, so a HUD subscription no longer hijacks the telemetry from the adaptive-link controller;
- the WebUI gained a 14th section, Attitude, with a live readout and a "Capture level trims" button.
Limitations: the trailer and calibration are Star6E-only (on Maruko calibrate_level returns 501). v0.40.1 hardened the estimator: corrupt IMU samples (NaN/Inf) are dropped — a "frozen" horizon with a valid status can no longer happen.
🔹 In-tree Star6E sensor drivers BREAKING
Star6E caught up with Maruko: instead of the stock .ko files there are now in-tree IMX335/IMX415 drivers (v0.25) with reworked mode lineups (v0.26–v0.34):
- IMX335: 2560×1920@30/60, 2560×1440@90, 2176×1224@100, 1920×1080@120 and the ultra-low-latency
1600×900@144; - IMX415: 5 visible modes — 4K@~33, 2816×1584@60, 1920×1080@90, 1728×972@100,
1728×816@120; - some service modes were hidden, the indices were renumbered several times.
Check sensor.mode before upgrading
There are now fewer modes than in the stock driver. A persisted index in /etc/waybeam.json outside the new range keeps waybeam from starting (mode-select error at boot). Set "mode": -1 or check the index against GET /api/v1/modes after upgrading.
🔹 Honest FPS and exact CBR
- True 144 fps (v0.34.1): the encoder now receives the real sensor rate rather than one capped at 120 — previously rate control broke and inflated the bitrate several-fold;
- fixed-framerate exposure policy (v0.38): AE no longer stretches the frame — the rate does not sag with scene brightness (previously 142–143.5 instead of 144 depending on lighting);
- exact CBR compensation for modes above 120 fps: at 144 fps the on-air bitrate now matches the setting (it used to overshoot by ~1.19×).
🔹 Stability: a watchdog against hangs
Adversarial mode-switch testing exposed a long-standing SigmaStar SDK flaw: a pipeline teardown could wedge in an uninterruptible D-state (which also explains old "dead" cameras after a resolution change). In v0.37:
- two-phase stabilization teardown — cut hang incidence from ~1 in 2 to <1 in 20;
- a teardown watchdog: if a pipeline restart has not completed within 12 s — a bounded automatic reboot (~45 s) instead of an endless hang. Benefits every mode, not just stabilization.
🔹 Documentation
The Waybeam pages have been updated to v0.40.1 (legacy details live in collapsible blocks):
- Waybeam overview — features and comparison with Majestic
- Install on the camera — tarball,
/etc/waybeam.jsonconfig, first run - WFB-ng integration — replacing Majestic, the ground station
- Web panel and HTTP API — attitude, framing, resilience, all endpoints
Repository: github.com/OpenIPC/waybeam_venc — MIT license, open source.

