BUILD REPORT / AUG–SEP 2026
Building Pupper.
The numbers.
I built an open-source, 12-motor robot dog at home. Here is what I bought, what it cost, how long sourcing took, and what still needed fixing.
Project timeline
August 11–September 10: 30 days to remote-control completion. Subsequent autonomy debugging shown through September 21.
Sourcing intervalDocumented activity spanDated milestone
Ordered → delivered
Ordered → delivered
Inquiry → configuration confirmed; arrival unknown
Review approved → delivered
Ordered → delivered
Ordered → shipped; arrival unverified
Sensors at factory → assembled boards delivered
Purchase email → delivery
Ordered → shipping notice; arrival unknown
Dated photos span parts → assembled body
Display photographed
Shorted harness photographed; replacement leads ordered
Bicycle command falsely reported success
Bars connect documented dates; they do not measure labor hours or prove continuous work. Shipping notices are not delivery confirmations. Depth sensing and body redesign remain planned, without a confirmed schedule.
*Incomplete subtotal, not the robot’s total cost. Includes order totals plus the AI Kit’s item price; excludes unverified costs listed below. Elapsed time is calendar time, not hands-on labor.
What I bought
The design and starting software came from the Pupper project. I sourced components, ordered board assembly, printed the plastic parts, and assembled the robot.
| Component | Supplier / quantity | Amount | Basis |
|---|---|---|---|
| SteadyWin GIM4305-10 motors + drivers | AIFITLAB · 12 | $1,470.00 | $1,380 hardware + $90 shipping |
| Raspberry Pi 5, 8 GB | PiShop.us · 1 | $202.70 | $175 hardware + $11.51 shipping + $16.19 tax |
| Arducam B0445 / IMX296 camera | Arducam · 1 | $111.99 | $64.99 hardware + $47 express shipping; import charges unknown |
| Raspberry Pi AI Kit / Hailo accelerator | eBay · 1 | $78.99 | Item price only; shipping and tax not established |
| JST leads, housings, power tabs, Pi active cooler | DigiKey · Aug 16 order | $56.34 | Order acknowledgement total |
| Additional JST leads and housings | DigiKey · Sep 5 order | $67.12 | Order acknowledgement total; includes $26.99 shipping |
| Screws and heat-set inserts | McMaster-Carr · 4 line items | $53.59 | Includes shipping and tax |
| Sum of documented amounts above | $2,040.73 | Incomplete; mixed order totals and item price | |
| Purchase | Amount | Included |
|---|---|---|
| Bambu X2D AMS Combo + initial filament order | $1,085.81 | Printer item price $899; remaining amount includes filament and tax |
| 0.6 mm hardened-steel hotend order | $26.64 | $17.99 item + $6.99 shipping + $1.66 tax |
| Total documented workshop purchases | $1,112.45 | Reusable equipment and initial consumables |
Exact small parts from the purchase records
McMaster-Carr
- 100 × M3 × 8 mm button-head screws
- 100 × M2.5 × 10 mm socket-head screws
- 10 × M2.5 × 25 mm socket-head screws
- 100 × M2.5 heat-set inserts, 3.4 mm installed length
DigiKey, each wiring order
- 34 × 6-inch pre-crimped JST leads
- 24 × 8-inch leads
- 24 × 12-inch leads
- 24 × ZHR-6 housings, 6 positions / 1.5 mm pitch
August also included 4 power tabs and 1 Pi active cooler. Purchased quantities ≠ quantities installed.
What held up orders—or needed checking
| Date | Issue | Action / outcome |
|---|---|---|
| Aug 12–19 | Motor driver and firmware compatibility | I ordered the standard driver variant and asked for Pupper configuration at no extra cost. AIFITLAB later confirmed it had shipped the Pupper V3 version. |
| Aug 13 | Second motor-supplier quote | No quantity discount. A possible 3% discount was subsequently withdrawn. I bought from AIFITLAB. |
| Aug 14 | SW1 switch orientation | The emailed placement image appeared rotated 180° relative to my upload. I sent a screenshot and asked JLCPCB to follow the uploaded design. |
| Aug 22–25 | Control-board components and placement | 8 BNO086 sensors reached JLCPCB’s warehouse Aug 22. I approved the U2 header placement Aug 25. |
| Aug 27 | 20 resistors out of stock | I requested C48939 instead of C966804: the same UNI-ROYAL 0402WGF3402TCE, 34 kΩ, 0402, ±1% manufacturer part. JLCPCB confirmed the substitution. |
The records establish the questions and responses, not the exact number of days each issue added to production.
Assembly
Day zero is the Aug 11 printer order. Photo timestamps establish that a milestone had occurred by that date; they do not necessarily identify its first occurrence.






Not recorded: hands-on hours, print hours, filament consumed, number of reprints, or exact date of the first successful walk.
What’s next? AI-controlled Pupper
PS5-controlled Pupper works. The next goal is to give him a spoken command and have him carry it out reliably. The AI control software I started with has been frustratingly unreliable, and I’m working on making it better.
The problem: his reports don’t reliably match reality
On September 21, I asked him to go to a bicycle and return. He announced that he had reached it without moving. The executor recorded 0.00 m walked: its estimated target distance was 0.39 m, already inside the 1.00 m stopping threshold. It treated proximity as a completed trip. Then his voice said “Now heading back” roughly 9 seconds after the executor had marked the entire plan complete.
| What the debugging found | What I’m working toward |
|---|---|
| 5 of 15 reviewed vision responses contained zero-area object boxes that the parser accepted as detections. | Reject invalid boxes before using them to turn or walk. |
| Unknown target distance could trigger a default 0.8 m approach. Offline replay reproduced that decision. | Stop and reacquire the target when distance is unknown; look again after turning. |
| One response said there was no bicycle while also returning a bicycle box. The controller used the box. | Require one consistent visible / absent / uncertain result. |
| A plan could report success without travel; spoken updates arrived after execution had finished. | Tie speech and success claims to verified execution state and observed movement. |
The current camera-based distance estimate also depends on floor geometry and camera angle. Position estimates based on commanded velocity don’t prove that the robot actually moved. Better depth sensing and motion feedback are part of the next stage.
I’m saving what he heard, the plan, camera images, vision results, and execution events for every command, so each failure can be reproduced and checked. The target is simple: understand the command, locate the object, move toward it, and report what actually happened.
Examples describe the September 21 development build and offline diagnosis. They do not establish that every bug originated in the upstream project, or that all proposed fixes are complete.
Sources, definitions, and missing data
Purchase records: Bambu Lab (Aug 11/13), AIFITLAB (Aug 12–19), JLCPCB and matched UPS notices (Aug 13–Sep 2), PiShop.us (Aug 16–20), McMaster-Carr (Aug 16–18), DigiKey itemized order acknowledgements (Aug 16 and Sep 5), eBay AI Kit purchase/delivery emails (Aug 25/31), and Arducam (Sep 2/3).
Assembly dates come from the supplied photos’ capture metadata. The first-power-up short and identification of the shorted wire come from my account of the build; clamp overtightening is my suspected cause, not a confirmed failure analysis. Robot observations come from the Sept 21 command archive and reviewed source code. Dates use America/Los_Angeles. Prices are historical purchase records, not current quotes. The eBay purchase email contains an inconsistent listing-end date; the timeline uses the email’s date.
The $2,040.73 subtotal sums seven documented amounts with the inclusions shown. Workshop spending is separate. Neither subtotal is a complete project budget. Actual labor hours, PCB costs, motor delivery date, and first-walk date remain unverified.
Project credit: Pupper documentation and source repository. No tweets are used. Private addresses, payment details, and tracking numbers are omitted.