Skip to content

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

  1. Structure overview and default Servo IDs
Structure & default IDs
  1. Zero‑degree posture of all Servos
Zero‑degree posture

3. Motion Editor Guide

Web Motion Editor: Open

3.1 Editor Layout

Three modules:

  1. Serial connect/disconnect and message status
  2. Servo status/angle query & control
  3. Motion group optimization and import/export
Editor layout

3.2 Controls

3.2.1 Connect / Disconnect Serial

Connect 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.
Real‑time posture

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).
Angle control & unlock

3.2.3 Motion Group Page

  • Motion Groups: Unlimited user‑defined groups.
Motion groups
  • Add Group
Add group
  • Check Abnormalities (over/under‑voltage, stall)
Check status
  • Delete Group (keep at least one)
Delete group
  • Verification: Validate motions.
Verify motions
  • Loop
Loop
  • Stop
Stop
  • Reorder: Drag to change order.
  • Time: Duration to reach target angle (e.g., 2 s).
  • Interval: Wait time between motions.
Time & interval
  • Delete Motion
Delete motion
  • Run Motion
Run motion
  • Add Current Motion
Add current
  • Export Motion Group
Export
  • Import Motion Group
Import

3.3 From Editor to Offline Motions (XIAO ESP32S3 Sense)

  • 1. Click “Connect” to open the Serial Port.
Connect serial
  • 2. Select the target Serial Port.
Select port
  • 3. Scan all Servos on the robot.
Scan servos
  • 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.

Motion verification
  • 8. Click “Export (JSON)” to export the motion group.
Export JSON
  • 9. Open the exported JSON and copy the frames content (including the surrounding []).
Copy frames
  • 10. Replace jsonData in your program with the copied content; build/flash and control the robot with a Bluetooth gamepad (see “Robot Control Parameters”).
Replace jsonData

4. Robot Control Parameters (adjust as needed)

4.1 Defaults

  • BAUDRATE: UART baud rate.
  • SERVO_NUM: Number of Servos.
Default parameters

4.2 Bluetooth (if used)

  • BLE_NAME: Gamepad name.
  • BLE_UUID: Gamepad UUID.
Bluetooth parameters

4.3 Web Remote (if used)

  • SERVICE_UUID: Service ID.
  • CHARACTERSTIC_UUID: Characteristic ID.
Web remote parameters

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).
Teaching mode parameters

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.

Bluetooth data

Web remote note: Likewise, confirm data and key mapping before integrating.

Web remote data

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.

Reset angles

5. Remote Control

5.1 Bluetooth Gamepad

  1. Long‑press to power on the gamepad and pair with the MCU (XIAO_ESP32S3).
  2. 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).
Gamepad keys 1
Gamepad keys 2

5.2 Web Remote (Phone/PC)

Web Bluetooth Remote: Open

  • Disconnected:
Disconnected
  • Pair device then connect:
Pair & connect
  • Connected: on success, the robot bows and resets.
Connected

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.
Web remote keys

6. Appendix

  • Fashionstar Servo Wiki: https://wiki.fashionrobo.com/
  • SDKs: STM32 / Python / ROS / C++ / Arduino