BotTino

Build guide · base release

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 assemble

01 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.

    Back to the mat ↑

    Original design and code · component data from the datasheets linked in the parts list · GPL-3.0

    Laying out the parts…