YOSHIMITSU · Referencia de API
El Shinobi Hermético como biblioteca: un sketch relajado, dos objetivos, seis posturas y la consola protegida por 極光 que administra el trono.
Arquitectura
YOSHIMITSU es una biblioteca con un sketch fino encima. Todo el núcleo vive en src/Yoshimitsu.h; cada valor por defecto vive en src/Yoshimitsu_Loadout.h como _DEFAULT (pines, tiempos, niveles de compuertas). El sketch — yoshimitsu.ino o la copia examples/Yoshimitsu_Default/ — solo guarda tu* configuración y las sustituciones que definas antes del include. Actualiza la biblioteca sin volver a tocar tu sketch.
La detección de objetivo es automática: ARDUINO_ARCH_RP2040 elige la vía RP2040-Tiny (Servo.h, cambio de postura por toques de RESET), ARDUINO_ARCH_ESP32/ARDUINO_ARCH_ESP32S3 elige la vía ESP32-S3 (ESP32Servo.h, USB nativo). Cualquier otra cosa falla en compilación con un #error claro.
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
Las Seis Posturas
Cada postura es un valor del enum Stance (0–5) elegido en tiempo de ejecución — por comando USB, el botón GPIO0 (ESP32-S3) o toques de RESET (RP2040-Tiny).
| Postura | Función |
|---|---|
KINCHO
|
La parada — conversor CRSF→PWM; los canales de radio se vuelven microsegundos de servo. |
MANJI_DRAGONFLY
|
La levitación — conversor más el PID del giroscopio Zephyrus local en la cresta. |
FLEA
|
El impulso — plantilla de ciclo de energía que lleva el receptor al bootloader y luego a MEDITATION. |
MEDITATION
|
La esponja — flasher de bolsillo; el USB↔UART es un puente transparente puro para esptool. |
NSS
|
El banco sin espada — accionamiento directo del servo ( |
BACK_TURNED
|
El espejo — reposo engañoso; el eco UART nunca mira atrás. |
Compuertas de Compilación
Todo lo opcional se elimina limpiamente al desactivarlo — sin bytes muertos, sin referencias colgantes. Sustituye cualquiera de estos en tu sketch antes del include.
JIGUANG— el narrador / administrador (1= omnipresente,0= cero bytes de 極光 compilados).YOSHI_GYRO— la vía del giroscopio Zephyrus MPU6050.YOSHI_RGB— la aurora WS2812B integrada (el color siempre encendido de la postura).JIGUANG_PROMPT— la cadena del prompt de la consola de administración (por defecto"極光"); renómbrala en el sketch.BOARD_CUSTOM— aporta tus propios pinesCUSTOM_RP2040_*_DEFAULT/CUSTOM_S3_*_DEFAULT.
API de la Consola
Los comandos de postura quedan abiertos: KINCHO, MANJI, FLEA, MEDITATION, NSS, BACK, POSE n, más STATUS, SERVO i us y HELP. Los comandos de administrador están protegidos tras el prompt: escribe primero 極光 y luego DOC, SETUP, JIGUANG, MUTE, CRSF, SCORE, ELRS, LEGEND, BRIDGE, ADMIN o MUSHIN.
極光 DOC imprime el catálogo de trucos; 極光 SETUP imprime el asistente de meditación (postura, nivel de voz, estado MUSHIN, energía del receptor). Una línea sin prompt que toque un comando protegido responde "el trono está custodiado" y regresa.
MUSHIN 無心 — el protocolo sin-mente
El puente de memoria muscular (espíritu→músculo) habla una trama de 4 campos por los mismos dos cables del flasher. Arranca armado, persistido en flash.
[0x9B][len][type][payload][xor]
0x01 INTENT n × uint16 µs per servo
0x02 ANNOUNCE 1 Hz keepalive
0x03 TELEMETRY gyro rate + correction
Despliegue
Instala la carpeta sketches/yoshimitsu como biblioteca de Arduino y abre Archivo → Ejemplos → Yoshimitsu → Yoshimitsu_Default. Flashea una vez; después, las actualizaciones son git pull o una nueva versión — el sketch queda intacto.
Resolución de Problemas
YOSHIMITSU targets ESP32-S3 or RP2040 only— tu placa no es ninguna de las dos; revisa Herramientas → Placa o defineBOARD_CUSTOM.Un comando responde "el trono está custodiado" — es un comando de administrador; escribe primero
極光.esptool agota el tiempo en MEDITATION — confirma que los pines UART del puente (
BRIDGE_RX_PIN/BRIDGE_TX_PIN) coinciden con tu cableado.