YOSHIMITSU · Référence de l'API

Le Shinobi Hermétique en bibliothèque : un sketch détendu, deux cibles, six postures et la console verrouillée par 極光 qui administre le trône.

Architecture

YOSHIMITSU est une bibliothèque surmontée d'un sketch mince. Tout le cœur vit dans src/Yoshimitsu.h ; chaque défaut vit dans src/Yoshimitsu_Loadout.h sous forme de valeurs _DEFAULT (broches, timings, niveaux de portes). Le sketch — yoshimitsu.ino ou la copie examples/Yoshimitsu_Default/ — ne garde que votre* configuration et les surcharges définies avant l'include. Mettez à jour la bibliothèque sans retoucher votre sketch.

La détection de cible est automatique : ARDUINO_ARCH_RP2040 choisit la voie RP2040-Tiny (Servo.h, changement de posture par appuis RESET), ARDUINO_ARCH_ESP32/ARDUINO_ARCH_ESP32S3 choisit la voie ESP32-S3 (ESP32Servo.h, USB natif). Tout le reste échoue à la compilation avec un #error clair.

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

Les Six Postures

Chaque posture est une valeur de l'enum Stance (0–5) choisie à l'exécution — par commande USB, le bouton GPIO0 (ESP32-S3) ou des appuis RESET (RP2040-Tiny).

Posture Rôle
KINCHO

La parade — convertisseur CRSF→PWM ; les canaux radio deviennent des microsecondes de servo.

MANJI_DRAGONFLY

La lévitation — convertisseur plus le PID gyroscopique Zephyrus local sur la crête.

FLEA

L'essor — gabarit de cycle d'alimentation qui fait tomber le récepteur en bootloader, puis MEDITATION.

MEDITATION

La tête-éponge — flasheur de poche ; l'USB↔UART est un pont purement transparent pour esptool.

NSS

Le banc sans épée — pilotage direct du servo (SERVO i us), sans radio.

BACK_TURNED

Le miroir — repos trompeur ; l'écho UART ne regarde jamais en arrière.

Portes de Compilation

Tout l'optionnel se compile proprement en moins lorsqu'il est désactivé — aucun octet mort, aucune référence pendante. Surchargez n'importe lequel dans votre sketch avant l'include.

API de la Console

Les commandes de posture restent ouvertes : KINCHO, MANJI, FLEA, MEDITATION, NSS, BACK, POSE n, plus STATUS, SERVO i us et HELP. Les commandes d'administration sont verrouillées derrière le prompt : tapez d'abord 極光, puis DOC, SETUP, JIGUANG, MUTE, CRSF, SCORE, ELRS, LEGEND, BRIDGE, ADMIN ou MUSHIN.

極光 DOC imprime le catalogue de cheatcodes ; 極光 SETUP imprime l'assistant de méditation (posture, niveau de voix, état MUSHIN, alimentation du récepteur). Une ligne sans prompt qui touche une commande verrouillée répond « le trône est gardé » et revient.

MUSHIN 無心 — le protocole sans-esprit

Le pont de mémoire musculaire (esprit→muscle) parle une trame à 4 champs sur les deux mêmes fils que le flasheur. Démarre armé, persisté en flash.

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

Déploiement

Installez le dossier sketches/yoshimitsu comme bibliothèque Arduino, puis ouvrez Fichier → Exemples → Yoshimitsu → Yoshimitsu_Default. Flashez une fois ; ensuite, les mises à jour sont git pull ou une nouvelle version — le sketch reste intact.

Dépannage