Give the creature a body, two servo legs, a phone for a brain. No terminal, no coding, no prior hardware needed.
Two ways, pick ONE.
1 · Easy · carrier board (what this guide uses)
Important: The front of the robot is the phone screen, mounted with the camera up top. That one choice fixes left/right, which is the robot's own left and right when looking forward from its screen camera (known as egocentric).
Mount the two servos flat, shafts pointing out, then plug them into the board:
Each plug: orange wire on SIG, brown on GND. The board prints both.
Now test it. Power the robot off, then on. 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; experimental)
PicoRobotics.py.PROTOCOL.md and pass conformance.html.
The only computer step (laptop or desktop, your phone is the brain later). Two stages: Step 1 puts MicroPython on the board, Step 2 adds GrowBot's code.
↓ Download the kit (firmware, runtime & 3D prints)RP2350 appears.
This is the only drag step. After it the Pico isn't a drive, so the code loads a different way (Step 2).
Step 2 · Add your Wi-Fi + 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.
A free editor for these chips. thonny.org ↗
PicoRobotics.py (in firmware/) → Save as… → Raspberry Pi Pico, same name.act_engine.py.secrets.example.py, type your Wi-Fi name + password, → Save as… → Raspberry Pi Pico, name it secrets.py.relay_chip.py → Save as… → Raspberry Pi Pico, name it main.py.PAIRING CODE: gb-…, that's your code for step 08.Needs Python 3, then pip install mpremote. First copy secrets.example.py → secrets.py and put your Wi-Fi in it.
mpremote cp PicoRobotics.py :PicoRobotics.py mpremote cp act_engine.py :act_engine.py mpremote cp secrets.py :secrets.py mpremote cp relay_chip.py :main.py mpremote reset
After reset, the serial output prints PAIRING CODE: gb-…, your code for step 08.
Unplug USB, power on the battery. On every power-up the robot first runs a quick leg check:
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.
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. No-printer legs? Those have no slot, so glue that leg to a horn instead.
Glue set? Power-cycle and watch the legs run the 4-check again:
| symptom | fix |
|---|---|
| nothing moves | power on? (battery + switch). PicoRobotics.py on the Pico? |
| only one leg moves | reseat the still leg's plug, legs use GP0/GP1 (ports 1 & 3) |
| "RIGHT" waves the LEFT leg | the two servo plugs are swapped |
| a leg sits crooked at rest | glued off-90, pop it and re-glue while it holds 90 |
| buzzing / jittery | weak power, use fresh 4×AA (lithium best) or a solid 5-6V ≥2A supply |
TABLE 2: both legs straight at rest + even sweeps = done. ✅
Your phone becomes the brain, voice, face, and 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).
No green dot? Give it ~20 s after power-on. Check the robot's network is 2.4 GHz and the code matches, all lowercase (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.
Questions or stuck? info@growbot.dev · join the Discord