Python controller for a hexapod robot with 18 servos on two 16-channel servo boards. It accepts Blender bone-angle messages over WebSocket and provides a command-line tool for setting servo angles directly. The Blender client and scene are not included in this repository.
- Setup and execution: environment, hardware configuration, commands, message format, and troubleshooting.
- Code architecture: modules, device registry, and command processing.
- Packages: direct dependencies and the locked dependency tree.
Requires Python 3.11 or newer, uv, and a host with working I²C access supported
by the Adafruit hardware libraries. Run from the repository root:
uv sync --locked
mkdir -p .log
test -f .env || cp .env.example .envReview config.json against the connected boards and servo calibration, and
set BLENDER_URL in .env to the local address on which the server should
listen. Then start the controller:
uv run --locked python src/main.pyThe default endpoint is ws://localhost:8080. Incoming commands move hardware;
read the setup guide before sending them. There is no simulator
or dry-run mode. These instructions describe the source code; hardware and
end-to-end Blender operation have not been validated as part of this documentation.