← Design notebook

BUILT BY AUTONOMOUS SYSTEMS · WORK IN PROGRESS

RobStride open-source projects and printed-leg practice

Checked 2026-10-26. This note asks what working RobStride-class robots do about the problems our first printed leg fails on:

The reference point is Gyropup: 22 kg, two RS-04 (or RS-03) per leg on the hip axis, a push-rod knee, about 48 N·m peak per leg motor and about 600 N peak wheel load.

Labels used below:

How the RobStride page was read. https://robstride.com/open-source is a JavaScript single-page app; the HTML has no content.


1. Lessons for our printed leg

  1. Successful printed thighs are big boxes, not slim beams.

    • LeRobot Humanoid is RobStride, PLA+, Bambu H2D, about 12.7 kg in its MJCF (biped, no arms). Its thigh is a two-piece clamshell measured from the published 3MF:
      • main shell 118.3 × 60 × 390.6 mm, cover 118.3 × 31 × 227 mm;
      • so the envelope at the motor end is about 118 × 91 mm, with the RS-03 bodies inside it.
    • With the same 4 mm wall, that envelope has about 10–15× the second moment of area of our 52 × 36 box (our calc: 2.2–3.3 × 10⁶ mm⁴ vs 0.22 × 10⁶ mm⁴). Their robot is roughly half our mass.
    • Their shin is 72.2 × 2 × 24 mm (about 72 × 48) by 280 mm.
    • Action: let the thigh section grow toward the motor diameter near the hip, and taper it toward the knee. Do not add wall thickness to a 52 × 36 tube.
    • Sources: printing guide, thigh 3MF, MJCF.
  2. Support every big joint on both sides (clevis/yoke), with a small bearing on the far side, not a large bearing around the output. This is the dominant pattern:

    • K-Bot (RS-04 hip pitch and knee):
      • a "Drive" plate on the output flange and an "Idle" plate on a 6805 (25 × 37 × 7) bearing;
      • the bearing sits on a stub bolted to the motor's back face with countersunk M4s (6 per knee, 4 per hip). This is inferred from the BOM part names and fastener counts, not from a drawing;
      • the link straddles the motor.
    • LeRobot: the thigh is screwed to the RS-03 on one side and turns in a 15 × 21 × 4 bearing (retained by a printed "hat", 3 × M2.5) on the other.
    • Duke Humanoid V2: "actuator in a two-plate yoke", with a bearing retainer on every RS-03 output in the leg.
    • Upkie: offers printed "hip support" and "knee support" parts with a 40 × 52 × 7 bearing "to reduce play and protect knee actuators from radial load".
    • Action: replace the 61812 motor plate with a straddle mount (output flange + a small bearing on the motor's back face, RS-04 has 10 × M4 on both faces). Where layout allows, do the same for the knee pin. Our mech-review item A3 already flags the single-sided knee pin.
    • Sources: K-Bot BOM (parts KD-D-157F, 163, 190, 357F–359F, 403, 451F, 491F), LeRobot assembly guide, Duke V2 structure notes, Upkie parts.
  3. Use the whole RS-04 output pattern, and do not count on the pins in plastic.

    • K-Bot uses all 9 × M5 per RS-04 output:
      • hip: M5 × 12, 8.3 mm clamp, 6.5 mm thread in the motor;
      • knee: M5 × 20 through a 14.5 mm aluminium flange.
    • This also confirms 9 × M5 against Primo's mesh-derived "6 × Ø5" (unverified).
    • The RS-04's Ø6 pins stand only about 3 mm proud. At 48 N·m each pin bears on 6 × 3 mm at about 50 MPa (our calc; 124 MPa at 120 N·m). That is above the Z tensile strength of PA6-CF (48 MPa, fabrication.md). Clamp friction from the M5s has to carry the torque.
    • Action:
      • print the flange 15–20 mm thick;
      • put a bought steel ring or large washer under the M5 heads to spread the clamp load;
      • use the maximum thread engagement the manual allows ("screw depth should not exceed the casing thread depth", 6.5 mm per our drawing notes);
      • threadlock;
      • re-torque after the PA6-CF settles (anneal first, see 8).
    • Duke's first-article check found their RS-04 parts drawn with M4 where M5 was needed. Check the flange against the drawing, not a mesh.
    • Sources: K-Bot BOM, RS-04 manual §1.1, Duke V2 structure and manufacturing, Primo bonegen.
  4. Mount the motor housing by its face bolt circle, from both faces if possible. Never clamp it radially in a print.

    • K-Bot bolts RS-04 housings with 10 front M4 plus 4 rear M4 at the knee.
    • LeRobot screws each thigh RS-03 "four on both sides" (8 × M4 × 10).
    • Primo (design-only, PA-CF) explains why radial clamping is wrong in print: a printed clamp insulates the motor, creeps under preload, and RobStride housings are not specified for radial clamping. "Face screws with metal inserts remain the right joint for a printed robot."
    • Sources: Primo actuator-integration, LeRobot assembly guide.
  5. A printed mount derates the motor thermally.

    • The RS-04 manual rates 40 N·m continuous only on a 345 × 345 mm aluminium heat sink, and 35 N·m on 220 × 200 mm. Winding protection uses a 145 °C limit.
    • A PA6-CF mount is not a heat sink, so the continuous knee and hip torque while crouched-balancing will be lower than 40 N·m (amount unknown; measure it).
    • Primo's simulation puts RS-04 legs above rated torque (about 45 vs 40 N·m) while walking at about 45 kg.
    • Action: log the motor temperature fields during long crouch tests. Consider a bought aluminium plate or the chassis as a heat path.
    • Sources: RS-04 manual §1.2–1.3, Primo AI memory.
  6. Print the long links flat, so bending runs along the layers. Go solid at joints.

    • LeRobot prints the thigh on its side, not its front face. Settings for thigh and shin: eSUN PLA+, 0.4 nozzle, 0.2 mm layers, 4 walls, 35 % gyroid, 6 top / 4 bottom layers. Hip parts use 100 % infill (zig-zag, 0.16 mm).
    • reBot (Seeed) prints load-bearing parts in ABS at 30–80 % infill.
    • Primo printed its ankle gimbal in PPA-CF with 1 wall and 90 % grid. Its rule: minimum member at least 5 mm, main load paths in the layer plane, or MJF/SLS.
    • Sources: LeRobot 3MF profiles, reBot B601-RS BOM, Primo CAD README.
  7. Do not press-fit bearings hard into prints. Use a light fit plus a screwed retaining cap.

    • LeRobot's builder cracked both tibia bearing seats tapping in 15 × 21 × 4 bearings ("on my first attempt I cracked both slots"). The repair was melting the plastic back with a soldering iron.
    • LeRobot retains its thigh bearing with a printed hat and 3 × M2.5.
    • Primo: "no heavy interference in the printed PA-CF (it cracks the layers…)". Print, test the fit, adjust the diameter, use Loctite 603/638 as backup.
    • K-Bot's tolerances are for machined aluminium: 6805 housing 36.94–36.98 interference at hip and shoulder, 37.03–37.10 clearance at the knee. Do not copy them into plastic.
    • Sources: LeRobot assembly guide, K-Bot bearing bores PDF, Primo AI memory.
  8. Put metal under every loaded screw.

    • LeRobot's lower thigh screw holes were "pretty loose"; the builder added M4 heat-set inserts.
    • Berkeley Humanoid Lite adds "through-screws and embedded brass hex stands" to "prevent failures along layer boundaries".
    • RobStride's own EDULITE A3 arm uses brass inserts (M2–M4) throughout.
    • reBot warns that screws loosen in service and asks builders to threadlock every joint screw. Duke used Loctite 222; Primo uses Loctite 243 on nuts.
    • From our fabrication notes: un-annealed PA6-CF bolted joints crept daily, and annealing fixed it.
    • Sources: BHL paper, EDULITE SOP, reBot BOM.
  9. Pins: use shoulder screws as axles, and make the clamp chain metal-to-metal.

    • LeRobot uses ISO 7379 shoulder screws Ø5 (Norelem 07534-05X40 / -05X20, 12.9) and Norelem 27628 rod ends.
    • Primo's rule for pushrod pins: the Ø8 shoulder must bottom out so the nut preloads on metal; the printed centre part is "only a spacer". Pins are Ø8 × M6 shoulder screws, M8 aluminium rod ends, Ø12 × M10 for the gimbal axes.
    • For slow oscillating pivots, Primo chose flanged igus plain bushings (radial in the bore, axial on the flange) over needle rollers, because needle rollers risk false brinelling.
    • K-Bot's ankle linkage uses 8 mm clevis pins with circlips in oil-free flanged bushings (Misumi MDZF-8-8, 15 mm bushes at the pivot).
    • Sources: LeRobot BOM, Primo AI memory, K-Bot BOM.
  10. Hard stops must not load the printed link or the motor flange.

    • K-Bot's hip-yoke and ankle stops are separate 304 / 4340 steel parts bolted on.
    • LeRobot's printed hip-yaw stop tab is meant to break off ("they also break off if too much force applied").
    • Action: a printed stop either has a bought steel insert or is a cheap, replaceable fuse part.
    • Sources: K-Bot BOM, LeRobot assembly guide.
  11. Use torque limits well below the motor peak.

    • K-Bot's deployed soft limits are 70 % of peak: RS-04 84 of 120 N·m, RS-03 42 of 60, RS-02 11.9 of 17, RS-00 9.8 of 14.
    • The RS-04 manual says not to change the torque limit, protection temperature or over-temperature time.
    • Our 48 N·m working peak on an RS-04 is about 40 % of its peak, which leaves good headroom. On an RS-03 it is 80 % of the 60 N·m peak.
    • Sources: kinfer-kbot constants.rs, RS-04 manual.
  12. Nobody publishes measured link loads, and no open wheel-legged robot on RS-03/RS-04 was found.

    • None of the projects publish strain or load measurements on printed links. Duke's design rule asked for SF ≥ 3, but the check column is empty for all 32 CNC parts.
    • Primo plans to log joint wrenches from its walking policy (99.5th percentile plus a fall case) and generate bones from them. That is the method our FEA load cases should follow, especially the fall, landing and kerb cases (mech-review A5).
    • We are the first we know of to put a 22 kg wheel-leg on RS-04s with printed structure. Plan a sacrificial test leg.
    • Sources: Primo bonegen plan, Duke V2 notes.

Load levels compared

The motor-peak figures are vendor peaks. "Per kg" is that peak divided by robot mass, a crude severity index (our calc).

Robot Mass Leg big joints Peak N·m Peak / robot kg Structure Status
Gyropup 22 kg 2 × RS-04 (or RS-03) per leg, push-rod knee 48 used (120 / 60 peak) 2.2 (used) PA6-CF / PETG printed design
LeRobot Humanoid ≈12.7 kg (MJCF, no arms) 2 × RS-03 in each thigh (inferred: hip pitch + knee; knee via printed rods); RS-02 hip yaw; RS-05 ankles 60 4.7 PLA+ printed as-built (photos)
K-Bot ≈36.7 kg (MJCF); ≈30–34 kg quoted elsewhere RS-04 hip pitch, knee; RS-03 hip roll/yaw; RS-02 ankle 120 (soft limit 84) 3.3 (2.3 soft) CNC 6061-T6 as-built (dev kits)
Duke Humanoid V2 36 kg with arms (as built) RS-04 knee; RS-03 hips, ankle 1; RS-06 ankle 2 120 3.3 CNC aluminium + printed brackets as-built
Berkeley Humanoid Lite 16 kg, 0.8 m own printed cycloidal 6512 / 5010 actuators about 20 tested (ramp to 20 N·m in the stiffness test) ≈1.3 PLA, aluminium-extrusion torso as-built
Primo ≈45 kg est. RS-04 hips + knees, RS-06 ankles via pushrods 120 2.7 PA-CF / PPA-CF printed design-only

The LeRobot leg is the closest printed analogue: RobStride, printed, Bambu, push-rod knee, two motors on the thigh. But it carries about 60 % of our mass per leg, and it is not a wheel-leg. None of these robots has our wheel-side load cases.


2. Everything on robstride.com/open-source

From the site bundle (OpenSourceHome, 8 built-in entries; API extras not available, see above).

# Name URL Category RobStride motors Licence (repo)
1 EDULITE_A3 (EL-A3 arm) https://github.com/RobStride/EDULITE_A3 robot RS-00 × 3 (L1–L3), EL05 / RS-05 × 4 (L4–L7, gripper) MIT
2 reBot-DevArm (Seeed) https://github.com/Seeed-Projects/reBot-DevArm robot B601-RS: RS-00 × 4, RS-06 × 3 (B601-DM uses Damiao) hardware CERN-OHL-W-2.0, firmware Apache-2.0
3 K-Bot (K-Scale) https://github.com/kscalelabs/kbot robot RS-04 × 4, RS-03 × 8, RS-02 × 6, RS-00 × 2 hardware CERN-OHL-S; software: LICENSE file is MIT but README/docs say GPL v3 (open issue #2)
4 lerobot-humanoid (Virgile Batto, ex-Hugging Face) https://github.com/Virgileboat/lerobot-humanoid robot RS-00 × 2, RS-02 × 2, RS-03 × 4, RS-05 × 4 (biped platform) umbrella: none; sub-repos (hardware, model, design, runtime) Apache-2.0
5 MotorStudio https://github.com/RobStride/MotorStudio toolchain all (config/tuning tool) none stated
6 Python_Sample https://github.com/RobStride/Python_Sample toolchain RS-00 … RS-06 MIT
7 robstride_ros_sample https://github.com/RobStride/robstride_ros_sample toolchain RS-02 (ROS) none stated (reposted from MuShibo)
8 RobStrideSPC https://github.com/RobStride/RobStrideSPC toolchain RS series, STM32 reference none stated

Also linked on the site:

Other repos on the RobStride GitHub account, not on the page:


3. Per-project notes

3.1 LeRobot Humanoid (on the page): the closest printed analogue

Repos: https://github.com/Virgileboat/lerobot-humanoid (umbrella) and -hardware, -model, -design, -runtime, -identification under the same owner. Public Onshape: https://cad.onshape.com/documents/fb645318a27646d1d8840be6/w/d1cae8805fb652b4d1614997/e/804a1da43f242001a05129b4.

What it is. A low-cost biped humanoid (under USD 5k target; about USD 2.6k for the biped platform BOM). It is "3D-printed first", in PLA+ on a Bambu H2D.

Construction:

Failures and fixes reported (assembly-guide comments by builder Paul Ruiz):

Electronics:

Licence: Apache-2.0 on the hardware repo (STL, docs), model, design and runtime. The umbrella has no licence file. Copying is allowed with attribution and a NOTICE.

3.2 K-Bot (K-Scale Labs; on the page)

Repo https://github.com/kscalelabs/kbot. Docs source https://github.com/kscalelabs/docs: docs/robots/k-bot/, with BOM xlsx, bearing-bore PDF and a 93-page assembly PDF. docs.kscale.dev did not resolve on 2026-10-26 (see also kbot issue #4).

Mass and motors:

Structure (BOM). Every structural part is CNC 6061-T6. Hard stops are 304 or 4340 steel. The head and battery are MJF nylon/ABS mouldings. It is not printed, but the joint architecture transfers:

Lessons:

Licence: hardware CERN-OHL-S (strongly reciprocal: a derived hardware design must be released under the same licence). Software is ambiguous (MIT file vs GPL-3 README). kbot-models, kinfer-kbot and kscalelabs/robstride are MIT. Do not copy K-Bot CAD into our private repo. Dimensions and ideas in this note are fine.

3.3 EDULITE A3 (RobStride's own reference design; on the page)

https://github.com/RobStride/EDULITE_A3 (MIT); hardware in hardware/ via Git LFS: STEP, 3MF, wiring, PCB, assembly SOP.

3.4 reBot DevArm B601-RS (Seeed; on the page)

https://github.com/Seeed-Projects/reBot-DevArm, BOM at hardware/reBot_B601_RS/README.md.

3.5 Primo (not on the page): printed PA-CF, RS-04 legs, CC0

https://github.com/AlessioPagliai/primo (earlier name umanoide). Design-only, not built, STL not print-validated.

3.6 Duke Humanoid V2 / "Fully Open Humanoid" (not on the page)

3.7 Berkeley Humanoid Lite (not RobStride; printed reference)

Paper: https://arxiv.org/abs/2504.17249 (RSS 2025). Code MIT: https://github.com/HybridRobotics/berkeley-humanoid-lite. CAD/assets CC BY-SA 4.0: https://github.com/HybridRobotics/berkeley-humanoid-lite-assets. Docs: https://berkeley-humanoid-lite.gitbook.io/docs.

3.8 Upkie (not RobStride; open printed wheel-biped)

https://github.com/upkie/upkie and https://github.com/upkie/upkie_parts (Apache-2.0, FreeCAD + STL).

3.9 Other wheel-legged and small projects (low relevance)


4. RobStride resources useful to us

Product_Information (https://github.com/RobStride/Product_Information, last commit 384cc56 on 2026-10-16, no licence file). Do not commit their PDFs or STEP to our repo; link them, as references/vendor/ with SOURCE.txt already does.

Per model, under Product Literature/CAN2.0/<model>/ and CANFD/<model>-CANFD/:

Spec books: 灵足时代RS系列产品规格介绍(2026.010.09).pdf and the EL series book.

Accessories with manuals and STEP:

RS-04 manual, points that matter for structure:

Discharge module (dischargeModule/Discharge Module User Manual V1.0.pdf):

Toolchain:

Not found:


5. Licences: what we may copy

Source Hardware / CAD Code Use in our private repo
RobStride Product_Information, MotorStudio, RobStrideSPC, robstride_ros_sample no licence (all rights reserved) no licence link and cite only; dimensions and facts fine
RobStride Python_Sample, EDULITE_A3, EL_A3_* MIT MIT copy with the MIT notice
reBot DevArm CERN-OHL-W-2.0 Apache-2.0 ideas/dimensions fine; copied CAD stays OHL-W, and modified files must be released if distributed
K-Bot CERN-OHL-S MIT file vs GPL-3 README (unresolved) ideas/dimensions only; do not copy CAD
kbot-models, kinfer-kbot, kscalelabs/robstride – MIT copy with notice
LeRobot Humanoid sub-repos Apache-2.0 Apache-2.0 copy with attribution + NOTICE
Primo CC0 CC0 (Isaac Lab code BSD-3) free
Berkeley Humanoid Lite CC BY-SA 4.0 MIT code fine; CAD only if we accept share-alike
Duke Humanoid V2 Apache-2.0 (per CITATION.cff) Apache-2.0 copy with attribution
Fully Open Humanoid site MIT / CC BY 4.0 (stated on site, no licence file) – attribution
Upkie parts Apache-2.0 Apache-2.0 copy with attribution

This note copies no CAD or code. It quotes dimensions and settings with links.