How yunyu-x/yunyu-esp32 works
yunyu-esp32 is the LingCube modular robot ecosystem’s firmware, StickS3 companion/HIL terminal, and open hardware design. The user workflow runs through the StickS3 network interfaces for control and bidirectional audio, while the robot firmware manages attitude, motion, and optical mesh communication; hardware design and simulation form a separate engineering branch. README capabilities are included, but many subsystem links are documented rather than visible in sampled implementation, so those edges cite the README; unsampled internal wiring is omitted.
Main entry points: src/main.cpp Buddy Runtime · src/main.cpp Robot Runtime · sticks3_wifi.h Wi-Fi Console · roll_fsm.cpp Roll Controller
Components 34
StickS3 Companion
- Buddy Runtime
firmware/m5sticks3_buddy/src/main.cpp - Wi-Fi Console
firmware/m5sticks3_buddy/include/sticks3_wifi.h - Audio Subsystem
firmware/m5sticks3_buddy/include/sticks3_audio.h - Bailian Client
firmware/m5sticks3_buddy/include/sticks3_bailian_client.h - Buddy Protocol
firmware/m5sticks3_buddy/src/buddy_protocol.cpp - GBK Unicode
firmware/m5sticks3_buddy/include/gbk_to_utf8.h - Conversation Memory
firmware/m5sticks3_buddy/include/sticks3_memory_store.h - Wakeword Engine
firmware/m5sticks3_buddy/include/sticks3_wakeword.h - Wi-Fi Configuration
firmware/m5sticks3_buddy/include/sticks3_wifi_config.h - I²C Lock
firmware/m5sticks3_buddy/include/sticks3_i2c_mutex.h - System Metrics
firmware/m5sticks3_buddy/include/sticks3_system_metrics.h
Robot Firmware
- Robot Runtime
firmware/esp32_msrr_firmware/src/main.cpp - Roll Controller
firmware/esp32_msrr_firmware/src/controllers/roll_fsm.cpp - Attitude EKF
firmware/esp32_msrr_firmware/src/filters/attitude_ekf.cpp - Motor Driver
firmware/esp32_msrr_firmware/src/drivers/motor_mcpwm.cpp - EPM Driver
firmware/esp32_msrr_firmware/src/drivers/epm_driver.cpp - Driver Interface
firmware/esp32_msrr_firmware/include/drivers/driver_interface.h - Hardware Abstraction
firmware/esp32_msrr_firmware/include/hal/hal_interface.h - Optical Mesh
firmware/esp32_msrr_firmware/src/comm/optical_mesh_protocol.cpp - Neuromorphic Reflex
firmware/esp32_msrr_firmware/src/controllers/neuromorphic_reflex.cpp - Multi-Unit FSM
firmware/esp32_msrr_firmware/src/controllers/multi_unit_fsm.cpp
Hardware Design
- 3D CAD Models
hardware/cad/generate_cad_models.py - PCB Design
hardware/kicad/generate_kicad_pcb.py - Manufacturing Package
hardware/scripts/export_manufacturing_package.py - Circuit Simulation
hardware/simulate_circuit_spice.py - Fault Simulation
hardware/simulate_harsh_environment_and_faults.py - Netlist Verification
hardware/verify_circuit_netlist.py
Robot Adapters
- Actuator Bus
microduck/adapters/actuator_bus_manager.py - Behavior Planner
microduck/adapters/behavior_tree_planner.py - Brain Protocol
microduck/adapters/brain_cerebellum_protocol.py - Observation Adapter
microduck/adapters/microduck_observation_adapter.py
Other components
- Mobile Clients
- PC Clients
- WeChat Clients
Connections 34
- Mobile Clients → Wi-Fi Console: uses HTTP
README.md - PC Clients → Buddy Runtime: connects BLE
README.md - WeChat Clients → Wi-Fi Console: uses TCP/UDP
README.md - Wi-Fi Console → Audio Subsystem: controls audio
README.md - Buddy Runtime → Wi-Fi Console: initializes
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → Bailian Client: dispatches queries
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → Buddy Protocol: uses protocol
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → GBK Unicode: converts text
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → Wi-Fi Configuration: loads config
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → I²C Lock: uses lock
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → System Metrics: reads metrics
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → Conversation Memory: uses memory
firmware/m5sticks3_buddy/src/main.cpp - Buddy Runtime → Wakeword Engine: uses detection
firmware/m5sticks3_buddy/src/main.cpp - Bailian Client → Audio Subsystem: streams audio
firmware/m5sticks3_buddy/include/sticks3_bailian_client.h - Bailian Client → Conversation Memory: stores turns
firmware/m5sticks3_buddy/include/sticks3_bailian_client.h - Wi-Fi Console → Bailian Client: controls client
firmware/m5sticks3_buddy/include/sticks3_wifi.h - Wi-Fi Console → Audio Subsystem: serves recordings
firmware/m5sticks3_buddy/include/sticks3_wifi.h - Wi-Fi Console → Conversation Memory: clears memory
firmware/m5sticks3_buddy/include/sticks3_wifi.h - Robot Runtime → Roll Controller: updates
firmware/esp32_msrr_firmware/src/main.cpp - Robot Runtime → Motor Driver: updates
firmware/esp32_msrr_firmware/src/main.cpp - Robot Runtime → EPM Driver: updates
firmware/esp32_msrr_firmware/src/main.cpp - Robot Runtime → Attitude EKF: initializes
firmware/esp32_msrr_firmware/src/main.cpp - Robot Runtime → Optical Mesh: broadcasts heartbeat
firmware/esp32_msrr_firmware/src/main.cpp - Roll Controller → Motor Driver: uses driver
- Roll Controller → EPM Driver: uses driver
- Roll Controller → Attitude EKF: uses estimate
- Motor Driver → Driver Interface: implements
- EPM Driver → Driver Interface: implements
- Driver Interface → Hardware Abstraction: uses abstraction
- Robot Runtime → Neuromorphic Reflex: runs reflex
- Robot Runtime → Multi-Unit FSM: runs coordination
- PCB Design → Manufacturing Package: produces outputs
- PCB Design → Netlist Verification: checked by
hardware/verify_circuit_netlist.py - Behavior Planner → Brain Protocol: uses protocol
microduck/adapters/behavior_tree_planner.py