Skip to content

Open-source test stand for measuring backlash in low-cost UART servo actuators (Feetech, Waveshare). Includes 3D-printable fixtures, Node.js controller, and Python analysis tools. ~$80-100 total cost.

License

Unknown and 3 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-DOCS
CERN-OHL-P-2.0
LICENSE-HARDWARE
MIT
LICENSE-SOFTWARE
Notifications You must be signed in to change notification settings

roboninecom/Measuring-Backlash-in-Popular-UART-Servos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A Low-Cost Platform for Measuring Backlash in Popular UART Servos

This repository contains the source code and data analysis scripts for the research paper "A Low-Cost Platform for Measuring Backlash in Popular UART Servos".

The project presents an open-source test stand for characterizing backlash in low-cost UART servo actuators (Feetech, Waveshare, etc.) using controlled force application and telemetry logging.


📂 Project Structure

├── cad/                         # Hardware design files (.step and .stl)
├── logs/                        # Output directory for telemetry data (CSV)
├── paper/                       # LaTeX source code of the article and figures
├── software/
│   ├── backlash_test/
│   │   ├── .env                     # Environment variables
│   │   ├── .gitignore               # Git ignore rules
│   │   ├── app.js                   # Main Node.js controller application
│   │   ├── config.js                # Serial port configuration
│   │   ├── package.json             # Node.js dependencies and scripts
│   │   ├── sweepConfig.js           # Configuration for motion sequences
│   │   └── TelemetryLogger.js       # Module for CSV data logging
│   ├── logs_analysis/
│   │   ├── config/                  # Example config files
│   │   ├── log_calc.py              # Calculates backlash statistics based on provided CSV log file
│   |   ├── log_viz.py               # Generates visualisation from provided CSV log file
│   |   ├── config_utils.py          # Some common utilities used by analysis and visualisation scripts

🛠 Hardware Requirements

Test Stand Setup Figure: Mechanical test stand used for backlash measurements.

To reproduce the experiments, you will need:

  • Servos: 2x Feetech STS3215 (puller motors) + 1-2 servos for device under test.
  • Controller: USB-TTL Adapter (e.g., Feetech or Waveshare USB-TTL) connected to a PC.
  • Power Supply: 7.4V or 12V DC power supply (2A minimum).
  • Mechanical Assembly: 3D-printed servo holders and 100mm test levers (see paper for details).

🚀 Getting Started

1. Controller Setup (Node.js)

The Node.js application manages the servos, executes motion profiles, and logs telemetry.

Prerequisites: Node.js (v18+), NPM.

cd software/backlash_test

# Install dependencies
npm install

# Configure environment variables
# Create a .env file or set these manually
export SERIAL_PORT=COM3           # Or /dev/ttyUSB0 on Linux/Mac
export SERIAL_BAUD_RATE=1000000

Running the Experiment:

To start the control loop and logging:

node app.js
  • Configuration for motion patterns and servo IDs is located in sweepConfig.js.
  • Logs are automatically saved to the logs/ directory.

2. Motor analysis utilities

Prerequisites: Python 3.8+, numpy, pandas, plotly.

log_calc.py handles motor-analysis scenario by reading a JSON configuration that describes which motors define the analysis phase window, which motors should be reported, and the stretched/relaxed targets for the actuated motors.

Run the script by passing the config and the log CSV:

python logs_analysis/log_calc.py logs_analysis/config/config_m1_m2.json /path/to/log.csv

log_viz.py uses the exact same config files to decide which motors to plot (from report_motor_ids) and which actuators provide the relaxed/stretched overlays. Invoke it the same way:

python logs_analysis/log_viz.py logs_analysis/config/config_m1_m2.json  /path/to/log.csv

📄 Research Paper

The full text of the research paper is located in the paper/ directory. You can compile it using any standard LaTeX distribution (TeX Live, MiKTeX) or online editor (Overleaf).

👥 Author Information

Boris Kotov

Company: Robonine

  • Developing accessible robotic solutions for education and research.
  • Website: robonine.com

📜 License

  • Hardware: CERN Open Hardware Licence Version 2 – Permissive (CERN-OHL-P-2.0)
  • Software: MIT License
  • Documentation: CC BY 4.0

You are free to share and adapt the material as long as appropriate credit is given.

About

Open-source test stand for measuring backlash in low-cost UART servo actuators (Feetech, Waveshare). Includes 3D-printable fixtures, Node.js controller, and Python analysis tools. ~$80-100 total cost.

Topics

Resources

License

Unknown and 3 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-DOCS
CERN-OHL-P-2.0
LICENSE-HARDWARE
MIT
LICENSE-SOFTWARE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •