waveshare-serial-servo-tui

Crates.iowaveshare-serial-servo-tui
lib.rswaveshare-serial-servo-tui
version0.1.1
created_at2026-01-10 00:04:33.389585+00
updated_at2026-01-10 00:09:23.024935+00
descriptionTerminal UI for debugging and controlling Waveshare SC/ST serial bus servos
homepagehttps://github.com/mneuhaus/waveshare-serial-servo-tui
repositoryhttps://github.com/mneuhaus/waveshare-serial-servo-tui
max_upload_size
id2033200
size129,080
Marc Neuhaus (mneuhaus)

documentation

README

waveshare-serial-servo-tui

A terminal UI for debugging and controlling Waveshare SC/ST serial bus servos.

Features

  • Servo scanning - Automatically detect connected servos on the bus
  • Real-time status - View position, speed, load, voltage, temperature, and current
  • Position control - Move servos with arrow keys or precise position commands
  • Motor/wheel mode - Spin servos continuously with variable speed
  • Position history graph - Visual chart of position over time with zoom
  • Register inspection - View raw EEPROM and SRAM register values
  • Configuration display - See servo settings like PID, limits, deadband
  • Factory reset - Reset servos to default settings
  • Clone settings - Copy configuration from one servo to another

Supported Servos

  • SC Series: SC09, SC15, SC40, SC60
  • ST Series: ST3215, ST3020, ST3025
  • SMS/STS Series: Generic support

Installation

From crates.io

cargo install waveshare-serial-servo-tui

From source

git clone https://github.com/mneuhaus/waveshare-serial-servo-tui
cd waveshare-serial-servo-tui
cargo build --release

Usage

# List available serial ports
servo-tui --list

# Connect to a specific port
servo-tui --port /dev/tty.usbserial-110

# On Linux
servo-tui --port /dev/ttyUSB0

Keyboard Controls

Key Action
Tab Switch between Status/Config/Regs tabs
Up/Down Select servo
Left/Right Adjust position (hold for continuous)
+/- Zoom position chart in/out
q Quit

Commands

Type : followed by a command:

Command Description
:scan Rescan for servos
:move <pos> Move to position (0-1023)
:spin <speed> Spin at speed (-1000 to 1000)
:stop Stop spinning
:torque on/off Enable/disable torque
:reset Factory reset selected servo
:clone <from> <to> Clone settings between servos
:id <new_id> Change servo ID

Protocol

Uses the Waveshare/Feetech serial bus servo protocol:

  • Half-duplex TTL serial at 1Mbps (default)
  • SC series: Big-endian byte order
  • SMS/STS series: Little-endian byte order

License

MIT License - see LICENSE for details.

Contributing

Contributions welcome! Please open an issue or PR on GitHub.

Commit count: 10

cargo fmt