YOSHIMITSU · API-Referenz

Der Hermetische Shinobi als Bibliothek: ein entspannter Sketch, zwei Ziele, sechs Stellungen und die von 極光 bewachte Konsole, die den Thron verwaltet.

Architektur

YOSHIMITSU ist eine Bibliothek mit einem dünnen Sketch obendrauf. Der ganze Kern lebt in src/Yoshimitsu.h; jeder Standard lebt in src/Yoshimitsu_Loadout.h als _DEFAULT-Werte (Pins, Timings, Gate-Stufen). Der Sketch — yoshimitsu.ino oder die Kopie examples/Yoshimitsu_Default/ — hält nur deine* Konfiguration und die Overrides, die du vor dem Include definierst. Aktualisiere die Bibliothek, ohne deinen Sketch erneut anzufassen.

Die Zielerkennung ist automatisch: ARDUINO_ARCH_RP2040 wählt den RP2040-Tiny-Pfad (Servo.h, Stellungswechsel per RESET-Tippen), ARDUINO_ARCH_ESP32/ARDUINO_ARCH_ESP32S3 wählt den ESP32-S3-Pfad (ESP32Servo.h, natives USB). Alles andere scheitert zur Compile-Zeit mit einem klaren #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

Die Sechs Stellungen

Jede Stellung ist ein Stance-Enum-Wert (0–5), zur Laufzeit gewählt — per USB-Befehl, GPIO0-Taste (ESP32-S3) oder RESET-Tippen (RP2040-Tiny).

Stellung Aufgabe
KINCHO

Die Parade — CRSF→PWM-Wandler; Radiokanäle werden zu Servo-Mikrosekunden.

MANJI_DRAGONFLY

Die Levitation — Wandler plus das lokale Zephyrus-Gyro-PID auf dem Kamm.

FLEA

Der Aufschwung — Power-Cycle-Jig, der den Empfänger in den Bootloader wirft, dann MEDITATION.

MEDITATION

Der Schwammkopf — Taschenflasher; USB↔UART ist eine rein transparente Brücke für esptool.

NSS

Die schwertlose Bank — direkter Servo-Antrieb (SERVO i us), ohne Funk.

BACK_TURNED

Der Spiegel — täuschender Leerlauf; das UART-Echo blickt nie zurück.

Compile-Zeit-Gates

Alles Optionale kompiliert sauber heraus, wenn deaktiviert — keine toten Bytes, keine hängenden Referenzen. Überschreibe beliebige davon in deinem Sketch vor dem Include.

Konsolen-API

Stellungsbefehle bleiben offen: KINCHO, MANJI, FLEA, MEDITATION, NSS, BACK, POSE n, plus STATUS, SERVO i us und HELP. Administratorbefehle sind hinter dem Prompt verriegelt: tippe zuerst 極光, dann DOC, SETUP, JIGUANG, MUTE, CRSF, SCORE, ELRS, LEGEND, BRIDGE, ADMIN oder MUSHIN.

極光 DOC druckt den Cheatcode-Katalog; 極光 SETUP druckt den Meditations-Assistenten (Stellung, Stimmlage, MUSHIN-Zustand, Empfängerstrom). Eine promptlose Zeile, die einen gesperrten Befehl trifft, antwortet „der Thron ist bewacht“ und kehrt zurück.

MUSHIN 無心 — das No-Mind-Protokoll

Die Muskelgedächtnis-Brücke (Geist→Muskel) spricht einen 4-Feld-Frame über dieselben zwei Drähte wie der Flasher. Bootet scharf, in Flash persistiert.

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

Bereitstellung

Installiere den Ordner sketches/yoshimitsu als Arduino-Bibliothek und öffne Datei → Beispiele → Yoshimitsu → Yoshimitsu_Default. Flashe einmal; danach sind Updates git pull oder ein neues Release — der Sketch bleibt unangetastet.

Fehlerbehebung