{"$schema":"nativecad-dfm-pack/1","id":"robotics","title":"Robotics -- shafts, bearings, gears, belts, motors and linkages","sector":"robotics","version":"2026-09-03","summary":"Shaft and bearing standards, gear and GT2/HTD belt geometry, lead-screw and coupling sizes, NEMA/servo/BLDC motor mount patterns, linkage fits, 3D-printed structural rules, and the tests a robot's moving parts are held to.","aliases":["robot","robot arm","actuator","shaft","bearing","gear","pulley","gt2","stepper","nema 17","nema 23","servo","lead screw","coupling","linkage","gripper","motion"],"crossSector":false,"size":"standard","sources":[{"id":"din-6885","title":"DIN 6885-1:1968 Drive type fastenings without taper action -- Parallel keys, keyways","url":"https://www.din.de/en","accessed":"2026-09-03"},{"id":"iso-286","title":"ISO 286-2:2010 Geometrical product specifications (GPS) -- ISO code system for tolerances on linear sizes -- Part 2: Tables of tolerance classes","url":"https://www.iso.org/standard/45469.html","accessed":"2026-09-03"},{"id":"skf-bearing-catalogue","title":"SKF Rolling Bearings Catalogue (dimension tables, shoulder diameters, fit recommendations)","url":"https://www.skf.com/group/products/rolling-bearings","accessed":"2026-09-03"},{"id":"gates-gt2-design-manual","title":"Gates PowerGrip GT2 Belt Drive Design Manual","url":"https://www.gates.com/content/dam/gates/master-portfolio/master-brand-en/pdfs/powergrip-gt2-design-manual.pdf","accessed":"2026-09-03"},{"id":"khk-gear-tech-ref","title":"KHK Stock Gears -- Gear Technical Reference (module, pressure angle, backlash, undercut)","url":"https://khkgears.net/new/gear_knowledge.html","accessed":"2026-09-03"},{"id":"iso-9283","title":"ISO 9283:1998 Manipulating industrial robots -- Performance criteria and related test methods","url":"https://www.iso.org/standard/22244.html","accessed":"2026-09-03"},{"id":"iso-10218-1","title":"ISO 10218-1:2011 Robots and robotic devices -- Safety requirements for industrial robots -- Part 1: Robots","url":"https://www.iso.org/standard/51330.html","accessed":"2026-09-03"},{"id":"nema-ics-16","title":"NEMA ICS 16-2001 (R2016) Motion/Position Control Motors, Controls and Feedback Devices","url":"https://www.nema.org/standards/view/motion-position-control-motors-controls-and-feedback-devices","accessed":"2026-09-03"},{"id":"stepperonline-nema-mech","title":"StepperOnline NEMA 14/17/23/34 hybrid stepper motor mechanical drawings (frame, bolt pattern, pilot, shaft)","url":"https://www.omc-stepperonline.com/","accessed":"2026-09-03"},{"id":"towerpro-sg90","title":"TowerPro SG90 9g Micro Servo datasheet (case and ear dimensions)","url":"https://www.towerpro.com.tw/product/sg90-7/","accessed":"2026-09-03"},{"id":"mg996r-datasheet","title":"MG996R High-Torque Metal-Gear Servo datasheet (case and ear dimensions)","url":"https://www.friendlywire.com/projects/ne555-servo-tester/MG996R-datasheet.pdf","accessed":"2026-09-03"},{"id":"robotis-dynamixel-xl430","title":"Robotis Dynamixel XL430-W250-T specification (frame and mounting-hole pattern)","url":"https://emanual.robotis.com/docs/en/dxl/x/xl430-w250/","accessed":"2026-09-03"},{"id":"iso-724-trapezoidal","title":"ISO 724:1993 ISO general purpose metric trapezoidal screw threads -- Basic dimensions","url":"https://www.iso.org/standard/4759.html","accessed":"2026-09-03"},{"id":"asme-b1-5-acme","title":"ASME B1.5-1997 (R2013) Acme Screw Threads","url":"https://www.asme.org/codes-standards/find-codes-standards/b1-5-acme-screw-threads","accessed":"2026-09-03"},{"id":"matweb-materials","title":"MatWeb Material Property Data (shafting steels, engineering plastics)","url":"https://www.matweb.com/","accessed":"2026-09-03"}],"entries":[{"id":"shaft-standard-diameters","kind":"dimension","tier":1,"title":"Standard robotics shaft diameters (h6/h7)","summary":"Common robot shaft/axle diameters are 3, 4, 5, 6, 8, 10, 12, 15 and 20 mm, turned to h6 (precision bearing/pulley register) or h7 (looser register, e.g. printed hubs) per ISO 286.","applies":["shaft","axle","gear shaft","pulley shaft"],"value":{"options":[3,4,5,6,8,10,12,15,20],"unit":"mm"},"basis":"ISO 286 shaft tolerance classes: h6 for a bearing-seat register, h7 where the mating bore is coarser (3D-printed hub, clamp coupling)","sources":["iso-286"],"tags":["shaft","tolerance","h6","h7"]},{"id":"shaft-keyway-din6885","kind":"fastener","tier":1,"title":"Parallel keyway width/height/depth by shaft diameter (DIN 6885)","summary":"DIN 6885-1 parallel keys by shaft dia: 6->2x2 (t1 1.2), 8->2x2 (t1 1.2), 10->3x3 (t1 1.8), 12->4x4 (t1 2.5), 15->5x5 (t1 3.0), 20->6x6 (t1 3.5) mm -- b x h key cross-section, t1 the shaft-side depth.","applies":["shaft","keyway","key","coupling","pulley"],"value":{"table":[{"shaftDia":6,"b":2,"h":2,"t1":1.2},{"shaftDia":8,"b":2,"h":2,"t1":1.2},{"shaftDia":10,"b":3,"h":3,"t1":1.8},{"shaftDia":12,"b":4,"h":4,"t1":2.5},{"shaftDia":15,"b":5,"h":5,"t1":3},{"shaftDia":20,"b":6,"h":6,"t1":3.5}],"unit":"mm"},"basis":"DIN 6885-1 form B square-ended parallel key table, keyed by shaft diameter range","sources":["din-6885"],"tags":["shaft","keyway","din-6885","key"]},{"id":"shaft-dflat-setscrew-depth","kind":"feature","tier":1,"title":"D-flat depth for set-screw shaft retention","summary":"A milled D-flat for a set screw (common on 5 mm NEMA 17 and small gearmotor shafts) is cut 0.5-1.0 mm deep, centred on the shaft so the set screw seats flat rather than point-loading round stock.","applies":["shaft","stepper shaft","set screw","coupling"],"value":{"min":0.5,"max":1,"typical":0.7,"unit":"mm"},"basis":"Common hobby-drivetrain practice for stepper and gearmotor output shafts (StepperOnline mechanical drawings show a flat on the 5mm/6.35mm shaft)","sources":["stepperonline-nema-mech"],"tags":["shaft","d-flat","set-screw"]},{"id":"bearing-common-sizes-table","kind":"dimension","tier":1,"title":"Common robotics deep-groove ball bearing sizes (bore x OD x width)","summary":"Bearings used across robot joints: 608 8x22x7, 6000 10x26x8, 6001 12x28x8, 6002 15x32x9, 6004 20x42x12, 623 3x10x4, 625 5x16x5, 626 6x19x6, 688 8x16x5, MR105 5x10x4 (all mm).","applies":["bearing","joint","pulley bearing"],"value":{"table":[{"designation":"608","bore":8,"od":22,"width":7},{"designation":"6000","bore":10,"od":26,"width":8},{"designation":"6001","bore":12,"od":28,"width":8},{"designation":"6002","bore":15,"od":32,"width":9},{"designation":"6004","bore":20,"od":42,"width":12},{"designation":"623","bore":3,"od":10,"width":4},{"designation":"625","bore":5,"od":16,"width":5},{"designation":"626","bore":6,"od":19,"width":6},{"designation":"688","bore":8,"od":16,"width":5},{"designation":"MR105","bore":5,"od":10,"width":4}],"unit":"mm"},"basis":"SKF Rolling Bearings Catalogue dimension tables for the 60x/62x/68x deep-groove series and MR miniature series","sources":["skf-bearing-catalogue"],"tags":["bearing","608","6000","6001","6002","6004","dimension"]},{"id":"bearing-housing-shaft-fits","kind":"tolerance","tier":1,"title":"Bearing housing bore and shaft fit classes","summary":"House the outer ring in an H7 bore. Fit the shaft: k6 where the inner ring rotates with the shaft (a light interference press, the normal robot-joint case), h6 where the shaft is stationary and the outer ring/housing rotates (a sliding fit).","applies":["bearing","housing","shaft"],"value":{"options":["H7 housing / k6 shaft (rotating inner ring)","H7 housing / h6 shaft (rotating outer ring)"]},"basis":"SKF fit-selection guidance (rotating-inner-ring load case) applied to ISO 286 shaft/hole tolerance classes","sources":["skf-bearing-catalogue","iso-286"],"tags":["bearing","fit","h7","k6","h6"]},{"id":"gear-module-pressure-angle","kind":"dimension","tier":1,"title":"Gear module and pressure angle for small robot gearing","summary":"Robot gearing is cut to module 0.5, 1, 1.5 or 2 mm at a 20deg pressure angle -- the standard KHK/AGMA rack, so off-the-shelf gears and hobs interchange across vendors.","applies":["gear","gear train","gearbox"],"value":{"options":[0.5,1,1.5,2],"unit":"mm"},"basis":"KHK gear technical reference: standard module series and the 20deg full-depth involute rack","sources":["khk-gear-tech-ref"],"tags":["gear","module","pressure-angle"]},{"id":"gear-min-teeth-undercut","kind":"rule","tier":1,"title":"Minimum tooth count before undercut (20deg pressure angle)","summary":"A 20deg pressure-angle involute gear needs >= 17 teeth to avoid root undercut from rack generation; a pinion below 17 teeth loses root strength unless profile-shifted.","applies":["gear","pinion"],"value":{"min":17,"unit":"count"},"basis":"KHK gear technical reference: undercut limit z_min = 2/sin^2(pressure angle) ~= 17.1 for 20deg","sources":["khk-gear-tech-ref"],"tags":["gear","undercut","min-teeth"]},{"id":"gear-center-distance-formula","kind":"rule","tier":1,"title":"Spur gear centre distance","summary":"Two spur gears of the same module mesh at centre distance a = m(z1+z2)/2 -- module times the summed tooth counts, halved; get the module or a tooth count wrong and the mesh either binds or runs with excess backlash.","applies":["gear","gear train"],"value":{"value":"a = m*(z1+z2)/2","unit":"mm"},"basis":"Standard involute spur-gear meshing geometry (KHK gear technical reference)","sources":["khk-gear-tech-ref"],"tags":["gear","center-distance","formula"]},{"id":"gt2-pulley-pitch-diameter","kind":"dimension","tier":1,"title":"GT2 pulley pitch diameter from tooth count","summary":"A GT2 (2 mm pitch) pulley's pitch diameter is PD = z*2/pi mm -- a 20-tooth pulley pitches at 12.73 mm, a 16-tooth at 10.19 mm; the belt centreline sits on this circle, not the pulley OD.","applies":["gt2","pulley","timing belt"],"value":{"value":"PD = z*2/pi","unit":"mm"},"basis":"Gates PowerGrip GT2 design manual: pitch diameter = teeth x pitch / pi","sources":["gates-gt2-design-manual"],"tags":["gt2","pulley","pitch-diameter"]},{"id":"gt2-belt-widths","kind":"dimension","tier":1,"title":"GT2 belt widths","summary":"GT2 timing belt comes 6 mm or 9 mm wide for light robotics use; match the pulley's flange width to the belt or it walks off the pulley under any side load.","applies":["gt2","belt","timing belt"],"value":{"options":[6,9],"unit":"mm"},"basis":"Gates PowerGrip GT2 design manual standard belt width series","sources":["gates-gt2-design-manual"],"tags":["gt2","belt","width"]},{"id":"nema17-mount-pattern","kind":"dimension","tier":1,"title":"NEMA 17 stepper mounting pattern","summary":"NEMA 17 motors present a 42.3 mm square face, four M3 holes on a 31 mm bolt square, a dia22 mm central pilot boss, and (usually) a dia5 mm output shaft.","applies":["nema 17","stepper","motor mount"],"value":{"table":[{"field":"faceSquare","value":42.3},{"field":"boltSquare","value":31},{"field":"boltSize","value":"M3"},{"field":"pilotDia","value":22},{"field":"shaftDia","value":5}],"unit":"mm"},"basis":"NEMA ICS 16 frame-size convention as realised in NEMA 17 stepper mechanical drawings (StepperOnline)","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["nema17","stepper","mount","bolt-pattern"]},{"id":"nema23-mount-pattern","kind":"dimension","tier":1,"title":"NEMA 23 stepper mounting pattern","summary":"NEMA 23 motors present a 56.4 mm square face, four bolts on a 47.14 mm square, a dia38.1 mm central pilot boss, and a dia6.35 mm (1/4 in) output shaft.","applies":["nema 23","stepper","motor mount"],"value":{"table":[{"field":"faceSquare","value":56.4},{"field":"boltSquare","value":47.14},{"field":"pilotDia","value":38.1},{"field":"shaftDia","value":6.35}],"unit":"mm"},"basis":"NEMA ICS 16 frame-size convention as realised in NEMA 23 stepper mechanical drawings (StepperOnline)","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["nema23","stepper","mount","bolt-pattern"]},{"id":"leadscrew-tr8-lead-pitch","kind":"dimension","tier":1,"title":"Tr8 trapezoidal lead-screw pitch and lead options","summary":"An 8 mm trapezoidal lead screw is cut Tr8x2 (single-start, 2 mm lead = 2 mm pitch, self-locking) or Tr8x8 (4-start, 8 mm lead, 2 mm pitch, fast but not self-locking) -- same thread form, very different travel per revolution.","applies":["lead screw","tr8","linear stage"],"value":{"table":[{"designation":"Tr8x2","pitch":2,"lead":2,"starts":1},{"designation":"Tr8x8","pitch":2,"lead":8,"starts":4}],"unit":"mm"},"basis":"ISO 724 metric trapezoidal thread basic dimensions, applied to the Tr8 hobby lead-screw sizes sold with these two lead options","sources":["iso-724-trapezoidal"],"tags":["lead-screw","tr8","pitch","lead"]},{"id":"coupling-bore-sizes","kind":"dimension","tier":1,"title":"Flexible shaft coupling bore combinations","summary":"Motor-to-leadscrew couplings for hobby robotics are stocked as 5x8 mm and 6.35x8 mm bore pairs (NEMA 17's 5 mm or a 1/4 in shaft into an 8 mm lead screw), body OD 19-25 mm.","applies":["coupling","lead screw","nema 17"],"value":{"options":["5x8","6.35x8"],"unit":"mm"},"basis":"Common jaw/beam coupling catalogue bore pairings for stepper-to-leadscrew drivetrains","sources":["stepperonline-nema-mech"],"tags":["coupling","bore","nema17","leadscrew"]},{"id":"tolerance-bearing-bore-position","kind":"tolerance","tier":1,"title":"Position tolerance for a machined bearing bore","summary":"Hold a CNC-machined bearing bore or shaft register to +-0.05 mm position; the same feature on an FDM print only holds +-0.2 mm, so a press-fit bearing pocket sized for CNC will rattle or crack a printed part.","applies":["bearing","bore","tolerance"],"value":{"options":[{"process":"CNC","tolerance":0.05},{"process":"FDM","tolerance":0.2}],"unit":"mm"},"basis":"ISO 286-class positional capability difference between 3-axis CNC and FDM printing","sources":["iso-286"],"tags":["tolerance","bearing","position","cnc","fdm"]},{"id":"shaft-material-steel","kind":"material","tier":1,"title":"Shaft steels: 1045 and 4140","summary":"Turned robot shafts and axles use 1045 (cold-drawn, good machinability, adequate wear resistance unshielded) or 4140 (alloy steel, through-hardenable, used for higher-load or ground shafts); both take a keyway and press-fit bearings without distortion.","applies":["shaft","axle"],"value":{"table":[{"material":"1045 (normalized)","yield_MPa":375,"hardness_HB":170},{"material":"4140 (Q&T)","yield_MPa":655,"hardness_HB":197}]},"basis":"MatWeb property data for AISI 1045 and 4140 bar stock, the two steels most robot shafting is cut from","sources":["matweb-materials"],"tags":["material","steel","1045","4140","shaft"]},{"id":"gear-material-pom","kind":"material","tier":1,"title":"POM (acetal) for machined and printed gears","summary":"POM (Delrin/acetal) is the default plastic gear material: low friction against itself and steel, dimensionally stable, and machines or injection-molds to a clean tooth profile -- density 1.41 g/cm3, tensile ~65 MPa.","applies":["gear","pulley"],"value":{"table":[{"property":"density","value":1.41,"unit":"g/cm3"},{"property":"tensile strength","value":65,"unit":"MPa"}]},"basis":"MatWeb POM copolymer property data, the standard plastic gear/bushing material","sources":["matweb-materials"],"tags":["material","pom","acetal","gear"]},{"id":"print-material-pa12-cfpa","kind":"material","tier":1,"title":"3D-printed structural robot parts: PA12 and CF-PA","summary":"Load-bearing printed brackets, arms and gear housings favour PA12 (SLS nylon, tough, low warp) or carbon-fibre-reinforced PA (CF-PA, higher stiffness, lower creep) over PLA/PETG when the part carries a running joint load.","applies":["3d printed part","bracket","arm","gear housing"],"value":{"table":[{"material":"PA12 (SLS)","tensile_MPa":48,"flex_modulus_MPa":1500},{"material":"CF-PA","tensile_MPa":90,"flex_modulus_MPa":6000}]},"basis":"MatWeb PA12 (SLS) and CF-filled PA property data versus unfilled FDM plastics for load-bearing service","sources":["matweb-materials"],"tags":["material","pa12","cf-pa","3d-print"]},{"id":"shaft-circlip-groove","kind":"fastener","tier":2,"title":"External circlip groove for retaining a shaft feature","summary":"A retaining-ring groove axially locates a bearing, gear or pulley on a shaft; use this pack's shaft diameter with hardware/retaining-ring-groove-din-471 for the groove diameter and width, then cut it with cad_shaft_groove form \"rectangular\".","applies":["shaft","circlip","retaining ring","bearing"],"basis":"DIN 471 external retaining-ring groove series, referenced rather than restated","sources":["din-6885"],"tags":["shaft","circlip","groove","din-471"],"see":["hardware/retaining-ring-groove-din-471"],"value":{"options":["see hardware/retaining-ring-groove-din-471 for groove dia/width by shaft size"]}},{"id":"shaft-shoulder-fillet-vs-bearing-corner","kind":"rule","tier":2,"title":"Shaft shoulder fillet radius must clear the bearing's corner radius","summary":"A shoulder fillet blending into a bearing seat must be smaller than the bearing's maximum permissible chamfer r (SKF r_s,max, typically 0.3 mm for 608/6000/6001/6002-class bearings, 0.6 mm for 6004): a bigger fillet stops the bearing seating square against the shoulder.","applies":["shaft","shoulder","bearing seat"],"value":{"max":0.6,"typical":0.3,"unit":"mm"},"basis":"SKF catalogue r_s,max chamfer-dimension tables for the deep-groove series in this pack","sources":["skf-bearing-catalogue"],"tags":["shaft","fillet","shoulder","bearing"]},{"id":"shaft-shoulder-height","kind":"dimension","tier":2,"title":"Bearing shoulder height on a shaft","summary":"A shoulder that registers a bearing's inner ring should stand 2-4 mm radially proud of the bearing bore seat -- enough for a solid abutment face without fouling the bearing's inner-ring chamfer or an adjacent seal.","applies":["shaft","shoulder","bearing"],"value":{"min":2,"max":4,"typical":3,"unit":"mm"},"basis":"SKF minimum abutment (shoulder) diameter guidance for the small deep-groove sizes in this pack","sources":["skf-bearing-catalogue"],"tags":["shaft","shoulder","bearing","height"]},{"id":"shaft-center-drill-use","kind":"feature","tier":2,"title":"Centre-drilling a shaft for lathe support","summary":"A shaft turned between centres gets a DIN 332-1 form A / ISO 866 centre hole at each end: dia2-3 mm pilot for 8-20 mm shafts, 60deg protecting countersink, both cut in one pass by cad_shaft_center_drill.","applies":["shaft","lathe","turning"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"DIN 332-1 form A / ISO 866 centre-hole convention, cited in cad_shaft_center_drill's own default angle","sources":["din-6885"],"tags":["shaft","center-drill","lathe"]},{"id":"bearing-press-vs-slip-fit","kind":"rule","tier":2,"title":"Press the rotating ring, slip the stationary ring","summary":"Whichever ring rotates gets the tighter fit (a k6-class press, per bearing-housing-shaft-fits) so it cannot creep in its seat; the stationary ring gets an h6/H7-class slip fit so the bearing can be pulled without a press.","applies":["bearing","fit","assembly"],"value":{"options":["rotating ring: press/interference","stationary ring: slip/clearance"]},"basis":"SKF fit-selection rule of thumb: the rotating ring takes the interference, the stationary ring the clearance","sources":["skf-bearing-catalogue"],"tags":["bearing","press-fit","slip-fit"]},{"id":"gear-backlash","kind":"tolerance","tier":2,"title":"Spur gear backlash allowance","summary":"Design 0.05-0.1 mm of circumferential backlash into a printed or machined spur mesh -- enough to run without binding as centre distance and tooth thickness vary with tolerance and temperature, tight enough that a lead-screw-driven axis doesn't lose position on reversal.","applies":["gear","gear train"],"value":{"min":0.05,"max":0.1,"unit":"mm"},"basis":"KHK gear technical reference backlash allowance for small-module gearing","sources":["khk-gear-tech-ref"],"tags":["gear","backlash","tolerance"]},{"id":"gear-face-width","kind":"dimension","tier":2,"title":"Spur gear face width","summary":"Face width runs 6-12 times the module -- a module-1 gear is 6-12 mm wide; too narrow concentrates load and chips a tooth corner, too wide risks misalignment loading one edge of the tooth.","applies":["gear"],"value":{"min":6,"max":12,"unit":"ratio","note":"multiply by module (mm) for the face width in mm"},"basis":"KHK gear technical reference face-width-to-module ratio for spur gears","sources":["khk-gear-tech-ref"],"tags":["gear","face-width"]},{"id":"gear-3d-printed-module-min","kind":"rule","tier":2,"title":"Minimum module for a 3D-printed gear","summary":"Keep a printed spur gear to module >= 1 mm -- below that the tooth root falls inside typical FDM/SLS dimensional error and the profile prints rounded rather than involute, and it will strip in a few cycles under any real load.","applies":["gear","3d printed part"],"value":{"min":1,"unit":"mm"},"basis":"KHK gear technical reference minimum practical module against common FDM/SLS layer/beam resolution","sources":["khk-gear-tech-ref"],"tags":["gear","3d-print","module","min"]},{"id":"gt2-pulley-tooth-counts","kind":"dimension","tier":2,"title":"Common GT2 pulley tooth counts and outer diameters","summary":"Stock GT2 pulleys run 16T (PD 10.19, OD ~9.75 mm), 20T (PD 12.73, OD ~12.30 mm), 36T (PD 22.92, OD ~22.48 mm) and 60T (PD 38.20, OD ~37.75 mm) -- outer diameter sits ~0.4 mm under the pitch diameter for belt tooth clearance.","applies":["gt2","pulley"],"value":{"table":[{"teeth":16,"pitchDia":10.19,"outerDia":9.75},{"teeth":20,"pitchDia":12.73,"outerDia":12.3},{"teeth":36,"pitchDia":22.92,"outerDia":22.48},{"teeth":60,"pitchDia":38.2,"outerDia":37.75}],"unit":"mm"},"basis":"Gates PowerGrip GT2 design manual pulley OD tables, PD computed from z*2/pi","sources":["gates-gt2-design-manual"],"tags":["gt2","pulley","tooth-count","outer-diameter"]},{"id":"gt2-flange-and-tension","kind":"feature","tier":2,"title":"GT2 pulley flange and belt tension","summary":"Flange a GT2 pulley on at least one side (both, for an idler) to keep the belt tracking straight; tension the belt just enough to remove slack at mid-span without a measurable static sag -- an over-tight GT2 belt loads the motor/idler bearings for no accuracy gain.","applies":["gt2","pulley","belt"],"basis":"Gates PowerGrip GT2 design manual flange and installation-tension guidance","sources":["gates-gt2-design-manual"],"tags":["gt2","flange","tension"]},{"id":"htd-belt-pitches","kind":"dimension","tier":2,"title":"HTD belt pitch options (3M/5M)","summary":"Where a robot needs more torque capacity than GT2, HTD profile belts step up to 3 mm (3M) or 5 mm (5M) pitch -- deeper, rounder teeth than GT2's for higher load transfer at the same width.","applies":["htd","belt","timing belt"],"value":{"options":[3,5],"unit":"mm"},"basis":"Standard HTD tooth-profile pitch series, the step up from GT2 for higher-torque drives","sources":["gates-gt2-design-manual"],"tags":["htd","belt","pitch"]},{"id":"leadscrew-acme-half10","kind":"dimension","tier":2,"title":"ACME 1/2-10 lead screw","summary":"A 1/2-10 ACME lead screw is 0.5 in nominal major diameter at 10 threads per inch -- a 2.54 mm pitch, published in inches because the source (ASME B1.5) is an inch standard; don't silently convert and round.","applies":["lead screw","acme"],"value":{"value":"1/2-10","unit":"in","note":"10 TPI = 2.54mm pitch"},"basis":"ASME B1.5 Acme screw thread series, the 1/2-10 size common in linear-stage kits","sources":["asme-b1-5-acme"],"tags":["lead-screw","acme","inch"]},{"id":"leadscrew-nut-flange-pattern","kind":"dimension","tier":2,"title":"Tr8 lead-screw nut flange bolt pattern","summary":"A typical Tr8 hobby lead-screw nut ships with a 22 mm OD flange and 3x M3 through-holes on a 16 mm bolt circle -- check the actual nut before committing a bracket, vendors vary this by a millimetre or two.","applies":["lead screw","tr8","nut","bracket"],"value":{"table":[{"field":"flangeOD","value":22},{"field":"boltCircle","value":16},{"field":"boltCount","value":3},{"field":"boltSize","value":"M3"}],"unit":"mm"},"basis":"Common hobby Tr8 anti-backlash/standard nut flange dimensions (vendor convention, not itself in ISO 724)","sources":["iso-724-trapezoidal"],"tags":["lead-screw","nut","flange","bolt-pattern"]},{"id":"ballscrew-sfu-designation","kind":"dimension","tier":2,"title":"Ball screw SFU designation (SFU1204/SFU1605)","summary":"SFU1204 is a 12 mm screw shaft at 4 mm lead; SFU1605 is 16 mm at 5 mm lead -- the two-digit suffix is the lead in tenths of a millimetre, a vendor naming convention (THK/TBI-style) rather than an ISO callout.","applies":["ball screw","lead screw","linear stage"],"value":{"table":[{"designation":"SFU1204","shaftDia":12,"lead":4},{"designation":"SFU1605","shaftDia":16,"lead":5}],"unit":"mm"},"basis":"Common ball-screw catalogue nomenclature (SFU-prefixed rolled ball screws) used across hobby and light-industrial linear stages","sources":["iso-724-trapezoidal"],"tags":["ball-screw","sfu","lead-screw"]},{"id":"coupling-od-length","kind":"dimension","tier":2,"title":"Flexible coupling body size","summary":"Motor-to-screw flexible couplings for the bores in this pack run 19-25 mm body OD and 25 mm length -- big enough to clamp both shafts with set screws, short enough to fit a NEMA 17 gantry's typical shaft-to-bearing gap.","applies":["coupling"],"value":{"min":19,"max":25,"unit":"mm"},"basis":"Common jaw/beam coupling catalogue body dimensions paired with the 5x8/6.35x8 bore combinations","sources":["stepperonline-nema-mech"],"tags":["coupling","dimension"]},{"id":"nema-14-34-frames","kind":"dimension","tier":2,"title":"NEMA 14 and NEMA 34 mounting frames","summary":"NEMA 14 (small, light arms/grippers): 35.2 mm face, 26 mm bolt square, dia22 mm pilot, dia5 mm shaft. NEMA 34 (heavy base joints): 86 mm face, 69.6 mm bolt square, dia73 mm pilot, dia12.7 mm (1/2 in) shaft.","applies":["nema 14","nema 34","stepper","motor mount"],"value":{"table":[{"frame":"NEMA14","faceSquare":35.2,"boltSquare":26,"pilotDia":22,"shaftDia":5},{"frame":"NEMA34","faceSquare":86,"boltSquare":69.6,"pilotDia":73,"shaftDia":12.7}],"unit":"mm"},"basis":"NEMA ICS 16 frame-size convention realised in NEMA 14/34 stepper mechanical drawings","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["nema14","nema34","stepper","mount"]},{"id":"servo-sg90-dims","kind":"dimension","tier":2,"title":"SG90 micro servo case and mounting-ear dimensions","summary":"The SG90 micro servo body is 22.8 x 12.2 mm in plan, with mounting ears extending the width to ~32.5 mm and dia2 mm ear screw holes on a 28 mm centre spacing -- the ubiquitous small gripper/pan-tilt servo.","applies":["servo","sg90","gripper","pan-tilt"],"value":{"table":[{"field":"bodyWidth","value":22.8},{"field":"bodyThickness","value":12.2},{"field":"earHoleSpacing","value":28},{"field":"earHoleDia","value":2}],"unit":"mm"},"basis":"TowerPro SG90 datasheet case and ear-hole drawing","sources":["towerpro-sg90"],"tags":["servo","sg90","dimension"]},{"id":"servo-mg996r-dims","kind":"dimension","tier":2,"title":"MG996R servo case dimensions","summary":"The MG996R metal-gear servo body is 40.7 x 19.7 x 42.9 mm (L x W x H) -- roughly double an SG90's footprint, used where a joint needs its 9-11 kg-cm torque.","applies":["servo","mg996r"],"value":{"table":[{"field":"length","value":40.7},{"field":"width","value":19.7},{"field":"height","value":42.9}],"unit":"mm"},"basis":"MG996R datasheet case drawing","sources":["mg996r-datasheet"],"tags":["servo","mg996r","dimension"]},{"id":"dynamixel-frame-pattern","kind":"dimension","tier":2,"title":"Dynamixel servo frame and mounting-hole spacing","summary":"Robotis Dynamixel smart servos (e.g. XL430) use a modular rectangular frame with M2/M2.5 mounting holes repeating on the frame's short-side spacing (commonly 8 mm/16 mm modules), so third-party horns and brackets can be gridded rather than measured off the actual unit.","applies":["dynamixel","servo","robotis"],"value":{"options":[8,16],"unit":"mm"},"basis":"Robotis Dynamixel XL430-W250 mechanical specification, the modular hole-spacing convention shared across the X-series frame","sources":["robotis-dynamixel-xl430"],"tags":["dynamixel","servo","mount"]},{"id":"bldc-mount-bolt-circles","kind":"dimension","tier":2,"title":"Small BLDC gimbal/prop motor bolt circles (2204/2806)","summary":"A \"2204\" BLDC (22 mm stator dia) mounts on a dia12 mm bolt circle with M2; a \"2806\" (28 mm stator dia) mounts on a dia16 mm or dia19 mm bolt circle with M3 -- read the motor's own back-plate before committing, the four-digit code only fixes the stator size, not the hole pattern.","applies":["bldc","motor mount"],"value":{"table":[{"frame":"2204","boltCircle":12,"boltSize":"M2"},{"frame":"2806","boltCircle":16,"boltSize":"M3"},{"frame":"2806 (wide)","boltCircle":19,"boltSize":"M3"}],"unit":"mm"},"basis":"Common small-BLDC (gimbal/prop) motor back-plate bolt-circle conventions","sources":["stepperonline-nema-mech"],"tags":["bldc","mount","bolt-circle"]},{"id":"clevis-linkage-pin-fit","kind":"fastener","tier":2,"title":"Clevis/linkage pin fit and flanged bushings","summary":"Size a clevis pin H7 in the clevis ears and g6 on the pin itself for a free-running pivot with minimal play; where the joint sees continuous cycling, press a flanged plain bushing into the ear bore instead of running the pin straight in printed or cast plastic.","applies":["linkage","clevis","joint","pin"],"value":{"options":["H7 (ears)","g6 (pin)"]},"basis":"ISO 286 H7/g6 running-clearance fit class applied to a pin-and-clevis pivot","sources":["iso-286"],"tags":["linkage","clevis","pin","bushing"]},{"id":"print-orientation-vs-load","kind":"rule","tier":2,"title":"Print orientation for a load-bearing part","summary":"Orient a structural printed part so layer lines run ACROSS the load path: FDM/SLS interlayer adhesion is only 30-50% of in-plane strength, so a link loaded along its layer lines can crack well under its rated load.","applies":["3d printed part","bracket","arm","link"],"basis":"Well-documented FDM/SLS anisotropy: interlayer strength is a fraction of in-plane strength","sources":["matweb-materials"],"tags":["3d-print","orientation","load"]},{"id":"print-min-wall-structural","kind":"rule","tier":2,"title":"Minimum wall for a load-bearing printed part","summary":"Give a structural printed bracket or link 2-3 mm minimum wall thickness -- thinner walls in PLA/PETG/PA12 flex and fatigue under the repeated cyclic loading a robot joint sees, even when a single static load test would pass.","applies":["3d printed part","bracket","link"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"Common FDM/SLS structural-part design-guide minimum wall for cyclic (not just static) loading","sources":["matweb-materials"],"tags":["3d-print","wall-thickness","structural"]},{"id":"print-hole-shrink-compensation","kind":"rule","tier":2,"title":"Hole shrink compensation on FDM prints","summary":"An FDM-printed hole comes out roughly 0.2 mm undersized (elephant's-foot and cooling shrink at the perimeter); oversize the CAD hole by +0.2 mm versus the nominal fastener/bearing/pin diameter to hit the intended running size.","applies":["3d printed part","hole"],"value":{"value":0.2,"unit":"mm"},"basis":"Common FDM dimensional-accuracy compensation for circular internal features","sources":["matweb-materials"],"tags":["3d-print","hole","shrink","compensation"]},{"id":"heat-set-insert-robotics","kind":"fastener","tier":2,"title":"Heat-set inserts for printed robot housings","summary":"Use brass heat-set inserts (not printed M3/M4/M5 threads) for any joint or motor-mount fastener into a printed part assembled more than once -- see hardware/heat-set-inserts-metric for pilot-hole size and depth by screw size.","applies":["3d printed part","motor mount","housing"],"basis":"Heat-set inserts survive repeated assembly cycles that a printed thread does not","sources":["matweb-materials"],"tags":["3d-print","insert","fastener"],"see":["hardware/heat-set-inserts-metric"],"value":{"options":["see hardware/heat-set-inserts-metric for pilot hole dia/depth by screw size"]}},{"id":"gripper-finger-compliance","kind":"feature","tier":2,"title":"Gripper finger compliance and pad material","summary":"A rigid printed gripper finger needs a compliant pad -- 30-60A shore TPU or silicone -- bonded or mechanically keyed to the contact face; compliance takes up part-to-part size variation and roughly doubles grip friction versus bare PLA/PA12 on a smooth object.","applies":["gripper","end effector"],"value":{"min":30,"max":60,"unit":"ratio","note":"Shore A hardness of the pad material"},"basis":"Common soft-pad gripper design practice for parallel and underactuated fingers","sources":["matweb-materials"],"tags":["gripper","compliance","pad","tpu"]},{"id":"cable-management-bend-radius","kind":"feature","tier":2,"title":"Minimum cable bend radius across a robot joint","summary":"Cable that flexes continuously across a joint (not just routed once) needs a bend radius >= 10x its OD to survive fatigue; a cable that is merely routed once and never re-flexed can go down to ~5x OD.","applies":["cable management","joint","drag chain"],"value":{"min":5,"typical":10,"unit":"ratio","note":"multiple of the cable outer diameter"},"basis":"Continuous-flex cable design guidance (common drag-chain/robot-cable vendor practice) versus a one-time static bend","sources":["matweb-materials"],"tags":["cable","bend-radius","joint"]},{"id":"material-12l14-free-machining","kind":"material","tier":2,"title":"12L14 free-machining steel for turned fittings","summary":"12L14 (leaded free-machining steel) is the default for small turned fittings, spacers and non-load-bearing shaft collars -- it machines fast and finishes clean but is not recommended for a keyed, torque-carrying shaft.","applies":["shaft collar","spacer","fitting"],"value":{"table":[{"property":"yield","value":310,"unit":"MPa"},{"property":"machinability rating","value":170,"unit":"%"}]},"basis":"MatWeb 12L14 property data; standard free-machining steel for low-stress turned parts","sources":["matweb-materials"],"tags":["material","12l14","steel"]},{"id":"print-material-pla-petg","kind":"material","tier":2,"title":"PLA and PETG for non-structural printed parts","summary":"PLA (stiff, brittle, low heat resistance) and PETG (tougher, better layer adhesion, some heat resistance) cover covers, cable clips and low-load brackets; move to PA12/CF-PA (print-material-pa12-cfpa) once the part carries a running joint load.","applies":["3d printed part","cover","bracket"],"value":{"table":[{"material":"PLA","tensile_MPa":50,"heatDeflection_C":55},{"material":"PETG","tensile_MPa":50,"heatDeflection_C":70}]},"basis":"MatWeb PLA/PETG property data versus the PA12/CF-PA structural entry in this pack","sources":["matweb-materials"],"tags":["material","pla","petg","3d-print"]},{"id":"standard-din-6885","kind":"standard","tier":2,"title":"DIN 6885 -- parallel keys and keyways","summary":"DIN 6885-1 sets the b x h key cross-section and shaft/hub keyway depth by shaft diameter (this pack's shaft-keyway-din6885 table); it also fixes the keyway's rounded or square end form and length series.","applies":["shaft","keyway"],"basis":"The keying standard this pack's shaft-keyway table is drawn from","sources":["din-6885"],"tags":["standard","din-6885","keyway"]},{"id":"standard-iso-286","kind":"standard","tier":2,"title":"ISO 286 -- limits and fits","summary":"ISO 286 defines the hole/shaft tolerance-class letters and grades (H7, k6, h6, g6...) this pack uses throughout for bearing, bushing and pin fits; a fit called out without its class letter isn't fully specified.","applies":["shaft","bearing","fit"],"basis":"The tolerance-class system every fit entry in this pack cites","sources":["iso-286"],"tags":["standard","iso-286","fits","tolerance"]},{"id":"standard-nema-ics-16","kind":"standard","tier":2,"title":"NEMA ICS 16 -- motion/position control motors","summary":"NEMA ICS 16 is the frame-size standard behind NEMA stepper sizes (14/17/23/34); a given frame's bolt pattern, pilot and shaft diameter still come from the manufacturer's own mechanical drawing.","applies":["stepper","motor mount"],"basis":"The frame-numbering standard behind the NEMA mounting entries in this pack","sources":["nema-ics-16"],"tags":["standard","nema","stepper"]},{"id":"standard-iso-10218","kind":"standard","tier":2,"title":"ISO 10218-1 -- industrial robot safety","summary":"ISO 10218-1 sets safety requirements for industrial robot design: speed/force limiting for collaborative operation, protective stops, and structural/electrical safety of the manipulator -- relevant to any powered arm design even outside a factory cell.","applies":["robot arm","manipulator"],"basis":"The safety standard for powered robot manipulator design","sources":["iso-10218-1"],"tags":["standard","iso-10218","safety"]},{"id":"standard-iso-9283","kind":"standard","tier":2,"title":"ISO 9283 -- manipulating robot performance criteria","summary":"ISO 9283 defines how to measure and report a robot's pose accuracy, repeatability, path accuracy and rated payload -- the test methods this pack's repeatability test entry follows.","applies":["robot arm","manipulator"],"basis":"The performance-test-method standard behind this pack's repeatability test entry","sources":["iso-9283"],"tags":["standard","iso-9283","performance"]},{"id":"test-bearing-cycle-life","kind":"test","tier":2,"title":"Joint bearing cycle-life test","summary":"Run a joint assembly (bearing + shaft + housing) through 1,000,000 cycles of its rated motion and load; a joint that develops measurable play or drag increase before 1e6 cycles needs a tighter fit class or a larger bearing, not just a lubrication fix.","applies":["bearing","joint","durability"],"value":{"value":1000000,"unit":"cycles"},"basis":"Common robotics-durability acceptance figure for a repeatedly-actuated joint bearing","sources":["skf-bearing-catalogue"],"tags":["test","bearing","cycle-life"]},{"id":"test-backlash-measurement","kind":"test","tier":2,"title":"Gear/lead-screw backlash measurement","summary":"Lock the output, apply a small reversing torque at the input, and read the input's free rotation on a dial indicator or encoder; a spur/lead-screw drive should read <= 0.1 mm of linear backlash at the tool point -- above that, add a spring-loaded anti-backlash gear or nut.","applies":["gear","lead screw","backlash"],"value":{"max":0.1,"unit":"mm"},"basis":"Practical field test for the gear-backlash tolerance entry in this pack","sources":["khk-gear-tech-ref"],"tags":["test","backlash","gear","lead-screw"]},{"id":"test-deflection-stiffness-payload","kind":"test","tier":2,"title":"Arm-tip deflection under rated payload","summary":"Load the end effector with the rated payload at full reach and measure tip deflection; keep it under 0.2% of reach (1 mm at 500 mm reach) -- a link or joint that deflects more needs a thicker wall, a rib, or a shorter unsupported span before it goes into service.","applies":["robot arm","stiffness","payload"],"value":{"max":0.2,"unit":"%","note":"tip deflection as a percentage of reach, at rated payload"},"basis":"Common desktop/light-industrial arm stiffness acceptance figure (deflection as a fraction of reach)","sources":["iso-9283"],"tags":["test","deflection","stiffness","payload"]},{"id":"test-repeatability-iso9283","kind":"test","tier":2,"title":"Pose repeatability test (ISO 9283)","summary":"Drive the end effector to the same taught pose 30+ times and measure the spread; a small desktop arm should land in the +-0.1 mm class per ISO 9283, short of an industrial arm's +-0.02-0.05 mm.","applies":["robot arm","repeatability"],"value":{"typical":0.1,"unit":"mm"},"basis":"ISO 9283 pose-repeatability test method, applied at a hobby/desktop-arm accuracy class","sources":["iso-9283"],"tags":["test","repeatability","iso-9283"]},{"id":"recipe-nema17-mount-plate","kind":"recipe","tier":2,"title":"Recipe: NEMA 17 motor mount plate","summary":"Build a 50x50x5 mm mount plate with four M3 clearance holes on the NEMA 17 31 mm bolt square and a central dia22 mm pilot bore for the motor's spigot.","applies":["nema 17","motor mount"],"basis":"Combines nema17-mount-pattern's bolt square and pilot diameter into one buildable plate","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["recipe","nema17","motor-mount"],"recipe":{"prompt":"Model a 50x50x5mm NEMA 17 motor mount plate with four M3 holes on the 31mm bolt square and a 22mm pilot bore","steps":[{"tool":"cad_box","args":{"dx":50,"dy":50,"dz":5},"note":"50x50mm plate, 5mm thick"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":3.2,"pattern":{"kind":"grid","origin":[9.5,9.5],"dx":31,"dy":31,"nx":2,"ny":2}},"note":"4x M3 clearance holes on the 31mm bolt square, centred on the 50x50 plate"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[25,25],"type":"drill","diameter":22},"note":"central pilot bore for the NEMA17 spigot"}],"expect":{"volume":10438.49,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-shaft-keyway-shoulder-circlip","kind":"recipe","tier":2,"title":"Recipe: dia10 shaft with shoulder, keyway and circlip groove","summary":"Turn a dia12 blank down to dia10 beyond a shoulder at z=30, mill a 30mm-long DIN 6885/BS4235 keyway into the dia10 section, and cut a DIN 471 circlip groove near its far end.","applies":["shaft","gear shaft","pulley shaft"],"basis":"Combines shaft-standard-diameters, shaft-keyway-din6885 and shaft-circlip-groove into one buildable stepped shaft","sources":["din-6885"],"tags":["recipe","shaft","keyway","circlip"],"recipe":{"prompt":"Model a dia10mm shaft turned from a dia12 blank: shoulder at z=30, a 30mm keyway, and a circlip groove near the far end","steps":[{"tool":"cad_cylinder","args":{"r":6,"h":100},"note":"dia12 blank, 100mm long"},{"tool":"cad_shaft_shoulder","args":{"of":"$0","z":30,"diameter":10,"side":"above"},"note":"turn the section from z=30 to the far end down to dia10"},{"tool":"cad_shaft_keyway","args":{"of":"$1","z":50,"length":30,"standard":"BS4235"},"note":"keyway on the dia10 section, clear of both its ends (30 and 100)"},{"tool":"cad_shaft_groove","args":{"of":"$2","z":95,"width":1.1,"diameter":9.6,"form":"rectangular"},"note":"DIN 471 circlip groove for a dia10 shaft near the far end"}],"expect":{"volume":8728.78,"faceCount":21,"watertight":true,"note":"measured 2026-09-20: CADSF-1676 fixed it. The two ops always composed - all four steps build in ONE commands/executor.js run(). What did not survive was ops/shaft.js's authored-profile cache: the MCP surface appends one op per call and rebuilds INCREMENTALLY, which restores a fresh parser and splices the clean prefix, so the WeakMap keyed on the old parser was empty and cad_shaft_groove fell back to silhouette recovery, which at the time could not read a keyed shaft. The cache is now a parser side table (_shaftProfiles) the checkpoint carries. CADSF-1691 then made the cache an optimisation rather than the only route: a keyway is recovered FROM THE B-REP (its floor and two side walls are planes parallel to the axis, and the sign of each plane's distance from the axis says which is which), so a keyed shaft is readable however it arrives - a save and reload, another module, or an imported STEP file this session never authored. Re-measured 2026-09-21 on that path: identical volume, meshVolume and faceCount. faceCount is the 21 of the old pin; volume moves 8713.09 -> 8728.78 (+0.18%, inside the 0.5% band) because CADSB-1072 made the headline volume the construction-time closed form - 8713.09 is still what the mesh measures"}}},{"id":"recipe-bearing-housing-608","kind":"recipe","tier":2,"title":"Recipe: 608 bearing housing with flange bolt circle","summary":"Build a dia34x10 mm housing block with a through shaft-clearance bore, a dia22x7 mm blind pocket for a 608 bearing, and a 3-hole M3 flange bolt circle at radius 13 mm.","applies":["bearing","608","housing"],"basis":"Combines bearing-common-sizes-table's 608 dimensions with bearing-housing-shaft-fits into one buildable housing","sources":["skf-bearing-catalogue"],"tags":["recipe","bearing","608","housing"],"recipe":{"prompt":"Model a 608 bearing housing: dia34x10mm block, through shaft clearance bore, a 22x7mm bearing pocket, and a 3x M3 flange bolt circle at radius 13mm","steps":[{"tool":"cad_cylinder","args":{"r":17,"h":10},"note":"housing blank, 34mm OD x 10mm tall"},{"tool":"cad_drill_hole","args":{"of":"$0","center":[0,0],"type":"drill","diameter":8.5},"note":"through shaft-clearance bore, cut deepest (full-through) first"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[0,0],"type":"drill","diameter":22,"depth":7},"note":"blind pocket for the 608 bearing (OD22 x width7)"},{"tool":"cad_hole_pattern","args":{"of":"$2","type":"drill","diameter":3.4,"pattern":{"kind":"circular","center":[0,0],"radius":13,"count":3}},"note":"3x M3 flange bolt circle"}],"expect":{"volume":5977.92,"faceCount":15,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 143 -> 15, volume +0.183%, pinned smaller (chord deficit of the faceted bore and counterbore)"}}}]}