Companion Compute Mode
The symbiosis: PteronautOS is the spirit, YOSHIMITSU is the muscle. Two boards, one flight — split across the bridge by one admin command: MUSHIN (無心).
Architecture
In companion mode the two MCUs stop being a receiver and a converter and become one brain with two halves. This diagram is the eternal map:
graph LR
subgraph P["PTERONAUTOS · ESP8285 · 80 MHz — the spirit"]
CRSF["CRSF RX · SX1280"]
INTENT["mixer intent · waveform soul"]
end
subgraph Y["YOSHIMITSU · RP2040-Tiny · 133 MHz dual-core — the muscle"]
GYRO["MPU6050 gyro · local I2C"]
PID["Zephyrus PID · runs here"]
C1["Core1 · companion compute
mixer + flapping offload"]
C0["Core0 · muscle memory 無心
PIO servo-PWM"]
end
CRSF --> INTENT
INTENT -- "intent · shortly before" --> C1
GYRO --> PID
PID -- "correction" --> C1
C1 -- "samples" --> C0
C0 --> SRV["servos · wing L/R · crest rudder"]
Why the gyro stays on the RP2040
The MPU6050 is physically wired to the RP2040 — so the PID is computed there too. Shipping raw gyro samples over the bridge to PteronautOS, only to PID them and ship corrections back, would be pure latency devotion. The muscle that holds the gyro corrects the stroke: Zephyrus lives on the companion, not on the receiver.
The split
Each half computes what it is closest to.
| Role | Board | Duty |
|---|---|---|
| PTERONAUTOS |
ESP8285
|
CRSF RX decode + mixer intent (waveform soul) — what is shortly before |
| YOSHIMITSU |
RP2040-Tiny
|
gyro + PID (Zephyrus, local) + companion compute + PIO servo-PWM — what is closer to muscle memory |
Two cores, one strike
The RP2040-Tiny is the only ELRS-PWM platform with hardware PIO state machines — eight of them — for glitch-free servo PWM. Its two Cortex-M0+ cores split cleanly:
- Core1 · companion compute — mixer + flapping offload: the trajectory the muscle will trace.
- Core0 · muscle memory — PIO servo-PWM: the samples that actually move the wing and the crest rudder.
MUSHIN — the muscle-memory cheatcode
MUSHIN (無心, the no-mind) decides whether YOSHIMITSU stays a silent converter or wakes as the companion muscle. It boots armed — the cheatcode; the JIGUANG admin console commands it over USB serial: MUSHIN reports, MUSHIN ON/OFF arms or disarms. The choice persists in flash (EEPROM byte 6 on the RP2040) — configuration by command, not by recompile.
Why it is a cheatcode
No other ELRS-PWM board carries a dual-core with hardware PIO. For the price of the tiny board you get two cores — one pure muscle, one companion computer. Elsewhere you would pay more and always be weaker.
Cheaper, and always stronger: this is the hermetical shinobi's answer to the market.
Helicopter or flapping — the same stroke
From the sword's view, helicopter or flapping is the same: the mixer emits a canonical trajectory — channel to servo path — and the sword never asks which vehicle it carries. Back-turned — the pose flies on, only the gaze changes.