Build package
Build K-Bot
K-Scale Labs · Humanoid · discontinued · 2025
Open-source full-size humanoid from K-Scale Labs; Founder's Edition units shipped in 2025 before the company cancelled pre-orders and wound down in Nov 2025.
Build is partial: Discontinued; mechanical BOM, STEP files and a rough assembly guide are public, but there is no electronics BOM and the custom power board has no public schematic or firmware. RobStride actuators have no listed prices.

- Drawing
- /kscale/kbot
- Maker
- K-Scale Labs
- Country
- Palo Alto, US
- Package rev
- v0.1.0
- Level
- L1 Compiled
- Availability
- DIY
- Openness
- 100/100
- HW licence
- CERN-OHL-S-2.0
- Last checked
- 2026-09-25
- Height
- 140 cm
- Mass
- 34 kg
- DOF
- 20
- Actuators
- RobStride RS00 x2, RS02 x6, RS03 x8, RS04 x4
K-Scale cancelled K-Bot pre-orders, refunded deposits and laid off most staff (Nov 4 2025), releasing IP openly. Repo LICENSE files: HW CERN-OHL-S, SW GPL-3.0 (press reported SW MIT); the runtime repos (firmware, robstride, kos-kbot, kbot-models) are MIT, while kbot_deployment and kscalelabs/docs have no license file. Arm lift ~10 kg; runtime up to 4 h (swappable battery). docs.kscale.dev did not resolve on 2026-09-24, so docs are linked at their GitHub source. The mechanical BOM (Kbot_BOM.xlsx, rev KD, 2025-11-07) and 83 STEP files are in kscalelabs/docs. 20 actuated DOF per the docs actuator table; compute is a Raspberry Pi 5 per the electrical page. URDF masses in kbot-models sum to 36.7 kg vs the 34 kg launch figure. Repos not archived but inactive since Nov 2025.
Configure
Saved in the URL. Share the link to share the build.Source
One cart across 5 vendors · prices in USD as listed45 lines · 671 parts · 31 without an offer in US · 2/45 lines sourced in 2+ regions (L3 gate)
| # | Part | Category | Qty | Unit | Line | Offer |
|---|---|---|---|---|---|---|
Custom molding1 line · unpriced | ||||||
| 1 | Foot tread capsule, molded rubber/TPR (KD-D-601L, KD-D-601R) structure.foot-tread · MPN KD-D-601L/R | structure | 2 | unpriced | — | Custom moldingships globallyMake/Buy = Molding, material Rubber in BoM; UID sheet says black TPR. STEP files in KBot_Parts.zip. |
Custom machining1 line · unpriced | ||||||
| 2 | Ankle linkage flange end pin, steel (KD-D-505X) structure.ankle-linkage-pin · MPN KD-D-505X | structure | 4 | unpriced | — | Custom machiningships globallyBuy (Steel) in BoM with no supplier; STEP file KD-D-505X-SUS304.stp in KBot_Parts.zip. |
Amazon (uxcell)1 line · unpriced | ||||||
| 3 | Deep groove ball bearing 61805 / 6805-2RS, 25 x 37 x 7 mm, double sealed (shoulder idle KD-C-190F x2, hip yoke idle KD-D-190F x2, knee idle KD-D-491F x2) bearing.6805-2rs · MPN 6805-2RS | other | 6 | unpriced | — | Amazon (uxcell)ASIN B082PYT33D as linked in the BoM. The BoM names SKF 61805 but links a uxcell part. |
MISUMI2 lines · unpriced | ||||||
| 4 | Oil-free flanged bushing, 15 mm shaft / 17 mm OD, 12 mm axial, ankle (KD-D-591F) bearing.bushing-15x17 · MPN MZDF-15-12 | other | 4 | unpriced | — | MISUMISeries page linked in the BoM (same page for both bushings); pick the size there. |
| 5 | Oil-free flanged bushing, 8 mm shaft / 10 mm OD, linkage (KD-D-592F) bearing.bushing-8x10 · MPN MDZF-8-8 | other | 4 | unpriced | — | MISUMISeries page linked in the BoM. The BoM writes the PN as MDZF-8-8 here and MZDF-15-12 for the ankle bushing. |
McMaster-Carr9 lines · unpriced | ||||||
| 6 | Clevis pin 8 mm, 20 mm usable length, ankle linkage (KD-D-551F) fastener.clevis-pin-8mm · MPN 93890A714 | fastener | 4 | unpriced | — | McMaster-CarrPN 93890A714 as linked in the K-Bot BoM |
| 7 | External circlip, 7 mm, ankle link (KD-D-554F) fastener.circlip-7mm · MPN 98541A115 | fastener | 4 | unpriced | — | McMaster-CarrPN 98541A115 as linked in the K-Bot BoM |
| 8 | Acorn nut M8x1.25, ankle pivot (KD-D-552F) fastener.acorn-nut-m8 · MPN 94920A150 | fastener | 2 | unpriced | — | McMaster-CarrPN 94920A150 as linked in the K-Bot BoM |
| 9 | SHCS M4x8 (KD-B-156F, KD-B-157F, KD-D-154F, KD-D-251F, KD-D-255F, KD-D-357F, KD-D-358F, KD-D-555F) fastener.shcs-m4x8 | fastener | 96 | unpriced | — | McMaster-CarrPN 91290A148 is linked only on KD-D-555F (ankle motor output bolts) |
| 10 | SHCS M4x16 (KD-C-252F, KD-C-254F, KD-D-151F, KD-D-155F, KD-D-252F, KD-D-253F, KD-D-256F, KD-D-651F) fastener.shcs-m4x16 | fastener | 53 | unpriced | — | McMaster-CarrPN 91290A154 is linked only on KD-D-151F (hip bracket RS04 housing) |
| 11 | SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F) fastener.shcs-m4x20 | fastener | 118 | unpriced | — | McMaster-CarrPN 91290A168 is linked only on KD-D-161F (yoke RS03 roll drive) |
| 12 | SHCS M5x12 (KD-B-208F, KD-D-157F, KD-D-159F) fastener.shcs-m5x12 | fastener | 28 | unpriced | — | McMaster-CarrThe BoM links 91294A128 on KD-B-208F; check it matches an M5x12 SHCS before ordering |
| 13 | SHCS M5x20 (KD-B-151F, KD-D-152F, KD-D-451F) fastener.shcs-m5x20 | fastener | 33 | unpriced | — | McMaster-CarrPN 91290A242 is linked only on KD-D-152F (hip bracket joint) |
| 14 | Countersunk M3x8 (KD-B-206F, KD-D-153F, KD-D-556F) fastener.cshs-m3x8 | fastener | 30 | unpriced | — | McMaster-CarrPN 91294A130 is linked on KD-D-556F; KD-B-206F links 91294A126 instead |
No offer in this region31 lines · unpriced | ||||||
| 15 | RobStride RS00 actuator (wrist, L+R; 5 Nm rated / 14 Nm peak, 0.31 kg, 10:1) actuator.rs00 · MPN RS00 | actuator | 2 | unpriced | — | Offers in CN only |
| 16 | RobStride RS02 actuator (shoulder yaw, elbow, ankle, L+R; 6 Nm rated / 17 Nm peak, 0.38 kg, 7.75:1) actuator.rs02 · MPN RS02 | actuator | 6 | unpriced | — | Offers in CN only |
| 17 | RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1) actuator.rs03 · MPN RS03 | actuator | 8 | unpriced | — | Offers in CN only |
| 18 | RobStride RS04 actuator (hip pitch, knee, L+R; 40 Nm rated / 120 Nm peak, 1.42 kg, 9:1) actuator.rs04 · MPN RS04 | actuator | 4 | unpriced | — | Offers in CN only |
| 19 | Raspberry Pi 5 (main computer, Raspberry Pi OS 64-bit, hostname kd-X) compute.rpi5 · MPN Raspberry Pi 5 | compute | 1 | unpriced | — | No offer found yet |
| 20 | MicroSD card, 32 GB minimum, 64 GB preferred compute.microsd | compute | 1 | unpriced | — | No offer found yet |
| 21 | Hiwonder serial IMU (0x55-framed WIT-style protocol over a CH340 USB-serial adapter, /dev/ttyIMU; model not stated) sensor.imu-hiwonder | sensor | 1 | unpriced | — | No offer found yet |
| 22 | OV5647 camera module on the Pi 5 CSI ports (two device paths listed; head stereo still in progress) sensor.camera-ov5647 · MPN OV5647 | sensor | 2 | unpriced | — | No offer found yet |
| 23 | K-Bot power board (custom; 48 V + CAN per limb, 2x 24 V CAN lines, 24 V header, own CAN bus for control/status) electronics.powerboard | electronics | 1 | unpriced | — | No offer found yet |
| 24 | Buck converter, power board 24 V header to Raspberry Pi 5 (part not specified) electronics.buck-24v-pi | electronics | 1 | unpriced | — | No offer found yet |
| 25 | E-stop switch (plugs into power board; board beeps if missing) electronics.estop | electronics | 1 | unpriced | — | No offer found yet |
| 26 | Power button (plugs into power board; board beeps if missing) electronics.power-button | electronics | 1 | unpriced | — | No offer found yet |
| 27 | Power resistor (plugs into power board; board beeps if missing; value not stated) electronics.power-resistor | electronics | 1 | unpriced | — | No offer found yet |
| 28 | RobStride CAN-to-USB debugging module (tool: set IDs, flash firmware, zero offsets) electronics.robstride-usb-can | electronics | 1 | unpriced | — | Offers in CN only |
| 29 | Battery pack, 12 Ah NCM (4 V cells) with internal BMS talking to the power board; BMS current limit 50 A; pack space 135 x 180 x 65 mm, BMS + plug 130 x 20 x 35 mm power.battery-12ah-ncm | power | 1 | unpriced | — | No offer found yet |
| 30 | 80 A fuse in the main battery connector power.fuse-80a | power | 1 | unpriced | — | No offer found yet |
| 31 | Limb harness, 48 V + CAN daisy chain (power board -> 11..15 / 21..25 / 31..35 / 41..45), XT2+2 connectors, low-friction sleeving max 6 mm OD, 8 mm strain-relief section at the first link cable.limb-harness | cable | 4 | unpriced | — | No offer found yet |
| 32 | Battery to power board lead (per wiring PDF page 15) cable.battery-to-powerboard | cable | 1 | unpriced | — | No offer found yet |
| 33 | USB-A male to USB-A male cable, power board to Raspberry Pi cable.usb-a-a | cable | 1 | unpriced | — | No offer found yet |
| 34 | Eye bolt M10 x 18 mm, torso lifting point (KD-B-209F) fastener.eye-bolt-m10 | fastener | 2 | unpriced | — | No offer found yet |
| 35 | SHCS M3x8 (KD-B-205F, KD-C-255F, KD-C-455F, KD-C-553F) fastener.shcs-m3x8 | fastener | 36 | unpriced | — | No offer found yet |
| 36 | SHCS M3x12 (KD-C-256F, KD-C-354F, KD-C-355F, KD-C-456F) fastener.shcs-m3x12 | fastener | 38 | unpriced | — | No offer found yet |
| 37 | SHCS M3x20 (KD-C-453F, KD-C-551F, KD-D-454F) fastener.shcs-m3x20 | fastener | 32 | unpriced | — | No offer found yet |
| 38 | SHCS M6x25, torso bottom to side mount, plus jam nut per BoM note (KD-B-152F) fastener.shcs-m6x25 | fastener | 6 | unpriced | — | No offer found yet |
| 39 | Countersunk M4x12 (KD-C-251F, KD-D-359F) fastener.cshs-m4x12 | fastener | 28 | unpriced | — | No offer found yet |
| 40 | Countersunk (90 deg) M4x20, yoke bearing pin (KD-D-163) fastener.cshs-m4x20 | fastener | 8 | unpriced | — | No offer found yet |
| 41 | Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F) fastener.dowel-3x10 | fastener | 34 | unpriced | — | No offer found yet |
| 42 | Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F) fastener.dowel-4x10 | fastener | 40 | unpriced | — | No offer found yet |
| 43 | Washer M4, foot to tread (KD-D-652F) fastener.washer-m4 | fastener | 9 | unpriced | — | No offer found yet |
| 44 | Washer M8 stack, foot to tread (KD-D-653F); also M8 ankle pivot washer KD-D-553F with no quantity in the BoM fastener.washer-m8-stack | fastener | 9 | unpriced | — | No offer found yet |
| 45 | Zip tie 2-3 mm wide, 100 mm, shoulder yoke wire routing (KD-C-162F) other.zip-tie | other | 2 | unpriced | — | No offer found yet |
| Cart total · US | 671 | $0.00 | 45 lines unpriced, not in total | |||
Fabricate
Planned for a 256 mm bed- Fabricated parts
- 92
- Print time (sum)
- —
- Material (sum)
- —
- Plates · estimate
- —
No plate estimate: the package does not list grams per part yet, and we will not guess them. Slice the source files for your 256 mm bed.
| Part | Process | Material | Qty | h / part | g / part | Profile |
|---|---|---|---|---|---|---|
Torso structure: top, bottom, sides L/R, sternum brace, front cover lower, front/rear cover upper x2, shoulder cover front L/R (KD-B-101T, 102B, 103L/R, 106X, 201B, 202T x2, 104L/R) cnc.torso | CNC | 6061-T6 aluminium (UID sheet: bead-blasted, black anodized) | 10 | — | — | source |
Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X) cnc.arm | CNC | 6061-T6 aluminium (UID sheet: bead-blasted, black anodized) | 18 | — | — | source |
Wrist rotor top and bottom (KD-C-501X, KD-C-502X), two of each cnc.wrist-rotor | CNC | 6061-T6 aluminium | 4 | — | — | source |
Upper bicep hardstop and wire passthrough (KD-C-203X) cnc.arm-hardstop | CNC | 304 stainless per STEP file name and UID sheet (BoM row says 6061-T6) | 2 | — | — | source |
Wrist clamp key and wrist clamp flat (KD-C-503X x2, KD-C-504X x2) mjf.wrist-clamp | SLS | ABS (molded) or Nylon MJF per BoM; STEP files are tagged ABS | 4 | — | — | source |
Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R) cnc.leg | CNC | 6061-T6 aluminium (UID sheet: bead-blasted, black anodized) | 24 | — | — | source |
Ankle connecting rod x2 (KD-D-503X) and ankle pivot shoulder bolt x2 (KD-D-504X) cnc.ankle-link | CNC | 304 stainless per STEP file names and UID sheet (BoM rows say 6061-T6) | 4 | — | — | source |
Hip yoke hard stop wishbone and tooth, L/R (KD-D-104L/R, KD-D-105L/R) cnc.hip-hardstop | CNC | 304 stainless | 4 | — | — | source |
Thigh RS03 yaw hard stop (KD-D-203X) cnc.thigh-hardstop | CNC | 304 stainless per STEP file name and UID sheet (BoM row says 6061-T6) | 2 | — | — | source |
Ankle linkage mounted end stop 80 deg, L/R (KD-D-506L/R) cnc.ankle-endstop | CNC | 4340 steel per BoM (STEP files and UID sheet say 6061 aluminium) | 2 | — | — | source |
Hip bracket wire static cover, L/R (KD-D-107L/R) sheet.hip-cover | Sheet | 5052 aluminium sheet per BoM (STEP files and UID sheet say 6061) | 2 | — | — | source |
Head middle cover / face bracket (KD-E-102X) cnc.head-middle | CNC | 6061-T6 aluminium | 1 | — | — | source |
Head front cover, back neck, mic holder, speaker holder, breakout panel, Vim4 mount (KD-E-101X, 103X..107X) mjf.head | SLS | ABS (molded) or Nylon MJF per BoM; UID sheet says PC+ABS | 6 | — | — | source |
Battery handle, bistable cam, sliders x2 (KD-F-101X, 102X, 103X x2) cnc.battery | CNC | 6061-T6 aluminium | 4 | — | — | source |
Battery front/middle/back cover, case, on button (KD-F-104X..108X) mjf.battery | SLS | ABS (molded) or Nylon MJF per BoM; UID sheet says PC+ABS | 5 | — | — | source |
Assemble
Every step ends in a check- Steps
- 24
- Subassemblies
- 10
- Hands-on time (sum)
- —
- Critical path
- —
- Your progress · this device
- —
24 steps have no time estimate; times above are lower bounds.
Steps, in build order
- Fabrication01
Machine and mould the KD parts, then check the bearing bores
Order the parts from the STEP files in KBot_Parts.zip or the Onshape release. The UID sheet has a picture and a Chinese name for each part number, for overseas CNC shops. Normal shop tolerances are fine except for the bearing seats. Measure those after anodizing.
CHECKAfter anodizing: hip and shoulder bearing housings are 36.94-36.98 mm and their shafts 24.90-24.97 mm. The knee housing is 37.03-37.10 mm and the knee shaft 25.002-25.03 mm. Root radius is at most 0.03 mm.- Parts in
- Torso structure: top, bottom, sides L/R, sternum brace, front cover lower, front/rear cover upper x2, shoulder cover front L/R (KD-B-101T, 102B, 103L/R, 106X, 201B, 202T x2, 104L/R)cnc.torso
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- Wrist rotor top and bottom (KD-C-501X, KD-C-502X), two of eachcnc.wrist-rotor
- Upper bicep hardstop and wire passthrough (KD-C-203X)cnc.arm-hardstop
- Wrist clamp key and wrist clamp flat (KD-C-503X x2, KD-C-504X x2)mjf.wrist-clamp
- Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R)cnc.leg
- Ankle connecting rod x2 (KD-D-503X) and ankle pivot shoulder bolt x2 (KD-D-504X)cnc.ankle-link
- Hip yoke hard stop wishbone and tooth, L/R (KD-D-104L/R, KD-D-105L/R)cnc.hip-hardstop
- Thigh RS03 yaw hard stop (KD-D-203X)cnc.thigh-hardstop
- Ankle linkage mounted end stop 80 deg, L/R (KD-D-506L/R)cnc.ankle-endstop
- Hip bracket wire static cover, L/R (KD-D-107L/R)sheet.hip-cover
- Head middle cover / face bracket (KD-E-102X)cnc.head-middle
- Head front cover, back neck, mic holder, speaker holder, breakout panel, Vim4 mount (KD-E-101X, 103X..107X)mjf.head
- Battery handle, bistable cam, sliders x2 (KD-F-101X, 102X, 103X x2)cnc.battery
- Battery front/middle/back cover, case, on button (KD-F-104X..108X)mjf.battery
- Foot tread capsule, molded rubber/TPR (KD-D-601L, KD-D-601R)structure.foot-tread
- Ankle linkage flange end pin, steel (KD-D-505X)structure.ankle-linkage-pin
- Tools
- Bore gauge or pin gauges
- Torque
- —
- Time
- —
- After
- Start
- Source
- github.com
- Electrical02
Build the limb harnesses and re-terminate the RS03/RS04 CAN plugs
Follow kbot_wiring.pdf. Each limb is one daisy chain from the power board through actuators x1..x5, with XT2+2 connectors and the plug orientations (up/down) shown per segment. Add a thicker 8 mm section at the power-board-to-first-actuator segment for friction strain relief. Sleeve with low-friction braid, 6 mm OD maximum. RS03 and RS04 get the custom CAN lead in place of the stock plug.
CHECKEach harness passes continuity for 48 V, GND, CAN-H (red) and CAN-L (black) end to end. Sleeved OD is 6 mm or less outside the strain-relief section.- Parts in
- Limb harness, 48 V + CAN daisy chain (power board -> 11..15 / 21..25 / 31..35 / 41..45), XT2+2 connectors, low-friction sleeving max 6 mm OD, 8 mm strain-relief section at the first linkcable.limb-harness
- Battery to power board lead (per wiring PDF page 15)cable.battery-to-powerboard
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- RobStride RS04 actuator (hip pitch, knee, L+R; 40 Nm rated / 120 Nm peak, 1.42 kg, 9:1)actuator.rs04
- Tools
- —
- Torque
- —
- Time
- —
- After
- 01
- Source
- github.com
- 03
Set actuator CAN IDs and firmware
Connect each actuator to the RobStride USB-CAN tool. A new actuator shows up as ID 127. Assign its ID from the motor map: 11-15 left arm, 21-25 right arm, 31-35 left leg, 41-45 right leg (shoulder pitch, shoulder roll, shoulder yaw, elbow, wrist for arms; hip pitch, hip roll, hip yaw, knee, ankle for legs). Flash the current firmware from RobStride's Product_Information releases. The docs describe this for replacing actuators; do it for all 20 before assembly.
CHECKA Motor Studio scan shows the actuator at its assigned ID and the flashed firmware version.- Parts in
- RobStride RS00 actuator (wrist, L+R; 5 Nm rated / 14 Nm peak, 0.31 kg, 10:1)actuator.rs00
- RobStride RS02 actuator (shoulder yaw, elbow, ankle, L+R; 6 Nm rated / 17 Nm peak, 0.38 kg, 7.75:1)actuator.rs02
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- RobStride RS04 actuator (hip pitch, knee, L+R; 40 Nm rated / 120 Nm peak, 1.42 kg, 9:1)actuator.rs04
- RobStride CAN-to-USB debugging module (tool: set IDs, flash firmware, zero offsets)electronics.robstride-usb-can
- Tools
- RobStride Motor Studio (Windows/Linux)
- Torque
- —
- Time
- —
- After
- 01
- Source
- github.com
- Arms04
Arm: shoulder roll RS03 and shoulder yaw RS02 into the upper bicep
Guide pages 3-7. Install the RS03 with KD-C-251F (M4x12). Plug in the RS02, then install it as the arm roll motor with KD-C-255F (M3x8): align the wire connector with the arrow so 3 holes show in the gap. Plug in the wire and mount the hardstop with KD-C-256F (M3x12), routing the wire underneath. Press pins into the bicep drive piece, mount it on the actuator and secure with KD-C-353F (M4x20).
CHECKBoth actuators sit flush with the connector at the arrow, the wire runs under the hardstop, and the bicep piece turns only within the hardstop range.- Parts in
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- Upper bicep hardstop and wire passthrough (KD-C-203X)cnc.arm-hardstop
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- RobStride RS02 actuator (shoulder yaw, elbow, ankle, L+R; 6 Nm rated / 17 Nm peak, 0.38 kg, 7.75:1)actuator.rs02
- Countersunk M4x12 (KD-C-251F, KD-D-359F)fastener.cshs-m4x12
- SHCS M3x8 (KD-B-205F, KD-C-255F, KD-C-455F, KD-C-553F)fastener.shcs-m3x8
- SHCS M3x12 (KD-C-256F, KD-C-354F, KD-C-355F, KD-C-456F)fastener.shcs-m3x12
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F)fastener.dowel-4x10
- Limb harness, 48 V + CAN daisy chain (power board -> 11..15 / 21..25 / 31..35 / 41..45), XT2+2 connectors, low-friction sleeving max 6 mm OD, 8 mm strain-relief section at the first linkcable.limb-harness
- Tools
- —
- Torque
- —
- Time
- —
- Source
- github.com
- Legs05
Leg: hip roll/yaw RS03 in the upper femur
Guide pages 25-29. Put the RS03 mount screws KD-D-251F (M4x8) in the drive shell and connect the wire between the actuators. Orient the actuator with its plug to the arrow and secure the hip yaw actuator with KD-D-255F (M4x8). Fit the hip yaw hardstop with KD-D-256F (M4x16).
CHECKThe hip yaw stops on the hardstop at both ends, about +/-90 deg per the docs joint range table.- Parts in
- Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R)cnc.leg
- Thigh RS03 yaw hard stop (KD-D-203X)cnc.thigh-hardstop
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- SHCS M4x8 (KD-B-156F, KD-B-157F, KD-D-154F, KD-D-251F, KD-D-255F, KD-D-357F, KD-D-358F, KD-D-555F)fastener.shcs-m4x8
- SHCS M4x16 (KD-C-252F, KD-C-254F, KD-D-151F, KD-D-155F, KD-D-252F, KD-D-253F, KD-D-256F, KD-D-651F)fastener.shcs-m4x16
- Tools
- —
- Torque
- —
- Time
- —
- Source
- github.com
- Arms06
Arm: elbow RS02, bicep clamshell and forearm
Guide pages 8-13. Lay the elbow RS02 on the bicep idle clamshell with the plug at the cutout and fix it with KD-C-354F (M3x12). Plug it into the actuator above. Add KD-C-351F dowels (3x10), close the clamshell with KD-C-352F (M4x20) on the sides and KD-C-355F (M3x12) into the back of the elbow motor. Press KD-C-452F dowels (4x10) into the forearm piece and fix it to the elbow with KD-C-451F (M4x20).
CHECKClamshell halves close with no gap, and the elbow cable is not pinched through its full travel.- Parts in
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- RobStride RS02 actuator (shoulder yaw, elbow, ankle, L+R; 6 Nm rated / 17 Nm peak, 0.38 kg, 7.75:1)actuator.rs02
- SHCS M3x12 (KD-C-256F, KD-C-354F, KD-C-355F, KD-C-456F)fastener.shcs-m3x12
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F)fastener.dowel-3x10
- Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F)fastener.dowel-4x10
- Tools
- —
- Torque
- —
- Time
- —
- After
- 04
- Source
- github.com
- Legs07
Leg: knee RS04, lower femur and knee bearing
Guide pages 30-39. On the drive side of the lower femur install the knee RS04 with KD-D-357F (M4x8). Dowel the lower femur (KD-D-353F, 4x10) and fix it to the upper femur with KD-D-351F (M4x20). Route the wire before the hard stop. Add KD-D-254F dowels (3x10), close the other side with KD-D-355F (M4x20) and secure the motor with KD-D-358F (M4x8). Press the 61805 bearing (KD-D-491F) onto the plate, route the knee wire as shown and fix the cap with KD-D-359F (M4x12 countersunk).
CHECKThe bearing is fully seated on the plate, and the knee moves 0-155 deg (docs range) freely with the cable following the shown route.- Parts in
- Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R)cnc.leg
- RobStride RS04 actuator (hip pitch, knee, L+R; 40 Nm rated / 120 Nm peak, 1.42 kg, 9:1)actuator.rs04
- Deep groove ball bearing 61805 / 6805-2RS, 25 x 37 x 7 mm, double sealed (shoulder idle KD-C-190F x2, hip yoke idle KD-D-190F x2, knee idle KD-D-491F x2)bearing.6805-2rs
- SHCS M4x8 (KD-B-156F, KD-B-157F, KD-D-154F, KD-D-251F, KD-D-255F, KD-D-357F, KD-D-358F, KD-D-555F)fastener.shcs-m4x8
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F)fastener.dowel-4x10
- Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F)fastener.dowel-3x10
- Countersunk M4x12 (KD-C-251F, KD-D-359F)fastener.cshs-m4x12
- Tools
- —
- Torque
- —
- Time
- —
- After
- 05
- Source
- github.com
- Arms08
Arm: wrist RS00, forearm idle side and wrist clamp
Guide pages 14-22. Plug the elbow-to-wrist wire into the RS00. Mount the wrist motor with its plug at the arrow on the aluminium piece using KD-C-455F (M3x8) and KD-C-456F (M3x12). Plug in the other end and the wrist wire. Close the forearm idle side with KD-C-453F (M3x20). Dowel the bottom motor (KD-C-552F, 3x10), mount the wrist piece with the wire through the centre and fix it with KD-C-551F (M3x20). Build the wrist end piece with KD-C-553F (M3x8). Assemble the wrist with the grooves aligned, then fit the clamp with KD-C-554F (M4x20). The rest of the arm goes on after the torso.
CHECKThe wrist rotates through +/-79 deg (docs joint range) with no cable snag, and the wire exits through the wrist centre.- Parts in
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- Wrist rotor top and bottom (KD-C-501X, KD-C-502X), two of eachcnc.wrist-rotor
- Wrist clamp key and wrist clamp flat (KD-C-503X x2, KD-C-504X x2)mjf.wrist-clamp
- RobStride RS00 actuator (wrist, L+R; 5 Nm rated / 14 Nm peak, 0.31 kg, 10:1)actuator.rs00
- SHCS M3x8 (KD-B-205F, KD-C-255F, KD-C-455F, KD-C-553F)fastener.shcs-m3x8
- SHCS M3x12 (KD-C-256F, KD-C-354F, KD-C-355F, KD-C-456F)fastener.shcs-m3x12
- SHCS M3x20 (KD-C-453F, KD-C-551F, KD-D-454F)fastener.shcs-m3x20
- Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F)fastener.dowel-3x10
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Tools
- —
- Torque
- —
- Time
- —
- After
- 06
- Source
- github.com
- Legs09
Leg: ankle RS02 and ankle hardstop in the shin
Guide pages 39-42. Fit the shin piece keeping the wire on its route. Plug in the ankle RS02 and secure it with KD-D-454F (M3x20). Fix the hardstop with KD-D-556F (M3x8 countersunk), with its tooth at a right angle to the outer shin profile.
CHECKThe hardstop tooth sits at 90 deg to the outer shin profile, and the ankle motor output turns freely before the linkage is fitted.- Parts in
- Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R)cnc.leg
- RobStride RS02 actuator (shoulder yaw, elbow, ankle, L+R; 6 Nm rated / 17 Nm peak, 0.38 kg, 7.75:1)actuator.rs02
- SHCS M3x20 (KD-C-453F, KD-C-551F, KD-D-454F)fastener.shcs-m3x20
- Countersunk M3x8 (KD-B-206F, KD-D-153F, KD-D-556F)fastener.cshs-m3x8
- Tools
- —
- Torque
- —
- Time
- —
- After
- 07
- Source
- github.com
- 10
Leg: hip yoke, upper thigh to hip RS03 roll, idle clamp
Guide pages 43-49 (hip bracket parts per BoM KD-D-100 group). At the hip, secure the hip yoke on both sides with KD-D-157F (M5x12) and install the KD-D-162 dowels (4x10). Put the upper thigh on the yoke with KD-D-161F (M4x20). Before connecting the wire fully, swing the leg to its rear end stop to pull the wire length tight. Fit the other side of the thigh, routing the hip wire through the hole with the CAN data line under the bearing. Close the idle side and clamp with KD-D-158F dowels (3x10), KD-D-159F (M5x12) and KD-D-160F (M4x20).
CHECKWith the leg at full rear travel the wire is taut but not strained, and the leg sweeps its whole hip pitch/roll range without pulling a connector.- Parts in
- Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R)cnc.leg
- Hip yoke hard stop wishbone and tooth, L/R (KD-D-104L/R, KD-D-105L/R)cnc.hip-hardstop
- Hip bracket wire static cover, L/R (KD-D-107L/R)sheet.hip-cover
- RobStride RS04 actuator (hip pitch, knee, L+R; 40 Nm rated / 120 Nm peak, 1.42 kg, 9:1)actuator.rs04
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- Deep groove ball bearing 61805 / 6805-2RS, 25 x 37 x 7 mm, double sealed (shoulder idle KD-C-190F x2, hip yoke idle KD-D-190F x2, knee idle KD-D-491F x2)bearing.6805-2rs
- SHCS M5x12 (KD-B-208F, KD-D-157F, KD-D-159F)fastener.shcs-m5x12
- Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F)fastener.dowel-4x10
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F)fastener.dowel-3x10
- SHCS M4x16 (KD-C-252F, KD-C-254F, KD-D-151F, KD-D-155F, KD-D-252F, KD-D-253F, KD-D-256F, KD-D-651F)fastener.shcs-m4x16
- SHCS M5x20 (KD-B-151F, KD-D-152F, KD-D-451F)fastener.shcs-m5x20
- Countersunk M3x8 (KD-B-206F, KD-D-153F, KD-D-556F)fastener.cshs-m3x8
- Countersunk (90 deg) M4x20, yoke bearing pin (KD-D-163)fastener.cshs-m4x20
- Tools
- —
- Torque
- —
- Time
- —
- After
- 09
- Source
- github.com
- 11
Leg: shin close-out, foot tread and ankle linkage
Guide pages 50-60. Fit the KD-D-592F bushing, then the pin and circlip. Fix the cap with KD-D-359F (M4x12 countersunk). Dowel with KD-D-453F (3x10) and route the wire through the centre of the bearing. Secure the load-bearing side to the actuator with KD-D-451F (M5x20), flip the leg and fit KD-D-452F (M4x20). Mount the tread with KD-D-651F (M4x16), M4 washers (KD-D-652F) and M8 washers (KD-D-653F). Put KD-D-591F bushings on both sides of the ankle pivot hole, insert the pin with the KD-D-552F acorn nut, then the linkage pin with a KD-D-554F circlip on the other side.
CHECKMoving the ankle actuator by hand drives the foot through -15..65 deg (left) with no binding, and all circlips are seated in their grooves.- Parts in
- Leg shells L/R: hip bracket, hip yoke drive/idle, upper femur drive/idle, lower femur drive/idle, shin drive/idle, knee RS04 bearing mount, foot structure, ankle driver linkage (KD-D-101..502 L/R)cnc.leg
- Ankle connecting rod x2 (KD-D-503X) and ankle pivot shoulder bolt x2 (KD-D-504X)cnc.ankle-link
- Ankle linkage mounted end stop 80 deg, L/R (KD-D-506L/R)cnc.ankle-endstop
- Foot tread capsule, molded rubber/TPR (KD-D-601L, KD-D-601R)structure.foot-tread
- Ankle linkage flange end pin, steel (KD-D-505X)structure.ankle-linkage-pin
- Oil-free flanged bushing, 8 mm shaft / 10 mm OD, linkage (KD-D-592F)bearing.bushing-8x10
- Oil-free flanged bushing, 15 mm shaft / 17 mm OD, 12 mm axial, ankle (KD-D-591F)bearing.bushing-15x17
- Clevis pin 8 mm, 20 mm usable length, ankle linkage (KD-D-551F)fastener.clevis-pin-8mm
- External circlip, 7 mm, ankle link (KD-D-554F)fastener.circlip-7mm
- Acorn nut M8x1.25, ankle pivot (KD-D-552F)fastener.acorn-nut-m8
- Countersunk M4x12 (KD-C-251F, KD-D-359F)fastener.cshs-m4x12
- Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F)fastener.dowel-3x10
- SHCS M5x20 (KD-B-151F, KD-D-152F, KD-D-451F)fastener.shcs-m5x20
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- SHCS M4x16 (KD-C-252F, KD-C-254F, KD-D-151F, KD-D-155F, KD-D-252F, KD-D-253F, KD-D-256F, KD-D-651F)fastener.shcs-m4x16
- Washer M4, foot to tread (KD-D-652F)fastener.washer-m4
- Washer M8 stack, foot to tread (KD-D-653F); also M8 ankle pivot washer KD-D-553F with no quantity in the BoMfastener.washer-m8-stack
- Tools
- —
- Torque
- —
- Time
- —
- After
- 10
- Source
- github.com
- Torso12
Torso: shoulder RS03s, cross brace, hardstops, join to legs
Guide pages 62-73. Remove the torso RS03 screws and install a motor into each torso side with KD-B-157F (M4x8). Fit the cross brace with its tab-less side facing back, using KD-B-208F (M5x12). Install the front hardstop, secured front and rear with KD-C-160F/161F (M4x20). Fix the torso top to one side only with KD-B-159F (M4x20). Put the 4x10 pins in the torso bottom and bolt the bottom to both legs with KD-B-151F (M5x20). Add the assembled side to the bottom with KD-B-152F (M6x25). Loosely fit the other side to the bottom, cross brace and top brace, then torque down the side mounting bolts from those last 3 steps.
CHECKBoth torso sides sit square on the bottom plate with the dowels engaged, and no bolt from pages 69-72 is still loose after the final torque-down.- Parts in
- Torso structure: top, bottom, sides L/R, sternum brace, front cover lower, front/rear cover upper x2, shoulder cover front L/R (KD-B-101T, 102B, 103L/R, 106X, 201B, 202T x2, 104L/R)cnc.torso
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- SHCS M4x8 (KD-B-156F, KD-B-157F, KD-D-154F, KD-D-251F, KD-D-255F, KD-D-357F, KD-D-358F, KD-D-555F)fastener.shcs-m4x8
- SHCS M5x12 (KD-B-208F, KD-D-157F, KD-D-159F)fastener.shcs-m5x12
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F)fastener.dowel-4x10
- SHCS M5x20 (KD-B-151F, KD-D-152F, KD-D-451F)fastener.shcs-m5x20
- SHCS M6x25, torso bottom to side mount, plus jam nut per BoM note (KD-B-152F)fastener.shcs-m6x25
- Eye bolt M10 x 18 mm, torso lifting point (KD-B-209F)fastener.eye-bolt-m10
- Tools
- —
- Torque
- —
- Time
- —
- After
- 11
- Source
- github.com
- 13
Torso: shoulder covers, wire feed and shoulder yokes
Guide pages 74-81. Plug in the wire on both sides and feed it through the hole. Mount the shoulder cover with KD-B-156F (M4x8) and feed the wire through. Put a loose zip tie around the wire. Mount the shoulder yoke with KD-C-151F (M4x20) and KD-C-152F dowels (4x10), and fit the KD-C-157F pins (4x10). Pull the wire taut and tighten the zip tie.
CHECKThe shoulder pitch rotates across its range with the zip-tied wire taut and no rubbing on the cover edge.- Parts in
- Torso structure: top, bottom, sides L/R, sternum brace, front cover lower, front/rear cover upper x2, shoulder cover front L/R (KD-B-101T, 102B, 103L/R, 106X, 201B, 202T x2, 104L/R)cnc.torso
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- Deep groove ball bearing 61805 / 6805-2RS, 25 x 37 x 7 mm, double sealed (shoulder idle KD-C-190F x2, hip yoke idle KD-D-190F x2, knee idle KD-D-491F x2)bearing.6805-2rs
- Zip tie 2-3 mm wide, 100 mm, shoulder yoke wire routing (KD-C-162F)other.zip-tie
- SHCS M4x8 (KD-B-156F, KD-B-157F, KD-D-154F, KD-D-251F, KD-D-255F, KD-D-357F, KD-D-358F, KD-D-555F)fastener.shcs-m4x8
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- Dowel pin 4 x 10 mm (KD-B-155F, KD-C-152F, 157F, 356F, 452F, KD-D-162F, 353F)fastener.dowel-4x10
- Tools
- —
- Torque
- —
- Time
- —
- After
- 12
- Source
- github.com
- Final assembly14
Mount the arms to the shoulder yokes
Guide pages 83-90. Align the pins and install the arm with KD-C-156F (M4x20). Route the wires through the idle side and bearing, tape them down, plug in and secure. Fix the idle side with KD-C-254F (M4x16), add KD-C-153F dowels (3x10), clamp the wire through the centre, and fit the other side of the yoke with KD-C-154F (M4x20).
CHECKEach arm moves through shoulder pitch -60..200 deg and roll -25..95 deg (left; mirrored for right) by hand with no wire pull.- Parts in
- Arm shells L/R: shoulder yoke drive/idle, upper bicep drive/idle, lower bicep drive/idle, upper forearm drive/idle (KD-C-101..402 L/R) plus shoulder pitch RS03 hardstop x2 (KD-C-103X)cnc.arm
- SHCS M4x20 (KD-B-159F, KD-C-151F, 154F, 156F, 160F, 161F, 352F, 353F, 451F, 554F, KD-D-160F, 161F, 351F, 355F, 452F)fastener.shcs-m4x20
- SHCS M4x16 (KD-C-252F, KD-C-254F, KD-D-151F, KD-D-155F, KD-D-252F, KD-D-253F, KD-D-256F, KD-D-651F)fastener.shcs-m4x16
- Dowel pin 3 x 10 mm (KD-C-153F, 351F, 454F, 552F, KD-D-156F, 158F, 254F, 356F, 453F)fastener.dowel-3x10
- Tools
- —
- Torque
- —
- Time
- —
- Source
- github.com
- 15
Fit the front and side panels
Guide pages 91-93. Install the panels and the front panels with KD-B-206F (M3x8 countersunk). The front plate comes off again to reach the red JST CAN connectors when troubleshooting.
CHECKAll panel screws sit flush, and the front plate can come off without disturbing the harness.- Parts in
- Torso structure: top, bottom, sides L/R, sternum brace, front cover lower, front/rear cover upper x2, shoulder cover front L/R (KD-B-101T, 102B, 103L/R, 106X, 201B, 202T x2, 104L/R)cnc.torso
- Countersunk M3x8 (KD-B-206F, KD-D-153F, KD-D-556F)fastener.cshs-m3x8
- Tools
- —
- Torque
- —
- Time
- —
- After
- 14
- Source
- github.com
- Head16
Head: build the covers and mount the head (no guide)
The assembly guide does not cover the head. Assemble it from the Onshape K-Bot Head document and the KD-E STEP files (front cover, middle cover, back neck, mic, speaker and breakout mounts). The docs describe the head as a swappable unit that is basically one USB device.
CHECKEvery KD-E part is fitted as in the Onshape Head assembly, and both cameras enumerate on the Pi (libcamera lists 2 devices).- Parts in
- Head middle cover / face bracket (KD-E-102X)cnc.head-middle
- Head front cover, back neck, mic holder, speaker holder, breakout panel, Vim4 mount (KD-E-101X, 103X..107X)mjf.head
- OV5647 camera module on the Pi 5 CSI ports (two device paths listed; head stereo still in progress)sensor.camera-ov5647
- Tools
- —
- Torque
- —
- Time
- —
- After
- 15
- Source
- github.com
- Electrical17
Wire the power board, e-stop, button and compute
Safety · human-verified requiredPlug the power button, e-stop and power resistor into the power board; it beeps if any is missing. Connect each limb to its 48 V + CAN port. Run the 24 V header through the buck converter to the Raspberry Pi 5, and connect the board's USB-A to the Pi with the A-to-A cable. Plug in the IMU under the Pi.
CHECKAll 4 limb connectors are seated, and the power board does not beep once button, e-stop and resistor are connected.This step can hurt a person or ruin parts. Its instructions need sign-off by a human who has done it before relying on them. Stop and ask if anything differs from what you see.
- Parts in
- K-Bot power board (custom; 48 V + CAN per limb, 2x 24 V CAN lines, 24 V header, own CAN bus for control/status)electronics.powerboard
- E-stop switch (plugs into power board; board beeps if missing)electronics.estop
- Power button (plugs into power board; board beeps if missing)electronics.power-button
- Power resistor (plugs into power board; board beeps if missing; value not stated)electronics.power-resistor
- Buck converter, power board 24 V header to Raspberry Pi 5 (part not specified)electronics.buck-24v-pi
- USB-A male to USB-A male cable, power board to Raspberry Picable.usb-a-a
- Raspberry Pi 5 (main computer, Raspberry Pi OS 64-bit, hostname kd-X)compute.rpi5
- Hiwonder serial IMU (0x55-framed WIT-style protocol over a CH340 USB-serial adapter, /dev/ttyIMU; model not stated)sensor.imu-hiwonder
- Limb harness, 48 V + CAN daisy chain (power board -> 11..15 / 21..25 / 31..35 / 41..45), XT2+2 connectors, low-friction sleeving max 6 mm OD, 8 mm strain-relief section at the first linkcable.limb-harness
- Tools
- —
- Torque
- —
- Time
- —
- After
- 16
- Source
- github.com
- 18
Assemble and insert the battery
Safety · human-verified requiredBuild the battery enclosure (KD-F parts) around the 12 Ah NCM pack and BMS. The pack needs 135 x 180 x 65 mm and the BMS and plug 130 x 20 x 35 mm. The main connector carries an 80 A fuse; the small pins are the BMS link to the power board. The BMS current limit is 50 A.
CHECKThe pack locks into the bistable cam. The 80 A fuse is present in the main connector. With the e-stop pressed, the power board reads battery voltage over its status frame and shows no VBUS fault bits.This step can hurt a person or ruin parts. Its instructions need sign-off by a human who has done it before relying on them. Stop and ask if anything differs from what you see.
- Parts in
- Battery pack, 12 Ah NCM (4 V cells) with internal BMS talking to the power board; BMS current limit 50 A; pack space 135 x 180 x 65 mm, BMS + plug 130 x 20 x 35 mmpower.battery-12ah-ncm
- 80 A fuse in the main battery connectorpower.fuse-80a
- Battery handle, bistable cam, sliders x2 (KD-F-101X, 102X, 103X x2)cnc.battery
- Battery front/middle/back cover, case, on button (KD-F-104X..108X)mjf.battery
- Battery to power board lead (per wiring PDF page 15)cable.battery-to-powerboard
- Tools
- —
- Torque
- —
- Time
- —
- After
- 17
- Source
- github.com
- Software19
Flash Raspberry Pi OS and build the control stack
Flash Raspberry Pi OS 64-bit, hostname kd-X, with WiFi and SSH enabled. Install fzf, can-utils, pkg-config, vim and git, plus Rust. In a venv, pip install numpy inputs rich onnxruntime python-periphery serial maturin cffi. Clone kscalelabs/robstride (maturin develop in python/), kscalelabs/firmware (cargo build --release, copy target/release/faux_rtos to ~/kbot_deployment) and kscalelabs/kbot_deployment. Install misc/99-imu.rules so the IMU appears as /dev/ttyIMU.
CHECKcargo build --release finishes, `robstride --help` runs, and /dev/ttyIMU exists after a reboot.- Parts in
- Raspberry Pi 5 (main computer, Raspberry Pi OS 64-bit, hostname kd-X)compute.rpi5
- MicroSD card, 32 GB minimum, 64 GB preferredcompute.microsd
- Tools
- —
- Torque
- —
- Time
- —
- After
- 18
- Source
- github.com
- Bring-up20
Bring up CAN and find all 20 actuators
Safety · human-verified requiredRun set_can.sh (1 Mbit/s, txqueuelen 1000), then `robstride -i can0,can1,can2,can3,can4,can5,can6 scan`. Export CAN_INTERFACES in the order of the buses holding the 10s, 20s, 30s and 40s, e.g. can0,can2,can1,can3. If a limb shows fewer than 5 actuators, take off the front plate and reseat the red JST CAN connectors. Do not pull hard on them, or they can tear off the shoulder actuators.
CHECKThe scan reports 20 total actuators across 4 interfaces, IDs 11-15, 21-25, 31-35 and 41-45.This step can hurt a person or ruin parts. Its instructions need sign-off by a human who has done it before relying on them. Stop and ask if anything differs from what you see.
- Parts in
- Raspberry Pi 5 (main computer, Raspberry Pi OS 64-bit, hostname kd-X)compute.rpi5
- K-Bot power board (custom; 48 V + CAN per limb, 2x 24 V CAN lines, 24 V header, own CAN bus for control/status)electronics.powerboard
- Tools
- —
- Torque
- —
- Time
- —
- Source
- github.com
- 21
Zero the actuators
Safety · human-verified requiredWrite the per-ID zero offset into each actuator's parameter table (e.g. 11: -3.491, 21: -2.802, 31: -2.216, 41: 2.216, 35: -0.262, 45: 0.262; full table in the zeroing doc). Put the robot in the zeroing pose from the video. While one person holds the elbows straight, run `robstride -i can0,...,can6 zero --ids 11,...,45`.
CHECK`robstride ... state --ids 11,...,45` reads close to zero for every joint in the zeroing pose. Re-zero any outlier by hand in Motor Studio.This step can hurt a person or ruin parts. Its instructions need sign-off by a human who has done it before relying on them. Stop and ask if anything differs from what you see.
- Parts in
- RobStride RS00 actuator (wrist, L+R; 5 Nm rated / 14 Nm peak, 0.31 kg, 10:1)actuator.rs00
- RobStride RS02 actuator (shoulder yaw, elbow, ankle, L+R; 6 Nm rated / 17 Nm peak, 0.38 kg, 7.75:1)actuator.rs02
- RobStride RS03 actuator (shoulder pitch, shoulder roll, hip roll, hip yaw, L+R; 20 Nm rated / 60 Nm peak, 0.88 kg, 9:1)actuator.rs03
- RobStride RS04 actuator (hip pitch, knee, L+R; 40 Nm rated / 120 Nm peak, 1.42 kg, 9:1)actuator.rs04
- RobStride CAN-to-USB debugging module (tool: set IDs, flash firmware, zero offsets)electronics.robstride-usb-can
- Tools
- —
- Torque
- —
- Time
- —
- After
- 20
- Source
- github.com
- 22
First motion: standing policy on a stand or gantry
Safety · human-verified requiredcd ~/kbot_deployment, then ./scripts/run ./policies/stand_frozen.kinfer. This resets max torques and runs faux-rtos at chrt 80. Press Enter twice to move to home, and check every motor holds position under torque. Lift the robot off its stand, or lower it on a gantry, holding the torso vertical. Press Enter once more to start the policy.
CHECKThe robot reaches home with all 20 joints holding torque, then stands unassisted on the floor. If ./scripts/run exits at once, the IMU is not plugged in.This step can hurt a person or ruin parts. Its instructions need sign-off by a human who has done it before relying on them. Stop and ask if anything differs from what you see.
- Parts in
- Raspberry Pi 5 (main computer, Raspberry Pi OS 64-bit, hostname kd-X)compute.rpi5
- Hiwonder serial IMU (0x55-framed WIT-style protocol over a CH340 USB-serial adapter, /dev/ttyIMU; model not stated)sensor.imu-hiwonder
- Tools
- —
- Torque
- —
- Time
- —
- After
- 21
- Source
- github.com
- Simulation23
Train and convert your own policy in K-Sim
Clone kscalelabs/kbot-joystick (Python 3.11+), pip install -r requirements.lock (plus jax[cuda12] on GPU), python -m train, then python -m convert ckpt.bin model.kinfer. Check it with kinfer-sim model.kinfer kbot-headless before deploying with scripts/run. IsaacLab (IsaacSim 5.0) and IsaacGym workflows are also referenced.
CHECKkinfer-sim runs the converted model on kbot-headless without falling. Upstream says the policy converges in about 1 h and reward keeps rising for about 24 h.- Parts in
- —
- Tools
- GPU workstation or cloud GPU
- Torque
- —
- Time
- —
- After
- 21
- Source
- github.com
- Bring-up24
Walking policy with keyboard control
Safety · human-verified requiredPrint the headless mount. In a second terminal run python kbot_control/keyboard.py, then ./scripts/run ./policies/eloquent_ride.kinfer and do the same Enter sequence as for standing. Up/down arrows set command magnitude, WASD sets x/y velocity and Q/E sets yaw. With eloquent_ride, set magnitude to 0.2. Only turning in place and side-stepping work well; forward and backward walking was still in development.
CHECKAt magnitude 0.2 the robot turns in place on Q/E and side-steps on A/D without falling. Keep a gantry or spotter.This step can hurt a person or ruin parts. Its instructions need sign-off by a human who has done it before relying on them. Stop and ask if anything differs from what you see.
- Parts in
- Raspberry Pi 5 (main computer, Raspberry Pi OS 64-bit, hostname kd-X)compute.rpi5
- Tools
- —
- Torque
- —
- Time
- —
- After
- 22
- Source
- github.com
Progress is stored in this browser only (localStorage). Nothing is sent anywhere.
Bring-up
Flash · calibrate · first policy- A
Flash firmware
TargetsRaspberry Pi 5, Raspberry Pi OS 64-bit, running kscalelabs/firmware (Rust, faux_rtos / faux-rtos binary, single-threaded), RobStride RS00/RS02/RS03/RS04 actuators, flashed with RobStride's firmware releases via Motor Studio, 1 Mbit/s CAN, K-Bot power board (CAN control/query/status/power frames 0x1001-0x1004; its firmware is not published), Hiwonder IMU over USB serial (driver sets 230400 baud)
Repogithub.com/kscalelabs/firmware
Deploy flow: kbot_deployment/scripts/run <policy.kinfer> symlinks model.kinfer and runs `sudo -E chrt 80 faux-rtos --lpf-cutoff-hz 10 --min-jerk-blend-ms 0`. The older KOS stack kscalelabs/kos-kbot (last commit 2025-05-02) and kinfer-kbot are superseded by kscalelabs/firmware. The robstride CLI/Python driver is kscalelabs/robstride. Power board Python protocol: kbot_deployment/powerboard/power_board.py; Rust: kscalelabs/kbot-pwrbrd. VR teleop: kscalelabs/kbot_vr_teleop (Meta Quest, WebRTC/GStreamer).
- B
Calibrate
CalibrationSet CAN IDs (11-15 L arm, 21-25 R arm, 31-35 L leg, 41-45 R leg) and zero offsets per the docs zeroing table, then `robstride -i can0..can6 zero --ids ...` in the zeroing pose and verify with `robstride ... state`. Helper scripts are in kbot_deployment/scripts (set_zero_sta.sh, zero_actuator.sh, read_param.sh, set_max_torque.sh, reset_max_torques.sh, clear_faults.sh).Log the output. It goes in your build report.
- C
First policy
- Standing (stand_frozen.kinfer)kinfer source
- Walking with keyboard velocity commands (eloquent_ride.kinfer)kinfer source
- Full-body joystick RL control (train + convert to .kinfer)ksim (JAX/MuJoCo MJX) + kinfer source
- K-Sim K-Bot walking training exampleksim (JAX/MuJoCo MJX) source
Try the policy in the browser sim before it touches hardware. Keep a hand near the power switch the first time a policy runs on the real robot.
Report your build
Moves K-Bot toward L4 · BuiltA build report is the only thing that proves a package works. It raises the level, puts a point on the map, and tells the Foreman which steps to rewrite.
Level gate
Holds L1 · evidence, not confidence- L0Indexed
Known to exist. Atlas page only.
- 7 sources on record(met)
- L1Compiled
Package validates against the spec; every fact has a source.
- Build package compiled(met)
- 34 sources across robot and package(met)
- L2Sim-verified
Loads in browser and GPU sim, mass within tolerance of the BOM, holds a stand. Unlocks .training.
- URDF/MJCF is public(met)
- Sim load, mass tolerance and stand are checked on .training(checked elsewhere)
- L3Sourced
Every BOM line resolves to a live offer in at least two regions. Unlocks the one-click cart.
- 0/45 BOM lines have offers in 2+ regions(not met)
- L4Built
At least one community build report with photos and bring-up logs. Unlocks Build it as the main action.
- 0 reviewed build reports(not met)
- Review feed unreachable at last refresh; count is registry-only(checked elsewhere)
- L5Certified
The robot's maintainer signs the package. Unlocks certified teams and kit sales.
- Maintainer signature not recorded(not met)
Levels are cumulative and set by the registry from reviewed evidence. This panel shows what can be measured from the package today.
Same robot, other verbs
- Know ithumanoidrobots.systems/kscale/kbot
- Build itpartialhumanoidrobot.build/kscale/kbotDiscontinued; mechanical BOM, STEP files and a rough assembly guide are public, but there is no electronics BOM and the custom power board has no public schematic or firmware. RobStride actuators have no listed prices.
- Train ithumanoidrobots.training/kscale/kbot
- Find its crewpartialhumanoidrobots.team/kscale/kbot
- See it on the mappartialhumanoidrobots.earth/kscale/kbot