Quick Start (XIAO ESP32S3)
1. Hardware Architecture
1.1 Drive & Power (RUC‑01 Interface Board)
Acts as the power/communication hub managing the bus and power distribution:
- Servo Bus: 4 on-board bus-servo ports (daisy-chain supported) carrying signal and power.
- PC Configuration Software Port: USB Type‑C for direct connection to the PC Configuration Software.
- System Power: Voltage conversion and stable supply for the controller.
- Communication: Standard UART Serial Port to receive commands from the host controller.
1.2 Logic Controller & Expansion (MCU + Grove Shield)
The robot’s “brain” running control algorithms and processing sensors:
- Core MCU: Seeed Studio XIAO series — compact and capable.
- Ecosystem: Grove expansion board exposing rich I/O.
- Main Role: Run robot kinematics and connect sensors (ultrasonic, vision, voice, etc.) via Grove for interactive functions.
1.3 Data Flow
Debug/Editor Mode
PC --(USB)--> RUC‑01 --(Bus)--> Servos
Note: Adjust Servo angles and save motion groups directly from PC; the XIAO is bypassed.
Autonomous Mode
Sensors/Remote --(signals)--> XIAO --(UART cmds)--> RUC‑01 --(Bus)--> Servos
Note: XIAO controls the robot based on sensors or preloaded code.
2. Mechanical Structure
- Structure overview and default Servo IDs
- Zero‑degree posture of all Servos
3. Motion Editor Guide
Web Motion Editor: Open
3.1 Editor Layout
Three modules:
- Serial connect/disconnect and message status
- Servo status/angle query & control
- Motion group optimization and import/export
3.2 Controls
3.2.1 Connect / Disconnect Serial
3.2.2 Real‑Time Posture Page
- Layout: Drag each Servo widget on the canvas to place robot parts; IDs correspond; click to lock the layout.
- Scan: Re‑scan all online Servos.
- Check: Over/under‑voltage protection, stall, and other abnormal states.
- Read Once: Read current angles once.
- Status Colors: Green = angle‑control; Red = release/damping.
Angle control by dragging:
- Real‑time Read: Continuously read Servo angles.
- Speed: Limit speed while dragging to avoid moving too fast.
- Unlock Modes: Release Servos for teaching (power‑off release / damping release).
3.2.3 Motion Group Page
- Motion Groups: Unlimited user‑defined groups.
- Add Group
- Check Abnormalities (over/under‑voltage, stall)
- Delete Group (keep at least one)
- Verification: Validate motions.
- Loop
- Stop
- Reorder: Drag to change order.
- Time: Duration to reach target angle (e.g., 2 s).
- Interval: Wait time between motions.
- Delete Motion
- Run Motion
- Add Current Motion
- Export Motion Group
- Import Motion Group
3.3 From Editor to Offline Motions (XIAO ESP32S3 Sense)
- 1. Click “Connect” to open the Serial Port.
- 2. Select the target Serial Port.
- 3. Scan all Servos on the robot.
- 4. Click “Release All” to free all Servos for manual posing; or unlock the ones you need.
- 5. Set “Time” and “Interval”.
- 6. After each edit, click “Add Current” to append it to the group.
- 7. Play to verify.
Note
Each motion can be edited (angles, time, interval) and validated individually.
- 8. Click “Export (JSON)” to export the motion group.
- 9. Open the exported JSON and copy the
framescontent (including the surrounding[]).
- 10. Replace
jsonDatain your program with the copied content; build/flash and control the robot with a Bluetooth gamepad (see “Robot Control Parameters”).
4. Robot Control Parameters (adjust as needed)
4.1 Defaults
BAUDRATE: UART baud rate.SERVO_NUM: Number of Servos.
4.2 Bluetooth (if used)
BLE_NAME: Gamepad name.BLE_UUID: Gamepad UUID.
4.3 Web Remote (if used)
SERVICE_UUID: Service ID.CHARACTERSTIC_UUID: Characteristic ID.
4.4 Teaching Mode
MAX_ACTIONNUM: Max number of motion groups in teaching mode.Default_RobotRunSpeed_Demonstration: Default run speed.MIN_RobotRunSpeed_Demonstration: Maximum run speed.MAX_RobotRunSpeed_Demonstration: Minimum run speed.Adjust_RobotRunSpeed_Step: Speed step when adjusting teaching‑mode speed (±200 each time).
4.5 Data Fields (customize as needed)
RemoteControl_DefaultDemoAction: Default demo action (exported from the editor).RemoteControl_Exe: Teaching‑mode execute command.RemoteControl_Record: Teaching‑mode record command.RemoteControl_Damping: Damping‑mode command.RemoteControl_Reset: Reset command.RemoteControl_ReduceRunSpeed: Decrease teaching‑mode run speed.RemoteControl_AddRunSpeed: Increase teaching‑mode run speed.
Bluetooth note: Actual controller data depends on your device; define buttons in code as needed.
Web remote note: Likewise, confirm data and key mapping before integrating.
4.6 Reset Angles
ROBOT_RESET_POSITION_0~ROBOT_RESET_POSITION_9: Zero positions of Servo IDs 0‑9 (robot reset pose).
Note: Modify according to your robot’s reset pose.
5. Remote Control
5.1 Bluetooth Gamepad
- Long‑press to power on the gamepad and pair with the MCU (XIAO_ESP32S3).
- When paired, the robot bows and resets.
Actions:
- “Run default motion”: run the built‑in motion.
- “Reset robot”: go to the reset pose.
- “Damping mode”: enter a freely movable state for teaching.
- “Record teaching motion”: record the current motion.
- “Execute teaching motion”: run the recorded motion (not cleared by default).
- “Decrease teaching speed”: reduce the run speed (right arm Servo ID 6 swings to indicate speed).
- “Increase teaching speed”: increase the run speed (right arm Servo ID 6 swings to indicate speed).
5.2 Web Remote (Phone/PC)
Web Bluetooth Remote: Open
- Disconnected:
- Pair device then connect:
- Connected: on success, the robot bows and resets.
All key definitions: red keys in btn_Main; yellow keys in btn_border.
Demo defaults:
- Red
0X01: Increase teaching speed (right arm Servo ID 6 swings to indicate speed).0X02: Decrease teaching speed (right arm Servo ID 6 swings to indicate speed).0X04: Record teaching motion.0X08: Execute teaching motion.0X10: Run default motion.0X20~0X80: not defined.- Yellow
0X01~0X02: not defined.0X04: Damping mode.0X08: Reset.0X10~0X80: not defined.
6. Appendix
- Fashionstar Servo Wiki:
https://wiki.fashionrobo.com/ - SDKs: STM32 / Python / ROS / C++ / Arduino






































