Canonical build checklist for Tiny Engineer. Each step: open the linked doc, finish the exit criterion, return here. Mechanical joins live in assembly.md; this page owns overall order.
Robot already on Wi-Fi? Jump to step 8.
Read this before you power anything. Optional primer, not a gate: From Code to Circuits.
- Supply 5 V / ≥2 A on the board USB-C.
- Speaker: connector or solder pads, never both. SPK− is not ground.
- Leave the C3-Zero ceramic antenna clear of metal and dense plastic.
Shop → print → connect → flash → assemble (one run) → setup wizard → prove → agent hooks.
The default build uses the main control board. Plug in the ESP32, OLED, servos, and speaker. To add modules the board does not carry, follow the harness rules in wiring.md and mount them with assembly-modular.md.
flowchart LR
shop[Shop]
print[Print]
connect[Connect]
flash[Flash]
mech[Assemble]
wiz[Wizard]
prove[Prove]
agent[Agent]
shop --> print --> connect --> flash --> mech --> wiz --> prove --> agent
- Open: shopping.md. Default cart is the main control board plus the ESP32, OLED, servos, and speaker.
- Until: cart in hand — main control board, ESP32, servos, OLED, speaker, M2 screws/nuts, 5 V / ≥2 A supply, data USB cable, and a print path (filament or a service order). Default servos: Tower Pro SG90.
- Return here.
- Open: 3d_models/README.md (home print; testers first) or 3d/order-parts.md (no printer).
- Until: printed set for your servo model ready.
- Return here.
- Open: hardware/main-control-board.md.
- Until: pre-power checks pass (speaker on SPK+/SPK− only, one method; servo plugs match the labels; ESP32 orientation matches the PCB USB mark). Electronics stay on the desk.
- Advanced: extra modules the board does not support — wire the harness now (hardware/wiring.md). Mount those boards during assembly (3d/assembly-modular.md).
- Return here.
- Open: Web flash (Chrome or Edge; USB-C data cable). Pick the latest release → Connect & install. No PlatformIO or repo clone needed for stock firmware. More detail / stuck / advanced: flash.md.
- Until: stock firmware + audio on the board; Move all to 90° (setup AP config page) or one servo moves. Do not finish the Wi-Fi wizard yet.
- Return here. Keep electronics on the desk — do not seat them in the chest yet.
- Open: 3d/assembly.md from §1 through §19 (Head/Hat, centering, joins, channels, arms, lamp).
- Until: all joins done; servo and OLED headers plugged per the guide.
- Return here.
- Open: 3d/assembly.md §20.
- Until: wizard finished, power-cycled, robot on home 2.4 GHz Wi-Fi.
- Return here.
Open http://tiny-engineer.local/ (or the IP on the OLED) for the web UI.
curl http://tiny-engineer.local/health
curl -X POST "http://tiny-engineer.local/anim?name=ring"- Until:
/healthOK andringruns (motion; sound if LittleFS uploaded). If.localis slow, use the OLED IP orcurl -4. - Return here. Full API: api.md.
- Open: integration.md —
tiny-engineer setup(default) or REST for custom agents. Cursor details: hooks.md. - Until: optional — an agent event triggers an animation.
- Done.
| Symptom | What to try |
|---|---|
| Extra modules the board does not support? | shopping.md · hardware/wiring.md |
| What to buy? | shopping.md |
| How to plug in the board? | hardware/main-control-board.md |
| What to print? | 3d_models/README.md |
| How to assemble printed parts? | 3d/assembly.md |
| Flash / install stuck | Web flash · flash.md |
.local slow or fails |
OLED IP; curl -4 http://… |
OLED shows join AP / 192.168.4.1 |
Wi-Fi not saved or STA failed — finish assembly §20 |
| Welcome / ring silent (servos move) | Re-install the same release from Web flash (stock image includes audio). Advanced: flash.md |
| Hooks never move the robot | Node 18+, npx -y tiny-engineer doctor, hook timeout ≥ 30 for cold npx — see integration.md / hooks.md |
| Servos twitch / board resets on motion | Power budget — hardware/power.md |
| Other boot / I2C / audio failures | hardware/testing.md |