Teleoperated Snake Robot
A six-segment untethered serpentine snake robot, controlled over Bluetooth from an Xbox controller, with a forward-facing camera for confined-space inspection.
- Other
- Open source
- arduino
- 3D printable
Suggested by Robotheca, created by @AryaReddyM (opens in a new tab), from github.com/AryaReddyM/SnakeRobot (opens in a new tab). Pinned to commit 9328b8e (opens in a new tab).
- Hardware license
- MIT (opens in a new tab)
- Software license
- MIT (opens in a new tab)
- Commercial use
- Allowed
Photo and 3D model

3D preview converted from github.com/AryaReddyM/SnakeRobot at 9328b8e, under MIT. View the original files from GitHub (9.2 MB) (opens in a new tab)
- Power
- 7.4 V
What it can do
Written by Robotheca from the project's documents.
- Travels forward on flat hard surfaces using a sinusoidal traveling-wave gait across six segments.
- Steers by applying a graded joint offset that arcs the body, though turning is weak and it cannot pivot in place.
- Operates untethered, controlled wirelessly over Bluetooth from an Xbox controller.
- Streams video from a forward-facing camera.
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The guide appears here as you scroll.
Guide by @AryaReddyM (README.md), under MIT.
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Six Feetech STS3215 serial bus servos, one per joint.
- ESP32-WROVER main controller.
- Waveshare serial bus servo driver board.
- ESP32-CAM camera module.
- 2S 7.4V LiPo battery, 1500mAh.
- LM2596 buck converters stepping down voltage for the ESP32s.
- Xbox controller using Bluepad32 for Bluetooth input.
Connections
- The six servos are chained on a single TTL serial bus.
- The servo bus is driven through the Waveshare serial bus servo driver board.
- The LiPo battery powers the system, with LM2596 buck converters supplying the ESP32s.
- The electronics are housed in a towed box connected to the body by a passive joint.