Skip to content

Operating Instructions (Hardware Execution Flow)

Vladyslav Vytrykush edited this page Sep 8, 2026 · 1 revision

Here is a clean, dedicated section formatted in Markdown for your project's Wiki / Documentation, titled Operating Instructions (Hardware Execution Flow):


Operating Instructions (Hardware Execution Flow)

This section details the operational workflow for deploying the MoSy motion engine alongside the HS-1 motion capture suit and physical quadruped hardware.

  [ Step 1: Connect Hardware ]          [ Step 2: Power Servos ]          [ Step 3: Launch MoSy ]
   ESP32-C3 ──(USB Cable)──► Host PC      External 6-7.4V ──► PCA9685       `python main.py` on Host PC


Step-by-Step Runtime Protocol

1. Hardware Interconnect

  1. Connect the ESP32-C3 board on the HS-1 suit to your host computer (PC / Laptop / Raspberry Pi) using a USB-to-UART data cable.
  • Note: The onboard C++ firmware executes automatically upon receiving USB power, streaming orientation JSON frames at 115200 baud.
  1. Ensure the PCA9685 16-channel PWM driver is connected via I2C (0x40) and its external power terminal ($6.0\text{ V} \dots 7.4\text{ V}$) is energized for the motor servos.

2. System Verification

  1. Verify the serial port assigned to the ESP32-C3:
  • Windows: COM3, COM4, etc.
  • Linux / macOS: /dev/ttyUSB0 or /dev/ttyACM0.
  1. Confirm the serial port name matches the configuration setting in main.py or your environment parameters.

3. Execution Phase

Open a terminal on your host machine inside the repository root directory and initiate the main control pipeline:

python main.py

4. Expected System Behavior

  • Port Binding: MoSy opens the designated UART interface and begins ingesting 50 Hz telemetry packets (shoulder, forearm, hand).
  • 50 Hz Inference Loop: Incoming Euler angles are mapped into the 112-dimensional state vector, processed by the <0.1 ms ONNX policy engine, translated into target servo microsecond pulse widths, and dispatched via I2C to the PCA9685 controller.
  • Termination: To safely stop the pipeline and release the serial port, press Ctrl + C in the terminal window.

Clone this wiki locally