Daniel Petkevich

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.

Based on purchase records, photo dates, and command logs.

Remote-controlled Pupper complete · September 10, 2026 · 14-second demo

Project timeline

August 11–September 10: 30 days to remote-control completion. Subsequent autonomy debugging shown through September 21.

Sourcing intervalDocumented activity spanDated milestone

Workstream
Aug 11Aug 18Aug 25Sep 1Sep 8Sep 15Sep 21
Evidence / endpoint
Printer + filamentAug 11–Aug 15
Ordered → delivered
0.6 mm hotendAug 13–Aug 17
Ordered → delivered
MotorsAug 12–Aug 19
Inquiry → configuration confirmed; arrival unknown
Power boardAug 13–Aug 19
Review approved → delivered
Pi 5Aug 16–Aug 20
Ordered → delivered
Fasteners + wiringAug 16–Aug 17
Ordered → shipped; arrival unverified
Control boardAug 22–Sep 2
Sensors at factory → assembled boards delivered
AI KitAug 25–Aug 31
Purchase email → delivery
CameraSep 2–Sep 3
Ordered → shipping notice; arrival unknown
Printing + assemblyAug 17–Sep 10
Dated photos span parts → assembled body
Eyes runningSep 2
Display photographed
Actuator short / reworkSep 5
Shorted harness photographed; replacement leads ordered
★ PS5 controlled Pupper CompleteSep 10
Fully functional remote control · 14-second demo, 11:34 a.m.
Navigation debuggingSep 21
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.

30 daysPrinter order → remote-control completion
$2,040.73Documented robot-related amounts*
$1,112.45Printer, initial filament, and hotend
12 motors3 per leg · $115 each before shipping

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

01

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.

Robot-related purchases found in the records · USD
ComponentSupplier / quantityAmountBasis
SteadyWin GIM4305-10 motors + driversAIFITLAB · 12$1,470.00$1,380 hardware + $90 shipping
Raspberry Pi 5, 8 GBPiShop.us · 1$202.70$175 hardware + $11.51 shipping + $16.19 tax
Arducam B0445 / IMX296 cameraArducam · 1$111.99$64.99 hardware + $47 express shipping; import charges unknown
Raspberry Pi AI Kit / Hailo acceleratoreBay · 1$78.99Item price only; shipping and tax not established
JST leads, housings, power tabs, Pi active coolerDigiKey · Aug 16 order$56.34Order acknowledgement total
Additional JST leads and housingsDigiKey · Sep 5 order$67.12Order acknowledgement total; includes $26.99 shipping
Screws and heat-set insertsMcMaster-Carr · 4 line items$53.59Includes shipping and tax
Sum of documented amounts above$2,040.73Incomplete; mixed order totals and item price
Workshop purchases · kept separate from robot components
PurchaseAmountIncluded
Bambu X2D AMS Combo + initial filament order$1,085.81Printer 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.45Reusable 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.

02

What held up orders—or needed checking

DateIssueAction / outcome
Aug 12–19Motor driver and firmware compatibilityI 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 13Second motor-supplier quoteNo quantity discount. A possible 3% discount was subsequently withdrawn. I bought from AIFITLAB.
Aug 14SW1 switch orientationThe emailed placement image appeared rotated 180° relative to my upload. I sent a screenshot and asked JLCPCB to follow the uploaded design.
Aug 22–25Control-board components and placement8 BNO086 sensors reached JLCPCB’s warehouse Aug 22. I approved the U2 header placement Aug 25.
Aug 2720 resistors out of stockI 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.

03

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.

White printed parts on the printer bed
DAY 6 / AUG 17Printed partsWhite parts on the build plate; other shots show rough print attempts.
Printed Pupper shell with ear servos
DAY 17 / AUG 28Shell + ear servosPrinted head structure with both servos installed.
Pupper display showing blue animated eyes
DAY 22 / SEP 2Display runningControl boards delivered that morning; eyes photographed at 12:28 p.m.
Assembled Pupper on carpet during testing
DAY 25 / SEP 5Assembled robotPhoto at 8:49 a.m. This establishes assembly, not a successful walking test.
Front-left hip actuator harness showing the shorted wire after first power-up
DAY 25 / SEP 5First-power-up failureFront-left hip actuator shorted on first power-up. This photo shows the shorted wire. Suspected cause: overtightened cable clamps crushed the wiring.
Assembled Pupper body viewed from above
DAY 30 / SEP 10Body + electronicsPower board and motor wiring visible in the assembled chassis.

Not recorded: hands-on hours, print hours, filament consumed, number of reprints, or exact date of the first successful walk.

September 10, 2026 · 8:09 p.m. · Pupper at home · 55 seconds
04

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