← All Adventures
August 19, 2026

Building a Meckie: the v3 Parts Kit

Meckie is a tracked companion robot: a face on a belly screen, a head that looks at you, ears that know where your voice came from, a lidar that maps your house, and tank tracks that go where you go. This post is the hardware half of the story — every printed part and every component on the robot, so you can build one.

The whole shell is 28 printed parts (about 3.8 MB of STL, roughly a spool of filament), designed to print on a standard 220×220 bed with no supports on most parts.

Bill of Materials

Pinned: Meckie v3 reference build, August 2026. This is the open hardware list for the tracked robot body. Meckie OS (the software that makes it a Meckie) is separate and proprietary.

Links are to product pages verified as of this writing; Amazon listings churn, so if one is dead, the part name gets you to the equivalent. Prices are approximate street and will drift.

Two things before you build. (1) This build runs bare RC LiPo packs. That's a development compromise, not a consumer design — you need to be comfortable with LiPo charging, storage, and a fire-safe bag. (2) Bench ritual that has been paid for in dead boards: set every buck regulator unloaded, read it with a multimeter, verify barrel plug polarity, then connect the load. Every rail, every time.

Compute & comms

PartQtyLinkNotes
Seeed reComputer Industrial J3011 (Jetson Orin Nano 8GB, fanless)1Seeed · AmazonMain brain. Industrial variant for the passive cooling and screw-down I/O. Power adapter not included — we run it off the 4S rail anyway.
Lonely Binary ESP32-S3 N16R8, 3-pack1 packAmazonTrack brain (drive + encoders, odometry to the Jetson over Bluetooth via the Hideez dongle). 3-pack with screw, screwless, and 2.54 mm bases. Buy the 3-pack; this build ate two before the bench ritual existed.

Drive

PartQtyLinkNotes
Swaytail TS300 tracked chassis w/ suspension + 2× encoder DC motors1AmazonMetal frame, sprung bogies, bearing road wheels. Ships unassembled. 7 V encoder motors included.
Cytron MDD10A dual 10 A motor driver1Amazon4 signal lines (DIR + PWM per channel), screw terminals, up to 30 V motor side. Replaced the TB6612 in v3.
2× VL53L0X ToF sensors, down-facing2The cliff eyes, front + rear on the Track Brain. The lidar handles obstacles and mapping; these handle drop-offs, which no 2D lidar can see. Both run — belt and suspenders, different failure modes.
Crazepony 2S 7.4 V 2200 mAh 50C LiPo, XT60 (2-pack)1 packAmazonDrive domain. Shorty soft-pack; the 2-pack gives you a swap battery.
Panel-mount 5×20 mm fuse holder + slow-blow glass fuse1Drive trunk fuse, 8–10 A slow-blow. Tug-test glass holders after install; blade holders are the eventual upgrade for vibration.
Toggle switch, drive domain1Any panel-mount SPST rated ≥10 A DC.

Head (servos + audio + vision)

PartQtyLinkNotes
FEETECH STS3215 serial bus servo, 7.4 V2–3Seeed (C044, 1:191) · Seeed (C001, 1:345)Pan/tilt. Magnetic encoder, daisy-chain TTL bus, position/current/temp feedback. Pick the 7.4 V variants, not the 12 V.
FEETECH FE-URT-1 USB→TTL servo driver1Seeed · Amazon (DIYmall)Talks to the STS3215 bus from the Jetson over USB. Servo power comes in on its own terminal from the 7.5 V rail — it is signal conversion only.
ADuM4160 USB isolator module1AmazonGoes only between the Jetson and the FE-URT-1. Full-speed USB only (12 Mbps) — do not put it on the mic array or camera.
ReSpeaker XVF3800 USB 4-mic array1SeeedFar-field pickup, on-board AEC/beamforming/DoA, USB Audio Class. The 3.5 mm jack feeds the speaker so the array sees its own playback for echo cancellation.
MEIRIYFA USB-powered wired speaker, 3.5 mm in1Amazon5 V USB powered, 3.5 mm input, front volume knob. Cheap and fine; the point is wired 3.5 mm from the ReSpeaker so AEC works, not Bluetooth.
Logitech Brio 4K webcam1Logitech · AmazonHead camera for face tracking/recognition. Open it at 1080p, not the VGA default, or faces at range are invisible.

Navigation & display

PartQtyLinkNotes
WayPonDEV FHL-LD19 360° DToF LiDAR kit1Amazon · datasheet12 m range, ~10 Hz, 0.9 W. USB-powered through the included CP2102 adapter off the hub — no separate rail. Mount on top with a clear 360° sightline. Feeds SLAM, following, and every obstacle gate.
Eyoyo 7" 1024×600 IPS HDMI touchscreen1AmazonBelly screen. Renders the face; voice-triggered admin mode swaps to a touch config UI on the same panel. 5-point capacitive touch, micro-HDMI adapter, detachable bracket, 3.5 mm out.
Powered USB 3 hub, 7-port1Any name-brand powered hub with a barrel-jack input. Required: Brio + ALFA + Hideez + FE-URT-1 + LD19 + ReSpeaker + touch = 7 devices vs. 3 ports on the J3011. Fed from the Pololu 5 V rail via barrel pigtail — confirm 5.5×2.1 mm center-positive against your hub before wiring.
ALFA AWUS036ACM USB WiFi adapter1RoklandThe Industrial J3011 has no onboard WiFi. Buy the ACM specifically — MediaTek MT7612U, in-kernel mt76 driver, plug-and-play on JetPack 6. ACH/ACS/AX variants are Realtek and need an out-of-tree driver build.
Hideez USB Bluetooth adapter (CSR, BT 4.0)1Amazon · HideezBluetooth link between the Jetson and the ESP32-S3 track brain. Stock btusb driver, no setup. Keep it physically away from the USB 3 ports and the ALFA — 2.4 GHz interference is real.

Power

PartQtyLinkNotes
OVONIC 4S 14.8 V 6500 mAh 130C LiPo, XT60 (2-pack)1 packAmazonCompute/head domain. Jetson takes 4S direct on its 12–24 V input; hub and servo rails come off the Pololu bucks. 2-pack = one on the robot, one on the charger.
Pololu D36V50F7 — 7.5 V, 5 A step-down1Pololu #4093Servo rail.
Pololu D36V50F5 — 5 V, 5 A step-down1Pololu #4091USB hub / peripheral rail.
SMBJ TVS diodes (crowbar on each rail)2SMBJ5.0A on the 5 V rail, SMBJ7.5A on the 7.5 V rail. Parallel across the rail at the load end, cathode band to +. DigiKey: SMBJ5.0A, SMBJ7.5A.
1000 µF 16 V low-ESR electrolytic2One per buck output. Nichicon/Panasonic.
20 A kill switch, 4S domain1Panel-mount, rated for 16.8 V DC.
XT60 connectors, 14–16 AWG silicone wire, heat shrink

What it costs

Direct-vendor prices verified today; Amazon hides prices from robots (fittingly), so those are street estimates marked ~. Everything drifts.

PartPriceSource
reComputer Industrial J3011$1,035.99Seeed, verified
ReSpeaker XVF3800$60.99Seeed, verified
STS3215 servos (×2)$43.98Seeed, verified ($21.99 ea)
FE-URT-1$10.00Seeed, verified
Pololu D36V50F7 (7.5 V)$39.95Pololu, verified
Pololu D36V50F5 (5 V)$39.95Pololu, verified
ALFA AWUS036ACM$46.97Rokland, verified
Swaytail TS300 chassis~$150est.
Logitech Brio 4K~$130est.
OVONIC 4S 6500 mAh (2-pack)~$100est.
FHL-LD19 lidar kit~$100est.
Eyoyo 7" touchscreen~$70est.
Lonely Binary ESP32-S3 (3-pack)~$35est.
Cytron MDD10A~$30est.
Crazepony 2S (2-pack)~$30est.
Powered USB 3 hub~$30est.
ADuM4160 isolator~$20est.
MEIRIYFA speaker~$17est.
Hideez BT dongle~$15est.
2× VL53L0X~$12est.
Switches, fuse, TVS, caps, XT60, wire~$40est.

All in: roughly $2,050 street — half of it is the Jetson. A non-industrial Orin Nano dev kit (~$249) drops the build under $1,300 if you can live with a fan and no screw-down I/O.

Shop

PartNotes
MultimeterNot optional. See warning at top.
LiPo charger (balance) + fire-safe charging bag
Crimper for JST/XT60

The printed parts

Frame (the skeleton)

PartFootprint (mm)Notes
meckie-adapter-plate208×218×6Chassis-to-frame interface — everything stacks on this
meckie-corner-post199×184×20Vertical structure
meckie-cross-rail164×195×20Frame stiffener
meckie-side-rail178×55×20Frame stiffener
meckie-under-tray146×194×42Electronics bay
meckie-grid-tray170×80×3Ventilated component tray
meckie-battery-shelf204×64×6Battery sits low — center of gravity matters on tracks
meckie-vesa-strap176×16×5Screen retention

Skins (the look)

PartFootprint (mm)Notes
meckie-panel-front-lower184×47×2
meckie-panel-chest184×56×3
meckie-panel-rear184×206×2
meckie-panel-side (+ -right)218×206×3Mirrored pair
meckie-panel-top190×212×4
meckie-screen-bezel184×116×4Frames the face
meckie-wedge-cheek (+ -right)52×110×18Mirrored pair
meckie-wedge-sill184×51×10

Head & neck (the personality)

PartFootprint (mm)Notes
meckie-head-shell134×80×77Houses camera + servo horn
meckie-head-faceplate-v2130×80×21Print v2; v1 included for reference
meckie-head-yoke156×64×98Pan/tilt gimbal frame
meckie-neck-tower78×64×33Servo mount
meckie-tilt-hub24×24×5Servo horn adapter
meckie-mic-ring68×68×6Mic array mount — keep it clear of the speaker

Sensor mounts

PartFootprint (mm)Notes
meckie-lidar-mast48×48×188Prints vertical — use a brim. Lidar height defines what he can and cannot see
meckie-lidar-cradle70×62×10LD19 seat
meckie-speaker-cradle104×50×6

Print settings that worked: PLA+, 0.2 mm layers, 3 walls, 20% infill. Panels print flat and fast; the mast and yoke want a brim. Filament brand and colors: TBD.

Pin map — the Track Brain (ESP32-S3 DevKitC-1)

Every GPIO below is read straight from the shipping firmware, not from memory. The choices deliberately avoid every strap pin (0/3/45/46), the native USB pair (19/20), UART0 (43/44), and the flash/PSRAM window (26–37).

Motor driver (Cytron MDD10A)

MDD10A pinESP32-S3 GPIONotes
DIR1 (left)15Direction, plain digital
PWM1 (left)1620 kHz LEDC, 8-bit
DIR2 (right)17
PWM2 (right)21Board doesn't break out 18
GNDGNDCommon ground with logic — non-negotiable

Left motor runs inverted in firmware (LEFT_MOTOR_INVERTED 1) — tank motors mount mirrored, so identical wiring counter-rotates. Flip the flag, never resolder.

Track encoders (quadrature, x2 decode)

EncoderESP32-S3 GPIO
Left A / B4 / 5
Right A / B6 / 7

Left encoder sign is flipped in firmware (ENC_LEFT_SIGN -1) so forward counts positive on both sides. These encoders power the straight-line closed loop and the stall "virtual bumper" — commanded duty with no ticks means he's pressed against something no sensor saw.

Cliff eyes (2× VL53L0X, one I²C bus each)

SensorSDA / SCLNotes
Front (down-facing)GPIO 8 / 9Both sensors are addr 0x29 — separate buses instead of readdressing
Rear (down-facing)GPIO 10 / 11Wire VIN, GND, SDA, SCL only — leave XSHUT/GPIO1 alone

Motor loom color code (JGA-style 6-wire, verified on THIS harness)

WireMeaning
BlackMotor +
RedMotor −
WhiteEncoder GND
YellowEncoder VCC (3.3 V)
OrangeChannel A
GreenChannel B

This table is why rule #1 exists. Internet color conventions for these looms are backwards from this harness and killed four boards. Verify with a meter against the silkscreen before first power, every time, on every new loom.

Links, not wires

The Track Brain talks to the head over BLE (Nordic UART service, device name trackbrain) — the same console protocol as USB serial and the TCP net console (port 2323). No data cable between body and head: the robot works in buildings you don't control.

Hard-won assembly wisdom

  1. Trust silkscreen and a multimeter, never wire colors. Motor loom color conventions off the internet killed four ESP32 boards on this project before the lesson stuck. Meter every pin before power.
  2. Stage your power-up. Continuity-check, then logic only, then motors — never everything at once on a fresh harness.
  3. One power source at a time. USB for flashing or the buck for running. Both at once lets the smoke out.
  4. Put the lidar height decision first. A 2D lidar sees one horizontal plane: mast height decides whether chair legs, table tops, and booth edges exist in his world. (Nothing at any height sees a drop-off — that's what the ToF cliff eyes are for.)
  5. The physical kill switch is not optional. Every software stop — voice stop, deadman, stall detection — sits above a trunk switch that cuts motor power dead.

The software

The body is half the robot. The other half — mapping, waypoint navigation, "come here," person following, the face, the voice — is the Meckie software stack, which gets its own posts. Short version: everything above runs on the robot; a cloud brain adds conversation depth when a network exists, and the robot stays a robot when it doesn't.

Schematics

Harness diagram (v3.1) and power architecture ship alongside this BOM — see the build docs repo.

Downloads

All Adventures →