🧪 New tutorials are being published — build from robot arms to sensors step by step
Skip to content

09 Troubleshooting ​

Serial commands are sent through a serial assistant/monitor: type them in the send box and press Enter (enable "send newline" in UartAssist); serial tools / the Windows UartAssist download are on page 03, section 3.3.

9.1 Common symptoms ​

SymptomLikely causeFix
waiting for IMU startup 5000 ms... then IMU not readySlow IMU power-up, bad wiring, wrong addressWait 5–10 s; check 3V3, SDA=GPIO6 / SCL=GPIO7, address 0x23
Repeated IMU lost -> bus reset + re-initLong or loose I²C wiresShorten wires, re-seat joints
Flashing fails with could not open port / Access is deniedSerial port held by monitor/serial monitorClose hw_monitor.py or the serial monitor first
Robot does not start after being placedBody not still, or a hand is touching itRelease and keep still for ≥0.5 s; watch for getup start
Immediate flailing / wrong directionFall gate triggered mid-roll, misclassificationPlace and release cleanly; retry
Run stops and prints executor timeout after 14 sReference did not finishNormal fallback; automatic retry after 1.5 s; keep the log
Occasional executor re-plan eventsNormal fallback after a failed roll_neg pressCheck whether it ends with done
Servo buzzes / heats upStall or binding targetSend x or cut power; check limits and mechanical clearance
Arm hits the body during self-rightingLarge shoulder motionCheck Q_SHOULDER_MAX and clearance; keep the ~68 mm base height
up does not match the real pose (persistent 5°+ tilt while lying)Accel zero offsets uncalibratedStand the robot level and send c (see page 06, 6.2)
Arm does not rest at the visual center after retractingZero drifted (re-indexed/re-assembled without re-zeroing)Re-zero with the page 05 tool and bake it
Servo buzzes/chatters after a get-upAnalog servo transient self-excitation after large motion/stalls (output is constant)Self-decays; add rubber damping washers or use a digital servo; pinching the arm silences it instantly
Status page / provisioning unreachableBrowser proxy not bypassed, or hotspot offAdd 192.168.4.1 to the proxy exceptions; send w to enable WiFi

9.2 Safety commands ​

SituationCommand
Stop motion immediatelys (hold last target) or x (detach PWM, release torque)
Recover after xr re-initializes PWM and centers
A joint moves the wrong wayv (shoulder) / b (elbow) sign flip

9.3 Capturing a failure ​

Keep the corresponding part of logs/hw_monitor.log. The key lines are:

text
<time> getup start pose=... up=(x,y,z)
<time> executor pose=... ph=... tick=... tgt=... up=... q=... sw=...
<time> executor re-plan A -> B up=(x,y,z)
<time> standing -> executor done | executor timeout

← Back to the tutorial contents