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 ( |
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.
JIGUANG— der Geschichtenerzähler / Administrator (1= allgegenwärtig,0= null 極光-Bytes einkompiliert).YOSHI_GYRO— der Zephyrus-MPU6050-Gyro-Pfad.YOSHI_RGB— die eingebaute WS2812B-Aurora (die stets leuchtende Stellungsfarbe).JIGUANG_PROMPT— der Prompt-String der Admin-Konsole (Standard"極光"); benenne ihn im Sketch um.BOARD_CUSTOM— liefere deine eigenen PinsCUSTOM_RP2040_*_DEFAULT/CUSTOM_S3_*_DEFAULT.
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
YOSHIMITSU targets ESP32-S3 or RP2040 only— dein Board ist keines von beiden; prüfe Werkzeuge → Board oder definiereBOARD_CUSTOM.Ein Befehl antwortet „der Thron ist bewacht“ — das ist ein Administratorbefehl; tippe zuerst
極光.esptool läuft in MEDITATION in einen Timeout — prüfe, ob die Bridge-UART-Pins (
BRIDGE_RX_PIN/BRIDGE_TX_PIN) zu deiner Verdrahtung passen.