-
Firmware rewritten in Rust
Moved the servo firmware to Rust. First real balance run on it: fell after 1.0 s, the goal was 5 ticks late. Now I know exactly what to fix
-
The box
Kit box drawn to the millimetre: 203 × 123 × 68 mm, foam insert, a pocket for every part
-
My own board
The hat board that sits on the UNO Q. One servo bus for all 15 servos, the IMU, power. Ordered at JLCPCB
Render
-
Trying to break it in sim
Changed the mass from −20 % to +30 % and the floor friction from 0.4 to 1.2. It never fell. 100 g more on the head means 21 % more wobble
-
How wrong can the zeros be
Every servo zero off by ±10° and it still balances. At ±15° it falls 1 time in 4. Hips and ankles matter most
-
Faster, and a jump
Walking hits 0.33 m/s without a fall. Jumping onto a hand: 6 cm works 40 % of the time in the hardest sim. Working on it
-
Redrawing every part
Not shipping anyone else's parts. Drawing every bracket again from the servo datasheets. Neck bracket 4.66 g, head shell 47.9 g, both pass the fit check against the servos
-
The head fits
Real UNO Q, my hat board and the head in one CAD file. 66 part pairs checked, zero collisions
-
Walking next to the real joints
The trained walking network runs live at 0.25 m/s, right next to the real robot's joint readings
-
Head moves
Reflashed the controller. Bus healthy, the head turns on command
-
Finding the servos by hand
Wiggled each servo by hand to find which ID is which joint, then saved the zero pose
-
Twin and robot move together
Every joint gets checked: the 3D twin and the real servo move at the same time and I say same way or opposite. A wrong sign is flipped on the spot
-
How the head goes together
LED face under the camera, my board underneath, one I2C bus for all of it
-
Phone drives the robot
A phone app with a joystick that drives the board over wifi. 29.5 ms from my thumb to the board and back