REV A Desk robot · nine pieces · one evening
Small parts, big personality.
An ESP32-C3 for a brain, a 0.96″ OLED for a face, two micro servos for legs. Everything you need is already on the mat. Scroll and it puts itself together.
Scroll to assemble01 Bill of materials
Everything on the mat.
Pick a line, or tap a tag on the mat, to read its sheet. Then keep scrolling: the parts leave the mat in this order.
02 The chassis
Start with something flat.
One printed plate carries everything. Four blocks underneath take the servos by their tabs, a bracket in front holds the face, and a steel ball at the back gives the robot its third point of contact.
Print it
PLA, 0.2 mm layers, three walls, 20 % infill, flat side on the bed: no supports needed. Press the Ø 10 mm ball into its socket in a vice rather than with a hammer.
MP1 · plate 50 × 72 × 3 mm · PLA
03 Two servos
Legs, sideways.
The servos lie on their sides under the plate, back to back, shafts pointing out. One goes in upside down so both shafts share the same axle; the firmware spins it the other way.
Before you screw them in
Find the stop point first: send a 1.5 ms pulse and, if the servo has a trim hole, turn it until the shaft stands still. No trim? Note the pulse where it stops and set it in the firmware. Then screw each servo to its two mounts through the tabs (M2 self-tapping screws), cable to the back.
M1 → GPIO6 · M2 → GPIO7 · 50 Hz
04 The face
Two eyes, four wires.
The 0.96″ OLED stands in the front bracket, glass out. Four leads go onto its header now: ground, power and the two lines of the I²C bus. They reach the brain in two chapters.
Mind the header
Read the silkscreen before soldering: most boards go GND · VCC · SCL · SDA, some swap the first two. Colours used here: black GND, white 3V3, yellow SCL, blue SDA.
SSD1306 · 128 × 64 · I²C 0x3C
05 Power
A pocket of energy.
A 1000 mAh LiPo lies flat on the deck. The TP4056 charger tucks under the plate with its USB-C port on the side: charge it there, run from it anywhere.
Wire it safely
Battery to B+ and B−, nothing else. The load takes OUT+ and OUT−, after the protection chip; never ground anything to B−. The servos run straight off the battery. A Schottky diode (SS14) from OUT+ to the board's 5V pin lets USB and battery share the board safely; the drawing shows it as a plain wire.
BT1 · 3.7 V 1000 mAh · U2 · 4.2 V · 1 A
06 The brain
Everything meets here.
The SuperMini sits on the battery, USB-C to the back. Eight wires land on its header: four from the face, two servo signals, power in. Then the face wakes up.
Connect in order
Ground first, then power, then signals: GND and 5V from the charger, 3V3 out to the OLED's VCC, then GPIO8 → SDA, GPIO9 → SCL, GPIO6 → left servo, GPIO7 → right servo. The pads in this drawing follow the common SuperMini layout; your board's silkscreen has the last word.
ESP32-C3 · RISC-V 160 MHz · Wi-Fi + BLE
07 Wheels on
Two small screws.
Each wheel presses onto a 21-tooth spline and is held by the servo's M2 horn screw. Tyres on, and the robot stands on its own: two wheels and a ball.
Check before it drives
Lift the robot and send both servos 1.5 ms: the wheels must stand still. Then a short forward pulse. If one wheel turns backwards, invert it in the firmware instead of rewiring.
Ø 40 × 7 mm · ≈ 23 cm/s at 110 rpm (4.8 V)
08 Assembled
Say hello.
Nine pieces, fourteen wires, one small robot looking back at you. Turn it around, look underneath, tap a part to read its sheet again.
Original design and code · component data from the datasheets linked in the parts list · GPL-3.0