YOSHIMITSU · Справочник API

Герметичный Синоби как библиотека: один лёгкий скетч, две платформы, шесть стоек и охраняемая 極光 консоль, что правит троном.

Архитектура

YOSHIMITSU — это библиотека с тонким скетчем сверху. Всё ядро живёт в src/Yoshimitsu.h; каждый параметр по умолчанию живёт в src/Yoshimitsu_Loadout.h как значения _DEFAULT (пины, тайминги, уровни ворот). Скетч — yoshimitsu.ino или копия examples/Yoshimitsu_Default/ — хранит только вашу* конфигурацию и переопределения, заданные до include. Обновляйте библиотеку, не трогая свой скетч.

Определение платформы автоматическое: ARDUINO_ARCH_RP2040 выбирает путь RP2040-Tiny (Servo.h, переключение стоек касаниями RESET), ARDUINO_ARCH_ESP32/ARDUINO_ARCH_ESP32S3 выбирает путь ESP32-S3 (ESP32Servo.h, нативный USB). Всё остальное падает на компиляции с ясным #error.

graph TB
  SKETCH["yoshimitsu.ino
the relaxed sketch — config only"] LOADOUT["Yoshimitsu_Loadout.h
the starting loadout · *_DEFAULT"] CORE["src/Yoshimitsu.h
the whole core"] STANCES["six stances
KINCHO · MANJI · FLEA
MEDITATION · NSS · BACK"] CONSOLE["USB-serial console
極光-gated admin"] CRSF["CRSF RX"] BRIDGE["MUSHIN bridge
無心 no-mind protocol"] PWM["servo PWM
wing L/R · crest"] SKETCH --> CORE LOADOUT --> CORE CRSF --> CORE BRIDGE --> CORE CONSOLE --> CORE CORE --> STANCES STANCES --> PWM

Шесть Стоек

Каждая стойка — это значение перечисления Stance (0–5), выбираемое в рантайме — командой USB, кнопкой GPIO0 (ESP32-S3) или касаниями RESET (RP2040-Tiny).

Стойка Назначение
KINCHO

Парирование — конвертер CRSF→PWM; радиоканалы становятся микросекундами серво.

MANJI_DRAGONFLY

Левитация — конвертер плюс локальный гиро-PID Zephyrus на гребне.

FLEA

Подъём — оснастка цикла питания, сбрасывающая приёмник в загрузчик, затем MEDITATION.

MEDITATION

Голова-губка — карманный прошивальщик; USB↔UART — чисто прозрачный мост для esptool.

NSS

Скамья без меча — прямое управление серво (SERVO i us), без радио.

BACK_TURNED

Зеркало — обманчивый покой; эхо UART никогда не оглядывается.

Ворота Компиляции

Всё опциональное чисто вырезается при отключении — ни мёртвых байтов, ни висячих ссылок. Переопределяйте любой из них в скетче до include.

API Консоли

Команды стоек остаются открытыми: KINCHO, MANJI, FLEA, MEDITATION, NSS, BACK, POSE n, плюс STATUS, SERVO i us и HELP. Команды администратора заперты за промптом: сначала введите 極光, затем DOC, SETUP, JIGUANG, MUTE, CRSF, SCORE, ELRS, LEGEND, BRIDGE, ADMIN или MUSHIN.

極光 DOC печатает каталог чит-кодов; 極光 SETUP печатает мастер медитации (стойка, уровень голоса, состояние MUSHIN, питание приёмника). Строка без промпта, попавшая на защищённую команду, отвечает «трон охраняется» и возвращается.

MUSHIN 無心 — протокол без-ума

Мост мышечной памяти (дух→мышца) говорит кадром из 4 полей по тем же двум проводам, что и прошивальщик. Стартует взведённым, сохраняется во флеш.

[0x9B][len][type][payload][xor]
  0x01  INTENT    n × uint16 µs per servo
  0x02  ANNOUNCE  1 Hz keepalive
  0x03  TELEMETRY gyro rate + correction

Развёртывание

Установите папку sketches/yoshimitsu как библиотеку Arduino и откройте Файл → Примеры → Yoshimitsu → Yoshimitsu_Default. Прошейте один раз; далее обновления — это git pull или новый релиз — скетч остаётся нетронутым.

Устранение неполадок