Режим Companion Compute

Симбиоз: PteronautOS — дух, YOSHIMITSU — мышца. Две платы, один полёт — разделённые мостом одной командой администратора: MUSHIN (無心).

Архитектура

В режиме companion два МК перестают быть приёмником и конвертером и становятся одним мозгом с двумя половинами. Эта диаграмма — вечная карта:

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"]

Почему гироскоп остаётся на RP2040

MPU6050 физически подключён к RP2040 — поэтому PID тоже вычисляется там. Отправлять сырые отсчёты гироскопа через мост в PteronautOS, чтобы там регулировать их и возвращать поправки, — чистая жертва задержке. Мышца, держащая гироскоп, правит удар: Zephyrus живёт на companion, а не на приёмнике.

Разделение

Каждая половина вычисляет то, что к ней ближе всего.

Роль Плата Задача
PTERONAUTOS ESP8285 Декодирование CRSF RX + намерение микшера (душа формы волны) — то, что чуть раньше
YOSHIMITSU RP2040-Tiny гироскоп + PID (Zephyrus, локально) + companion compute + PIO servo-PWM — то, что ближе к мышечной памяти

Два ядра, один удар

RP2040-Tiny — единственная платформа ELRS-PWM с аппаратными машинами состояний PIO — их восемь — для servo-PWM без глитчей. Два его ядра Cortex-M0+ делятся чисто:

MUSHIN — чит-код мышечной памяти

MUSHIN (無心, пустой разум) решает, остаётся ли YOSHIMITSU молчаливым конвертером или просыпается мышцей-спутницей. Он стартует вооружённым — чит-код; консоль администратора JIGUANG командует им через USB-Serial: MUSHIN докладывает, MUSHIN ON/OFF взводит или снимает. Выбор живёт во флеше (байт 6 EEPROM на RP2040) — конфигурация командой, а не перекомпиляцией.

Почему это чит-код

Ни одна другая плата ELRS-PWM не несёт dual-core с аппаратным PIO. За цену крошечной платы получаешь два ядра — один чистый мускул, один компьютер companion. В другом месте заплатил бы больше и всегда был бы слабее.

Дешевле и всегда сильнее: таков ответ герметического синоби рынку.

Вертолёт или мах — тот же удар

С точки зрения меча вертолёт или мах — одно и то же: микшер выдаёт каноническую траекторию — путь от канала к серво — и меч никогда не спрашивает, какое средство несёт. Спиной — поза летит дальше, меняется лишь взгляд.