Build it yourself
Build him yourself.
Everything is here. The parts list, the wiring, the files, the firmware. Two servo legs, a phone for a brain. No terminal, no coding, no prior hardware needed. Nothing to solder.
≈ 30 MIN · NO SOLDERING
BUY THE $99 KIT →
two legs, a battery, and your old phone
Stuck at any point?
Copy this file into ChatGPT, Claude, or any AI and ask it. It knows the whole build, every step on this page.
What you need
Every link below goes straight to the part. You print or cut the shell yourself.
GROWBOT BODY BUILD · PARTS LIST
Which battery should I get?
They all need ~5-6 V and at least 2 A. The servos spike when they move, so a weak supply browns out the Pico: the legs twitch, then it resets.
The main pick, no solder. Four AA lithium cells (Energizer Ultimate type, the 1.5 V single-use kind) in a holder with a switch. Strong fast legs, hours of hard play, and it stays strong even when a leg gets grabbed or the pack runs low.
Exactly these. NOT "rechargeable lithium" or USB-rechargeable 1.5 V AAs, they cut out the moment the legs push hard. And never 3.7 V "14500" AA-size cells: four of those will destroy the board and the servos. Plain alkaline AAs are fine to start, they are heavier and fade sooner. Swap all four when the walk goes lazy.
Advanced, compact and rechargeable. A 1S LiPo, 1000 mAh or more plus a 5V/2A charge-boost board (example board, or search "5V 2A lithium charge-boost / IP5306"). Charges over USB, puts out a stiff 5 V. This one needs a little soldering. The boost board's battery input is for a single 3.7 V LiPo only, never wire AA cells into it.
Shortcut: a bare 1S LiPo straight in, no board, also runs it, legs a bit weaker. Recharge it with a ~$2 TP4056 USB-C module and never drain it too low.
Already own a power bank? A small 5 V / 2 A USB power bank works. Neatest is a solderless USB-C to screw-terminal adapter (~$10, pick one that says "C-to-C compatible / 5 V output"), or cut a spare USB cable and strip the red (+5 V) and black (GND) wires into the board's power input, ignoring the data wires. Legs are a bit softer at 5 V, and some banks switch themselves off when the robot rests.
Power & signal
One rule, and it is the only rule that can cook something: the servos draw power from the battery rail, never from the Pico's pins.
FIG. 1. Carrier board (the easy path): the board already is this circuit. Screw the battery holder's red wire into its + power terminal, black into −, done. Direct wire (advanced): you build this circuit yourself, wiring map in step 03.
Connect the servos
Two ways. Pick one.
1 · Easy · carrier board

FIG. 2A. L and R are the robot's own sides. TOP is up when it stands, batteries ride the bottom.
Mount the two servos flat, shafts pointing out, then plug them into the board:
- left servo → port 1
- right servo → port 3
- leave port 2 empty, it is dead
Each plug: orange wire on SIG, brown on GND. The board prints both.
Now test it. Power the robot off, then on, and watch the wake-up wiggle: it moves the right leg first. If the left twitches first, swap the two plugs and you are set.
2 · Advanced · direct wire, no board
Signal and ground only, on the Pico's top-left corner, USB at the top:
PIN 1 · GP0 left signal (orange)
PIN 2 · GP1 right signal (orange)
PIN 3 · GND both grounds (brown)
Both red + wires go to the battery rail (FIG. 1), never a Pico pin. This path is not yet hardware-tested.
Board compatibility
Tested: Kitronik Robotics Board (5329), plug and play. This is what the guide uses.
Other PCA9685 boards (Waveshare Pico Servo Driver, or a generic PCA9685 breakout): auto-detected if wired to GP8/GP9, otherwise set the pins and address at the top of PicoRobotics.py.
ESP32: works, see the community ESP32 guide by olie-o.
Direct-wire, or another controller (Pi, other Wi-Fi MCUs): experimental.
Assemble the body
Board on one side, servos flat in the middle with the shafts pointing out, power pack on the other.

FIG. 3. Leave the legs off, they go on at 90° in step 06.
Flash & install
The only computer step, on a laptop or desktop. Your phone is the brain later. Two stages: first MicroPython goes on the board, then GrowBot's code.
↓ DOWNLOAD THE KIT (FIRMWARE, RUNTIME & 3D PRINTS)Stage 1 · Put MicroPython on the Pico
Once only. Skip it if the board already runs MicroPython. Hold the white BOOTSEL button, plug in USB, let go. A drive called RP2350 appears.

FIG. 4. Hold BOOTSEL · plug in USB · let go.
Drag the MicroPython runtime (.uf2) onto that drive. It reboots and the drive vanishes. Now it runs MicroPython. This is the only drag step: after it, the Pico is not a drive, so the code loads a different way.
Stage 2 · Add your Wi-Fi and GrowBot's code
The robot joins your Wi-Fi so your phone can reach it. This installs three files, PicoRobotics.py, act_engine.py and the robot program relay_chip.py (saved as main.py), plus your network in secrets.py.
Thonny, a free app, no terminal
A free editor for these chips: thonny.org. Unzip the kit first.
- Open Thonny, then bottom-right, pick interpreter MicroPython (Raspberry Pi Pico).
- File → Open PicoRobotics.py (in firmware/) → Save as… → Raspberry Pi Pico, same name.
- Same for act_engine.py.
- Open secrets.example.py, type your Wi-Fi name and password, → Save as… → Raspberry Pi Pico, name it secrets.py.
- Open relay_chip.py → Save as… → Raspberry Pi Pico, name it main.py.
- Unplug and replug. In the shell, watch for PAIRING CODE: gb-… That is your code for step 08.
Command line, mpremote
Needs Python 3, then pip install mpremote. First copy secrets.example.py to secrets.py and put your Wi-Fi in it.
After the reset, the serial output prints PAIRING CODE: gb-…, your code for step 08.
One-click install from the browser
Brit's flasher writes your Wi-Fi and all the code over USB in a single click, no Thonny, no terminal. It runs on his site because it talks to the board through your browser's serial port, and we have not rehosted it here without hardware to test it on. Desktop Chrome or Edge only, it is not available on iPhone, iPad, Safari or Firefox.
Center & attach the legs
Unplug USB and power on the battery. On every power-up the robot runs a quick leg check:
- CENTER, both to 90° (straight out)
- RIGHT, right leg only (port 3)
- LEFT, left leg only (port 1)
- BOTH, both sweep at the same time
- HOLD, parks both at 90° for a moment, then relaxes and joins your Wi-Fi
Now attach the legs. No glue. Each leg has a slot for a servo horn, the plastic arm that came with your servo. Drop the horn into the slot, sit the leg on the servo shaft pointing straight out, then screw it down tight with the small screw from the servo bag.

FIG. 5. Horn sits in the slot. Screw it tight.

FIG. 6. Leg on the servo, pointing straight out.
The servos park at 90° during the check, so a leg screwed on straight now is straight for the walk. Ended up crooked? Pop the horn off the shaft and re-seat it a tooth over. Cut your own legs instead of printing them? Those have no slot, so glue that leg to a horn instead.
Verify
Power-cycle and watch the legs run the four-step check again.
| SYMPTOM | FIX |
|---|---|
| nothing moves | Power on? (battery and switch). Is PicoRobotics.py on the Pico? |
| only one leg moves | Reseat the still leg's plug. The legs use GP0/GP1, ports 1 and 3. |
| "RIGHT" waves the LEFT leg | The two servo plugs are swapped. |
| a leg sits crooked at rest | Screwed on off-90°. Pop it off and re-seat it while it holds 90°. |
| buzzing or jittery | Weak power. Use fresh 4×AA (lithium best) or a solid 5-6 V, 2 A supply. |
Connect your phone
Your phone becomes the brain, the voice, the face and the walking. It finds the robot by its pairing code through the cloud, so the phone does not need to be on the same Wi-Fi. Cellular works too.
- Battery on. After the leg check it joins your Wi-Fi, about 10 seconds.
- On your phone, open the controller.
- Type your pairing code gb-… from step 05, then Wake robot.
- A green dot means it is connected. Tap Connect, then wiggle, and the legs move. Manual, Policy and voice are now live.
No green dot?
Give it ~20 seconds after power-on. Check the robot's network is 2.4 GHz and that the code matches, all lowercase, since phone keyboards auto-capitalize. The phone itself does not need the same Wi-Fi. Power-cycle the robot to re-show the code on serial.
Why is the whole thing free?
Because I want him to exist more than I want to own him. The parts are cheap and off the shelf, the files are up there, and nothing here is a secret. If you have a printer and an afternoon, you do not need me at all.
The kit is for the other case: when you would rather not spend a week sourcing servos and discovering which AA batteries brown out the board. That is all you are paying for. The sourcing, and my mistakes already made.
BritBRIT CRUISEThe files are all there.
Go make one.
If you would rather skip the sourcing, the Founder Batch kit has every part in one box, numbered, for $99. Same robot, same free software, none of the shopping.
SEE THE $99 KIT →Questions or stuck? info@growbot.dev or join the Discord. Some parts links are Amazon affiliate links, so a build helps fund the next one at no cost to you.