Bench reference

This page is a working document for the repair bench

It holds technical procedures and measurements used while repairing the robots, so it is written in shorthand rather than plain language. Nothing here needs your attention.

← Go to the repair status page

Service procedure · Hiwonder TonyBot

Six gates for a TonyBot on the bench

Each gate has to pass before the next one's results mean anything. Run them in order and a robot sorts itself into power, communication, servo-health, calibration or mechanical — before you take anything apart.

ESP32 controller16 bus servosWindows PC required

Before the first robot

Bench setup

Kit: a Windows PC, USB Type-C cable, hex driver for horn screws, spare servo cables, at least one spare bus servo, and a multimeter.

The Hiwonder PC software is Windows-only. On a Mac you need Boot Camp (Intel) or a VM with USB passthrough — and the passthrough is the part that has to work, so test it before relying on it.

GATE 1Prove the electrical side before believing any symptomPower

Charge the pack fully through the side port — red while charging, green when complete. Switch on and let it settle.

Why this is first

Undervoltage is the most misdiagnosed fault on any servo robot. A weak pack produces exactly the symptoms you would blame on servos: weakness, jitter, joints giving way, collapse mid-motion.

Green does not mean healthy

The charger stops when any cell reaches 4.2 V. A pack with one failed cell charges to green while sitting well under 12.6 V. Measure the resting voltage, and if it is low, open the pack and measure each cell. See the battery report.

Fail → cuts out mid-movement

Watch the voltage display while it walks. A pack that reads full at rest and collapses under load has a failed or worn cell. Swap in a known-good pack to confirm.

GATE 2Get the software talking to the controllerPC link

The mobile app plays pre-recorded actions only — it cannot calibrate, read servos, or diagnose anything. Every gate from here needs the PC software.

  • Install Bus Servo Control V3.5 from the Hiwonder appendix
  • Robot powered on — the servos must have power to answer
  • USB Type-C from the controller to the PC
  • Open the software; it connects and installs its driver automatically
Fail → never connects

Try a different Type-C cable first. Charge-only cables carry no data and look identical to good ones — a common half-hour lost. Then check Device Manager for an unrecognised serial device.

GATE 3Ask all sixteen servos whether they answerBus roll-call

Click Read Servo Deviations. Confirm the overwrite prompt — it only means the robot's real values replace the blanks in the software.

Expect failures above ID 16

The software is a generic bus-servo tool and polls IDs well past 16. The robot has sixteen servos, so read failures on 17 and up are normal. Only failures in 1–16 are real.

ResultMeaningNext move
All 1–16 answerBus healthyGate 4
An ID fails, but the joint still movesCommunication only — commands arrive, replies do notMarginal cable. Swap with its mirror twin to confirm. Low priority.
An ID fails and the joint is limpDead servo or broken cableSwap-test the cable, then the servo
Two joints move from one commandDuplicate ID after a replacementGate 6
Nothing answersController or bus powerBack to Gates 1 and 2

Record which IDs failed, then use the servo map to locate them. A failure in an arm and one in a leg are unrelated problems on the same robot.

GATE 4The four-test check — this is the gate that catches real faultsJoint health

Answering the bus is not the same as working. A servo can read perfectly, move perfectly, and still be unable to hold position under load — and that looks exactly like a calibration problem, which is how it gets missed.

Every servo has a mirror twin at n + 8. Test the suspect joint, then run the identical test on its twin and compare. That comparison is what makes the test reliable.

#TestHealthyFaulty
1Does it answer? — click ReadReturns a valueNo response → Gate 3
2Does it move? — nudge its sliderDrives smoothly to positionDoesn't move, or the limb only flops under its own weight
3Does it hold? — press gently, then press its twin the same wayLocked and stiff, same as the twinGives way, or holds at some angles and not others
4Does it sound right? — listen while it drivesA faint motor hum, like its twinSilent (not being driven) or grinding (stripped gears)
Fail → moves but won't hold

Check the cheap cause first: power off and tighten the screw at the centre of that servo's output shaft. A loose or stripped horn lets the limb slip while the motor is fine.

If the screw is tight and it still slips — especially if it holds at some angles and not others — the fault is inside. Gear teeth partly stripped, or a dead spot in the position sensor. Both mean replacement. Gate 6.

The silence tell

A servo with stripped gears usually still buzzes as its motor spins uselessly. A servo that is completely silent while its twin hums is not being driven at all. Silent plus loose is the clearest single indicator of a servo that needs replacing.

GATE 5Deviation adjustment — only after Gate 4 passesCalibration

Calibrating a servo that fails Gate 4 is wasted work. It will look right on the bench and drift again the moment the joint takes load.

  • Loosen Robot Joints — releases the servos so you can pose by hand
  • Pose it — comparing against the mirror twin
  • Read Servo Deviations — pulls the stored values off the robot
  • Adjust — each slider runs -100 to 100
  • Download Servo Deviations — writes them. Nothing is saved until this.
  • Power off, on, re-check — the only proof the values persisted
Fail → you run out of slider

The joint is off by more than roughly 13° and software cannot reach it. Re-clock the bracket on the spline — see the calibration reference for the arithmetic.

Correct on the bench, wrong after a reboot

Either Download was skipped, or you were adjusting position rather than deviation. Position is never stored. Always confirm with a power cycle, never a software re-read.

GATE 6Fitting a new servo without creating a worse faultRepair

Match the replacement to the model printed on the side of an existing servo.

Set the ID before you install it

New servos ship with a factory ID, usually 1. Connect the new servo on its own and set its ID to the number it replaces. Skip this and two servos answer to the same number — the leg behaves erratically and the cause is not obvious.

  • Connect the new servo alone → set its ID
  • Install it; check the bracket seats square on the spline before tightening
  • Re-run Gate 3 — confirm the new ID answers and nothing doubled up
  • Re-run Gate 4 — confirm it holds
  • Gate 5 — calibrate and power-cycle
A repaired or replaced servo needs re-clocking, not just calibrating

Reassembly moves the output relative to the internal position sensor. Command it to 500 and see where the joint sits. Under ~13° is deviation work; more means the bracket goes back on a different tooth.

Then check the travel — do not skip this

Re-clocking shifts the joint's whole range and one end can land inside a mechanical stop. Slowly command 200, then 800. If it jams, buzzes or stalls, power off immediately — holding a servo against a hard stop burns the motor and destroys a fresh repair.