Режим 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+ делятся чисто:
- Core1 · companion compute — выгрузка микшера + флаппинга: траектория, которую прочертит мышца.
- Core0 · мышечная память — PIO servo-PWM: отсчёты, что реально движут крылом и гребневым рулём.
MUSHIN — чит-код мышечной памяти
MUSHIN (無心, пустой разум) решает, остаётся ли YOSHIMITSU молчаливым конвертером или просыпается мышцей-спутницей. Он стартует вооружённым — чит-код; консоль администратора JIGUANG командует им через USB-Serial: MUSHIN докладывает, MUSHIN ON/OFF взводит или снимает. Выбор живёт во флеше (байт 6 EEPROM на RP2040) — конфигурация командой, а не перекомпиляцией.
Почему это чит-код
Ни одна другая плата ELRS-PWM не несёт dual-core с аппаратным PIO. За цену крошечной платы получаешь два ядра — один чистый мускул, один компьютер companion. В другом месте заплатил бы больше и всегда был бы слабее.
Дешевле и всегда сильнее: таков ответ герметического синоби рынку.
Вертолёт или мах — тот же удар
С точки зрения меча вертолёт или мах — одно и то же: микшер выдаёт каноническую траекторию — путь от канала к серво — и меч никогда не спрашивает, какое средство несёт. Спиной — поза летит дальше, меняется лишь взгляд.