{"$schema":"nativecad-dfm-pack/1","id":"desktop-robots","title":"Desktop & companion robots -- small humanoids, robot pets, rovers, AI devices","sector":"desktop-robots","version":"2026-09-04","summary":"Envelope, DOF, servo-pocket and shell numbers for desk humanoids, robot pets/quadrupeds, two-wheel rovers, animatronic eye heads and AI-device/smart-speaker builds -- eye/camera/port cutouts, battery bays, stability and pinch-point rules, and the tests these products are held to.","aliases":["desk robot","desktop robot","companion robot","robot pet","robot dog","quadruped","small humanoid","humanoid","robot head","animatronic eye","hobby robot kit","robot chassis","line follower","sumo robot","ai device","ai pin","smart speaker","voice assistant","camera module","robot face display","wheeled robot"],"crossSector":false,"size":"full","sources":[{"id":"hf-reachy-mini","title":"Hugging Face Reachy Mini Lite Hardware Datasheet","url":"https://huggingface.co/docs/reachy_mini/platforms/reachy_mini_lite/hardware","accessed":"2026-09-04"},{"id":"feetech-sts3215","title":"Feetech STS3215 Smart Servo Specifications","url":"https://servodatabase.com/servo/feetech/sts3215","accessed":"2026-09-04"},{"id":"petoi-bittle-specs","title":"Petoi Bittle Robot Dog Technical Specifications","url":"https://www.petoi.com/pages/bittle-robot-dog-specifications","accessed":"2026-09-04"},{"id":"unitree-go2-specs","title":"Unitree Go2 Quadruped Robot Specifications","url":"https://www.unitree.com/go2/","accessed":"2026-09-04"},{"id":"gc9a01-module-datasheet","title":"1.28in GC9A01 Round TFT LCD Module Datasheet","url":"https://www.waveshare.com/1.28inch-lcd-module.htm","accessed":"2026-09-04"},{"id":"oled096-datasheet","title":"0.96in SSD1306 OLED Display Module Datasheet","url":"https://www.waveshare.com/wiki/0.96inch_OLED_(B)","accessed":"2026-09-04"},{"id":"picamera-v3-datasheet","title":"Raspberry Pi Camera Module 3 Product Brief","url":"https://www.raspberrypi.com/documentation/accessories/camera.html","accessed":"2026-09-04"},{"id":"esp32cam-datasheet","title":"AI-Thinker ESP32-CAM Development Board Datasheet","url":"https://docs.ai-thinker.com/en/esp32-cam","accessed":"2026-09-04"},{"id":"usb-c-spec","title":"USB Type-C Cable and Connector Specification (USB-IF)","url":"https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-21","accessed":"2026-09-04"},{"id":"iec-61960","title":"IEC 61960 Secondary Lithium Cells for Portable Applications","url":"https://webstore.iec.ch/publication/5416","accessed":"2026-09-04"},{"id":"n20-motor-datasheet","title":"N20 Micro Metal Gear Motor Datasheet","url":"https://www.handsontec.com/dataspecs/motor_fan/GA12-N20.pdf","accessed":"2026-09-04"},{"id":"iso-13482","title":"ISO 13482 Robots and Robotic Devices -- Personal Care Robot Safety","url":"https://www.iso.org/standard/53820.html","accessed":"2026-09-04"},{"id":"iec-60335-1","title":"IEC 60335-1 Household and Similar Electrical Appliances -- Safety","url":"https://webstore.iec.ch/publication/23456","accessed":"2026-09-04"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 Environmental Testing -- Rough Handling Shocks","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-04"},{"id":"hobby-component-datasheets","title":"Hobby robotics component datasheets (magnets, LiPo pouches, TPU pads, casters, mini speakers, MEMS mics, ball joints, wiring)","accessed":"2026-09-04"},{"id":"hubs-3dp-guide","title":"Hubs (Protolabs) 3D Printing Design Guidelines","url":"https://www.hubs.com/knowledge-base/","accessed":"2026-09-04"},{"id":"ai-device-envelope-refs","title":"Smart speaker / AI wearable device dimension references (HomePod mini, Echo Dot, Ai Pin, Rabbit r1)","accessed":"2026-09-04"}],"entries":[{"id":"envelope-desk-humanoid","kind":"dimension","tier":1,"title":"Desktop humanoid/companion robot envelope","summary":"A desk humanoid or companion robot (Reachy Mini-class) stands 160-280 mm tall in a 160x160 mm footprint; a smaller pan-tilt head-only unit runs 90-150 mm tall.","applies":["desk robot","desktop robot","companion robot","small humanoid","humanoid","robot head"],"value":{"table":[{"param":"height","min":160,"max":280,"typical":220},{"param":"footprintSquare","value":160}],"unit":"mm"},"basis":"Reachy Mini Lite published envelope, the reference open-source desk-humanoid platform","sources":["hf-reachy-mini"],"tags":["envelope","humanoid","companion-robot"]},{"id":"mass-desk-humanoid","kind":"dimension","tier":1,"title":"Desktop humanoid/companion robot mass","summary":"A desk humanoid/companion robot masses 1.3-1.5 kg fully assembled (Reachy Mini Lite: 1.5 kg); a bare pan-tilt head-only build without a body/base runs roughly 0.3-0.5 kg.","applies":["desk robot","desktop robot","companion robot","humanoid","robot head"],"value":{"min":0.3,"max":1.5,"typical":1.5,"unit":"kg"},"basis":"Reachy Mini Lite published weight, scaled down for a head-only sub-assembly","sources":["hf-reachy-mini"],"tags":["mass","weight","humanoid"]},{"id":"dof-desk-companion-robot","kind":"dimension","tier":1,"title":"Desk companion robot head/body degrees of freedom","summary":"A desk companion's head commonly carries 4-6 DOF (pan/tilt/roll plus a small XYZ float) plus 1 body-yaw and 1-2 antenna axes; Reachy Mini Lite runs 6 head DOF, 1 body rotation and 2 antenna axes across 9 servos.","applies":["desk robot","desktop robot","companion robot","small humanoid","humanoid","robot head"],"value":{"min":4,"max":9,"typical":6,"unit":"count"},"basis":"Reachy Mini Lite published kinematic breakdown (head 3 rotations + 3 translations, body 1 rotation, antennas 1 rotation x2)","sources":["hf-reachy-mini"],"tags":["dof","kinematics","humanoid"]},{"id":"sts3215-servo-body-dims","kind":"dimension","tier":1,"title":"STS3215 smart servo body dimensions","summary":"The Feetech STS3215 smart servo (the SO-100/SO-101 arm's actuator) measures 45.2 x 24.7 x 35 mm body, 55 g mass, with a 25-tooth spline horn -- see robotics/servo-sg90-dims and robotics/servo-mg996r-dims for the smaller/larger hobby servos this pack does not repeat.","applies":["hobby robot kit","robot arm","small humanoid","robot chassis"],"value":{"table":[{"param":"length","value":45.2},{"param":"width","value":24.7},{"param":"height","value":35}],"unit":"mm"},"basis":"Feetech STS3215 published case dimensions, the common actuator in open-source arm/humanoid kits (SO-100/SO-101, LeRobot)","sources":["feetech-sts3215"],"see":["robotics/servo-sg90-dims","robotics/servo-mg996r-dims"],"tags":["servo","sts3215","dimension"]},{"id":"servo-pocket-clearance","kind":"rule","tier":1,"title":"Servo body pocket clearance for a printed bracket","summary":"Pocket a servo body at its nominal L x W x H plus 0.2-0.3 mm clearance per side (0.4-0.6 mm total) for an FDM/SLA-printed bracket; tighten to 0.1-0.15 mm per side on a CNC or SLS part.","applies":["hobby robot kit","robot chassis","small humanoid"],"value":{"min":0.2,"max":0.3,"unit":"mm"},"basis":"Common hobby-servo pocket allowance balancing a snug seat against printed-part dimensional tolerance","sources":["feetech-sts3215"],"tags":["servo","pocket","clearance","tolerance"]},{"id":"servo-horn-spline-recess","kind":"feature","tier":1,"title":"Servo horn spline boss recess","summary":"A common metal-gear servo spline (STS3215/MG996R-class, 25T) presents a horn boss about 6 mm dia standing 3-4 mm proud of the case; recess the mating arm/head 6.2 mm dia x 3.5 mm deep with a central M3 clearance hole so the horn seats flush.","applies":["servo","robot arm","hobby robot kit"],"value":{"table":[{"param":"bossDia","value":6.2},{"param":"bossDepth","value":3.5}],"unit":"mm"},"basis":"Common 25-tooth metal-gear servo horn/spline boss geometry","sources":["feetech-sts3215"],"tags":["servo","horn","spline","recess"]},{"id":"wire-channel-sizing","kind":"rule","tier":1,"title":"Wire channel for servo/sensor cable bundles","summary":"Route a 3-wire servo cable (or a camera/mic ribbon) through a 4-6 mm wide x 3-4 mm deep channel with 1-2 mm of wall on either side; a channel under 3 mm pinches a typical 26-28 AWG bundle on assembly.","applies":["hobby robot kit","robot chassis","small humanoid"],"value":{"table":[{"param":"width","min":4,"max":6},{"param":"depth","min":3,"max":4}],"unit":"mm"},"basis":"Common hobby-robotics cable-routing practice sized to a bundled servo/sensor cable jacket","sources":["hobby-component-datasheets"],"tags":["wire","cable","channel","routing"]},{"id":"eye-display-cutout-gc9a01-128","kind":"dimension","tier":1,"title":"Round eye display cutout, 1.28in GC9A01 (240x240)","summary":"A 1.28 in round GC9A01 TFT (240x240, 32.4 mm active circle on a 38 x 45.5 x 3.2 mm PCB) needs a 33-34 mm dia face cutout, with the PCB registered on a wider boss so the display seats flush behind the eye opening.","applies":["animatronic eye","robot face display","robot head","small humanoid"],"value":{"table":[{"param":"activeDia","value":32.4},{"param":"pcbLength","value":38},{"param":"pcbWidth","value":45.5},{"param":"pcbThickness","value":3.2}],"unit":"mm"},"basis":"GC9A01 1.28in round LCD module published PCB and active-area dimensions","sources":["gc9a01-module-datasheet"],"tags":["display","eye","gc9a01","cutout"]},{"id":"eye-display-cutout-oled096","kind":"dimension","tier":1,"title":"0.96in OLED status/eye display cutout","summary":"A 0.96 in SSD1306 OLED module has a 27.3 x 27.8 mm active area; cut a 28-29 mm wide rectangular window with 2-4 mm of PCB standoff clearance around it for a status face or a single-eye readout on a smaller companion robot.","applies":["animatronic eye","robot face display","desk robot","ai device"],"value":{"table":[{"param":"activeWidth","value":27.3},{"param":"activeHeight","value":27.8}],"unit":"mm"},"basis":"0.96in SSD1306 OLED module published active-area dimensions","sources":["oled096-datasheet"],"tags":["display","oled","eye","cutout"]},{"id":"camera-cutout-picamv3","kind":"dimension","tier":1,"title":"Raspberry Pi Camera Module 3 lens cutout","summary":"The Raspberry Pi Camera Module 3 board is 25 x 24 mm; cut a dia8-9 mm lens aperture centred on the lens barrel plus two M2 clearance holes on the board's own mounting-hole spacing for a robot-face camera bezel.","applies":["camera module","robot head","robot face display"],"value":{"table":[{"param":"boardWidth","value":25},{"param":"boardHeight","value":24}],"unit":"mm"},"basis":"Raspberry Pi Camera Module 3 published board outline","sources":["picamera-v3-datasheet"],"tags":["camera","picamera","cutout"]},{"id":"camera-cutout-esp32cam","kind":"dimension","tier":1,"title":"ESP32-CAM board bay cutout","summary":"An ESP32-CAM module board is 27 x 40.5 mm with its OV2640 lens offset toward one end; cut a dia10 mm lens clearance hole and a 27 x 40.5 mm board slot with 1-2 mm edge clearance for a printed camera bay.","applies":["camera module","robot head","hobby robot kit"],"value":{"table":[{"param":"boardWidth","value":27},{"param":"boardHeight","value":40.5}],"unit":"mm"},"basis":"AI-Thinker ESP32-CAM published board outline","sources":["esp32cam-datasheet"],"tags":["camera","esp32-cam","cutout"]},{"id":"usb-c-port-cutout","kind":"dimension","tier":1,"title":"USB-C port cutout for a charging/data bay","summary":"A USB-C receptacle needs a 9 x 3.3 mm cutout (the connector envelope) plus 0.3-0.5 mm clearance per side so a printed or moulded shell doesn't bind the plug; a board-edge jack commonly sits 1.6-3 mm proud of the PCB.","applies":["ai device","ai pin","desk robot","desktop robot"],"value":{"table":[{"param":"cutoutWidth","value":9},{"param":"cutoutHeight","value":3.3}],"unit":"mm"},"basis":"USB Type-C Cable and Connector Specification published receptacle envelope","sources":["usb-c-spec"],"tags":["usb-c","port","cutout"]},{"id":"battery-18650-bay","kind":"dimension","tier":1,"title":"18650 li-ion cell bay","summary":"An 18650 cylindrical cell (dia18.0-18.5 x 64.8-65.3 mm per IEC 61960) needs a dia18.8-19 x 66 mm pocket with 2-3 mm of spring/PCB contact travel at one end -- common single or 2S/2P packs power a desk rover or humanoid base.","applies":["desk robot","desktop robot","wheeled robot","small humanoid"],"value":{"table":[{"param":"cellDia","min":18,"max":18.5},{"param":"cellLength","min":64.8,"max":65.3},{"param":"pocketDia","min":18.8,"max":19},{"param":"pocketLength","value":66}],"unit":"mm"},"basis":"IEC 61960 secondary lithium cell dimension tolerances for the 18650 format","sources":["iec-61960"],"tags":["battery","18650","li-ion","bay"]},{"id":"shell-wall-thickness-print","kind":"dimension","tier":1,"title":"Printed companion-robot shell wall thickness","summary":"A 3D-printed PLA/PETG companion-robot shell (head, torso, chassis cover) runs 2.0-2.5 mm nominal wall -- thinner flexes under servo-cable strain and snap features, thicker adds print time and mass on a desk-scale part.","applies":["desk robot","desktop robot","companion robot","robot head","robot chassis"],"value":{"min":2,"max":2.5,"typical":2,"unit":"mm"},"basis":"Common FDM wall-thickness guidance for a self-supporting rigid shell at desk-robot scale","sources":["hubs-3dp-guide"],"see":["consumer/wall-thickness-fdm"],"tags":["wall","shell","3d-printing"]},{"id":"com-support-polygon-rule","kind":"rule","tier":1,"title":"Centre of mass inside the support polygon","summary":"Keep a desk robot's centre of mass within the polygon formed by its feet/base contact points, and at or below about 40% of overall height for a narrow two-point or bipedal stance, so it self-rights rather than tips under a shoulder-height nudge.","applies":["small humanoid","humanoid","robot dog","quadruped","desk robot"],"value":{"max":40,"unit":"%"},"basis":"Household-appliance stability practice (IEC 60335-1) applied as a desk-robot CoM design proxy","sources":["iec-60335-1"],"tags":["stability","center-of-mass","tip-over"]},{"id":"tip-over-stability-angle-rule","kind":"rule","tier":1,"title":"Static stability angle for a freestanding desk robot","summary":"A desk robot resting on a table or floor should remain upright when tilted to 10 deg from horizontal on its most tip-prone axis (the IEC 60335-1 household-appliance stability criterion, applied here as a desk-robot design proxy).","applies":["small humanoid","robot dog","quadruped","wheeled robot","desk robot"],"value":{"value":10,"unit":"deg"},"basis":"IEC 60335-1 clause 20 stability-test tilt angle, borrowed for a desk/companion robot in the absence of a dedicated standard","sources":["iec-60335-1"],"tags":["stability","tip-over","test"]},{"id":"wheel-tt-n20-motor-dims","kind":"dimension","tier":1,"title":"TT and N20 gear motor sizes for a desk rover","summary":"A desk-rover drivetrain uses either a TT geared DC motor paired with a 65 mm OD wheel, or a smaller N20 micro gear motor (12 x 10 mm gearbox cross-section, dia3 x 10 mm output D-shaft) for a lighter build -- match the wheel bore to the chosen motor's own shaft.","applies":["wheeled robot","desk robot","robot chassis","line follower","sumo robot"],"value":{"table":[{"param":"ttWheelDia","value":65},{"param":"n20GearboxWidth","value":12},{"param":"n20GearboxHeight","value":10},{"param":"n20ShaftDia","value":3},{"param":"n20ShaftLength","value":10}],"unit":"mm"},"basis":"N20 micro gear motor published gearbox/shaft dimensions; 65 mm is the common paired TT-motor wheel size in hobby-rover kits","sources":["n20-motor-datasheet","hobby-component-datasheets"],"tags":["motor","wheel","n20","tt-motor"]},{"id":"pinch-point-clearance-rule","kind":"rule","tier":1,"title":"Pinch-point clearance on moving joints","summary":"Keep any gap next to a powered joint (a neck, wheel arch, gripper) under 5 mm or over 25 mm so a finger cannot wedge and be crushed as the joint moves -- the ISO 13482 finger-entrapment band for a consumer-facing moving part.","applies":["small humanoid","robot dog","quadruped","robot arm","gripper"],"value":{"min":5,"max":25,"unit":"mm","note":"avoid this band; safe below 5mm or above 25mm"},"basis":"ISO 13482 personal care robot safety finger-entrapment clearance guidance","sources":["iso-13482"],"tags":["pinch-point","safety","clearance"]},{"id":"quadruped-envelope-bittle","kind":"dimension","tier":2,"title":"Petoi Bittle-class desktop quadruped envelope","summary":"A Bittle-class desktop quadruped (robot dog/robot pet) measures about 200 x 110 x 110 mm and weighs 290 g with 9 DOF (2 per leg plus 1 neck) -- the reference envelope for a desktop 'robot dog'/'quadruped' request.","applies":["robot dog","quadruped","robot pet","hobby robot kit"],"value":{"table":[{"param":"length","value":200},{"param":"width","value":110},{"param":"height","value":110},{"param":"mass_g","value":290},{"param":"dof","value":9}],"unit":"mm"},"basis":"Petoi Bittle published envelope, mass and joint count","sources":["petoi-bittle-specs"],"tags":["quadruped","envelope","bittle"]},{"id":"quadruped-leg-link-proportions","kind":"dimension","tier":2,"title":"Quadruped leg link length vs body length","summary":"On a Bittle-class desktop quadruped, thigh and shank links each run roughly 22-28% of the 200 mm overall body length (about 45-55 mm each); scale each leg link to that fraction of the body length to preserve the walking gait's reach.","applies":["robot dog","quadruped"],"value":{"min":22,"max":28,"unit":"%"},"basis":"Petoi Bittle published leg geometry proportioned against its own body length","sources":["petoi-bittle-specs"],"tags":["quadruped","leg","proportion"]},{"id":"large-quadruped-reference-envelope","kind":"dimension","tier":2,"title":"Larger research/hobbyist quadruped reference envelope","summary":"Beyond desktop scale, a Unitree Go2-class quadruped stands about 700 x 310 x 400 mm and weighs about 15 kg; use only as an upper-bound reference -- this pack's 200-300 mm, sub-2 kg entries are the default for a text-to-CAD 'robot dog' unless asked for a larger build.","applies":["robot dog","quadruped"],"value":{"table":[{"param":"length","value":700},{"param":"width","value":310},{"param":"height","value":400},{"param":"mass_kg","value":15}],"unit":"mm"},"basis":"Unitree Go2 published standing envelope and system mass","sources":["unitree-go2-specs"],"tags":["quadruped","large","reference"]},{"id":"rover-chassis-plate-dimension","kind":"dimension","tier":2,"title":"Two-wheel desk rover chassis plate","summary":"A desk-rover chassis plate runs 90-150 mm long x 70-110 mm wide x 2-3 mm thick (FR4, acrylic or printed), sized around a pair of TT or N20 drive motors and a single front or rear caster.","applies":["wheeled robot","desk robot","robot chassis","line follower","sumo robot"],"value":{"table":[{"param":"length","min":90,"max":150},{"param":"width","min":70,"max":110},{"param":"thickness","min":2,"max":3}],"unit":"mm"},"basis":"Common hobby two-wheel rover chassis footprint sized to a pair of TT/N20 motors plus battery","sources":["hobby-component-datasheets"],"tags":["rover","chassis","wheeled"]},{"id":"caster-ball-dimension","kind":"dimension","tier":2,"title":"Caster ball size for a desk rover","summary":"A desk-rover's passive third contact point uses a 10-13 mm steel or nylon caster ball in a socket about 1 mm larger in diameter, giving 2-3 mm of vertical float so both drive wheels stay loaded on an uneven desk surface.","applies":["wheeled robot","desk robot","robot chassis"],"value":{"min":10,"max":13,"unit":"mm"},"basis":"Common hobby ball-caster size paired with 60-70 mm drive wheels","sources":["hobby-component-datasheets"],"tags":["caster","rover","wheel"]},{"id":"speaker-driver-cutout-40mm","kind":"dimension","tier":2,"title":"40mm / 2in full-range speaker driver cutout","summary":"A 40 mm (sold as '2 in') full-range speaker driver needs a dia38-39 mm through-cutout on its magnet side and a dia42-44 mm x 2-3 mm deep counterbore lip on the front face so the driver's frame seats and is captured by a grille.","applies":["ai device","smart speaker","voice assistant"],"value":{"table":[{"param":"throughCutoutDia","min":38,"max":39},{"param":"counterboreDia","min":42,"max":44},{"param":"counterboreDepth","min":2,"max":3}],"unit":"mm"},"basis":"Common 40 mm full-range mini speaker driver frame dimensions","sources":["hobby-component-datasheets"],"tags":["speaker","driver","cutout"]},{"id":"speaker-grille-acoustic-port-rule","kind":"rule","tier":2,"title":"Speaker grille open-area rule","summary":"Perforate a speaker grille to at least 50% open area within the driver's radiating diameter, using 1.5-2.5 mm holes on a 3-4 mm pitch -- less open area measurably attenuates high frequencies and muffles a voice-assistant reply.","applies":["ai device","smart speaker","voice assistant"],"value":{"min":50,"unit":"%"},"basis":"Common acoustic-grille open-area guidance for a small full-range driver","sources":["hobby-component-datasheets"],"tags":["speaker","grille","acoustic"]},{"id":"mic-hole-dimension","kind":"dimension","tier":2,"title":"Microphone port hole size","summary":"A MEMS microphone port (a single mic, or one of a 2-4 mic far-field array) is a dia1.0-2.0 mm hole through a wall up to 1.5 mm thick, centred directly over the mic's own port so the acoustic channel doesn't low-pass the pickup.","applies":["ai device","voice assistant","smart speaker","desk robot"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Common MEMS microphone acoustic-port sizing to avoid an over-long or offset sound channel","sources":["hobby-component-datasheets"],"tags":["microphone","port","acoustic"]},{"id":"ball-joint-neck-dimension","kind":"dimension","tier":2,"title":"Ball-joint neck for a head/body tilt joint","summary":"A friction ball-joint neck linking a robot head to its torso uses a 12-20 mm ball diameter with a socket wall of 1.5-2x the shell thickness, giving roughly +-20-30 deg of tilt/pan before the socket rim binds -- a low-part-count alternative to a geared pan-tilt bracket.","applies":["robot head","animatronic eye","small humanoid","companion robot"],"value":{"min":12,"max":20,"unit":"mm"},"basis":"Common hobby-animatronic ball-and-socket neck-joint proportions","sources":["hobby-component-datasheets"],"tags":["neck","ball-joint","head"]},{"id":"animatronic-eye-mechanism-envelope","kind":"dimension","tier":2,"title":"Animatronic single-eye mechanism envelope","summary":"A 2-DOF (pan/tilt) animatronic eye mechanism built around a dia30-35 mm eyeball (or this pack's eye-display-cutout-gc9a01-128) needs about 45-55 mm of depth behind the face shell for its two micro servos and linkage, plus 5-8 mm of radial clearance for the eyeball's rotation arc.","applies":["animatronic eye","robot face display","robot head"],"value":{"table":[{"param":"depthBehindFace","min":45,"max":55},{"param":"radialClearance","min":5,"max":8}],"unit":"mm"},"basis":"Common 2-DOF hobby animatronic eye-mechanism envelope for a two-micro-servo linkage","sources":["hobby-component-datasheets"],"tags":["eye","animatronic","mechanism"]},{"id":"shell-snap-magnet-closure","kind":"feature","tier":2,"title":"Snap and magnet shell-half closures","summary":"Close a two-half printed shell with 2-3 mm snap-fit hooks at load-bearing points plus one or two 6 x 3 mm N35 disc magnets at panels needing tool-free opening (battery door, USB bay) -- a magnet alone rarely holds a panel through a 1 m drop, so pair it with a mechanical catch.","applies":["desk robot","desktop robot","robot chassis","companion robot"],"value":{"table":[{"param":"magnetDia","value":6},{"param":"magnetThickness","value":3}],"unit":"mm"},"basis":"Common 6x3mm N35 disc magnet size used for tool-free access panels; see consumer/snap-fit-cantilever-basics for the mechanical catch proportions","sources":["hobby-component-datasheets"],"see":["consumer/snap-fit-cantilever-basics"],"tags":["snap-fit","magnet","closure"]},{"id":"servo-bracket-tab-hole","kind":"dimension","tier":2,"title":"Servo bracket mounting tab hole","summary":"Size a servo bracket's ear/tab screw hole at dia2.2-2.5 mm for the servo's usual M2 self-tapping mounting screw, placed on the servo's own ear spacing (28 mm for SG90-class, roughly 10 mm rib centres for STS3215-class horn brackets).","applies":["servo","hobby robot kit","robot arm"],"value":{"min":2.2,"max":2.5,"unit":"mm"},"basis":"Common M2 self-tapping servo mounting screw and its clearance hole","sources":["feetech-sts3215"],"see":["robotics/servo-sg90-dims"],"tags":["servo","bracket","tab","hole"]},{"id":"lipo-pouch-bay-dimension","kind":"dimension","tier":2,"title":"LiPo pouch cell bay allowance","summary":"A single-cell LiPo pouch (500-2000 mAh, roughly 30-55 x 20-35 x 5-9 mm depending on capacity) needs a bay 1-2 mm larger than the cell's datasheet envelope on every face, plus a swelling allowance of about 5% of thickness over the pack's service life.","applies":["desk robot","desktop robot","small humanoid","wheeled robot"],"value":{"table":[{"param":"lengthRange","min":30,"max":55},{"param":"widthRange","min":20,"max":35},{"param":"thicknessRange","min":5,"max":9}],"unit":"mm"},"basis":"Common single-cell LiPo pouch envelope range across 500-2000 mAh capacities, plus swelling margin","sources":["hobby-component-datasheets"],"tags":["battery","lipo","pouch","bay"]},{"id":"ai-device-smart-speaker-envelope","kind":"dimension","tier":2,"title":"Smart speaker / AI wearable device envelope reference","summary":"A cylindrical smart speaker (Echo Dot 5-class) runs about dia100 x 89 mm; a puck one (HomePod mini-class) about dia98 x 84 mm; a clip-on AI wearable (Ai Pin/Rabbit r1-class) runs 45-78 mm across, 8-18 mm thick -- the reference envelope for an 'ai device' request.","applies":["ai device","ai pin","smart speaker","voice assistant"],"value":{"table":[{"param":"echoDot5Dia","value":100},{"param":"echoDot5Height","value":89},{"param":"homepodMiniDia","value":98},{"param":"homepodMiniHeight","value":84}],"unit":"mm"},"basis":"Published envelope dimensions for common smart-speaker and AI-wearable reference products","sources":["ai-device-envelope-refs"],"tags":["ai-device","smart-speaker","envelope"]},{"id":"material-abs-shell","kind":"material","tier":2,"title":"ABS for a companion-robot printed/moulded shell","summary":"ABS (about 1.04 g/cm3) is a common companion-robot shell material where impact resistance at a desk-drop height matters more than PLA's stiffness -- see consumer/wall-thickness-abs for the process wall-thickness table this pack does not repeat.","applies":["desk robot","desktop robot","companion robot","robot head"],"value":{"value":1.04,"unit":"g/cm3"},"basis":"Standard ABS resin/filament datasheet density","sources":["hubs-3dp-guide"],"see":["consumer/wall-thickness-abs"],"tags":["material","abs","shell"]},{"id":"material-pla-petg-companion","kind":"material","tier":2,"title":"PLA and PETG for companion-robot shells and chassis","summary":"PLA (about 1.24 g/cm3, stiff, easy to print, best cosmetic detail for a face/eye bezel) and PETG (about 1.27 g/cm3, tougher, better for a chassis plate or leg link under repeated flex) are the two default FDM materials for this sector.","applies":["desk robot","desktop robot","robot chassis","quadruped","robot dog"],"value":{"table":[{"material":"pla","density":1.24},{"material":"petg","density":1.27}],"unit":"g/cm3"},"basis":"Standard PLA and PETG filament datasheet densities","sources":["hubs-3dp-guide"],"tags":["material","pla","petg"]},{"id":"material-tpu-foot-pad","kind":"material","tier":2,"title":"TPU/silicone for quadruped foot pads and grip surfaces","summary":"A quadruped's foot pad or a rover's bumper uses 85-95A Shore TPU (a dedicated foot pad) or 30-60A silicone (a soft grip overlay), printed or moulded 2-4 mm thick over the rigid foot/bumper core for traction and impact absorption.","applies":["robot dog","quadruped","robot pet","wheeled robot"],"value":{"table":[{"param":"tpuShoreA","min":85,"max":95},{"param":"siliconeShoreA","min":30,"max":60},{"param":"padThickness","min":2,"max":4}],"unit":"mm"},"basis":"Common hobby-robotics foot-pad and grip-overlay material and thickness practice","sources":["hobby-component-datasheets"],"tags":["material","tpu","foot-pad"]},{"id":"test-drop-1m-desktop-robot","kind":"test","tier":2,"title":"1m drop test on corners and base","summary":"Drop the assembled desk robot 1000 mm onto its base, a side and a leading corner (IEC 60068-2-31-style rough-handling shock); passing needs corner/edge radii of at least 2 mm and a shell wall that doesn't crack at a snap or boss root on impact.","applies":["desk robot","desktop robot","companion robot","robot pet"],"value":{"value":1000,"unit":"mm"},"basis":"IEC 60068-2-31 rough-handling shock procedure, applied at a desktop-robot drop height","sources":["iec-60068-2-31"],"tags":["test","drop","shock"]},{"id":"test-tip-over-static-stability","kind":"test","tier":2,"title":"Static tip-over stability test (10deg tilt table)","summary":"Place the robot on a tilt table and raise it to 10 deg on its most tip-prone axis (IEC 60335-1 clause 20, applied here as a desk/floor-robot proxy); if it tips, widen the base footprint or lower the battery/motor mass in the CAD model.","applies":["small humanoid","robot dog","quadruped","wheeled robot","desk robot"],"value":{"value":10,"unit":"deg"},"basis":"IEC 60335-1 clause 20 household-appliance stability test tilt angle","sources":["iec-60335-1"],"tags":["test","stability","tip-over"]},{"id":"test-pinch-point-probe","kind":"test","tier":2,"title":"Pinch-point finger-probe test","summary":"Probe every gap next to a moving joint with the ISO 13482 test finger/rod set; a gap the thicker probe enters but a thinner probe can still reach the pinch line fails, and the geometry must move outside this pack's 5-25 mm pinch-point-clearance band.","applies":["small humanoid","robot dog","quadruped","robot arm","gripper"],"basis":"ISO 13482 personal care robot finger/hand entrapment test method","sources":["iso-13482"],"tags":["test","pinch-point","safety"]},{"id":"standard-iso13482-personal-care-robots","kind":"standard","tier":2,"title":"ISO 13482 -- personal care robot safety","summary":"ISO 13482 sets safety requirements for personal care robots (mobile servant, physical assistant, person-carrier classes), including the finger/hand entrapment and stability provisions this pack's pinch-point and tip-over entries draw on -- the closest formal standard here.","applies":["small humanoid","robot dog","quadruped","companion robot"],"basis":"The safety standard behind this pack's pinch-point-clearance-rule and pinch-point-probe test","sources":["iso-13482"],"tags":["standard","iso-13482","safety"]},{"id":"standard-iec60335-1-stability","kind":"standard","tier":2,"title":"IEC 60335-1 -- household appliance stability clause","summary":"IEC 60335-1 clause 20 sets the household-appliance static stability test (a tilt to a specified angle, commonly applied at around 10 deg, without tipping) that this pack borrows as a desk-robot stability proxy in the absence of a dedicated small-companion-robot standard.","applies":["small humanoid","robot dog","quadruped","wheeled robot","desk robot"],"basis":"The standard behind this pack's com-support-polygon-rule and tip-over-stability-angle-rule","sources":["iec-60335-1"],"tags":["standard","iec-60335-1","stability"]},{"id":"recipe-servo-bracket-sts3215","kind":"recipe","tier":2,"title":"Recipe: STS3215 servo mounting bracket","summary":"Build a 60x30x4mm bracket plate with a 45.6x25.1mm through-pocket sized to the STS3215 servo body (+0.4mm clearance) and two 2.5mm M2 tab holes.","applies":["servo","hobby robot kit","robot arm"],"basis":"Combines sts3215-servo-body-dims and servo-pocket-clearance into one buildable bracket with mounting tabs","sources":["feetech-sts3215"],"tags":["recipe","servo","bracket"],"recipe":{"prompt":"Model an STS3215 servo mounting bracket: a 60x30x4mm plate with a 45.6x25.1mm through-pocket for the servo body and two 2.5mm mounting tab holes","steps":[{"tool":"cad_box","args":{"dx":60,"dy":30,"dz":4},"note":"bracket plate"},{"tool":"cad_box","args":{"dx":45.6,"dy":25.1,"dz":6,"origin":[7.2,2.45,-1]},"note":"servo-body pocket tool, +0.4mm clearance over 45.2x24.7mm, piercing top and bottom"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the servo pocket"},{"tool":"cad_drill_hole","args":{"of":"$2","type":"drill","diameter":2.5,"center":[6,15]},"note":"first M2 tab clearance hole"},{"tool":"cad_drill_hole","args":{"of":"$3","type":"drill","diameter":2.5,"center":[54,15]},"note":"second M2 tab clearance hole (CADSF-1604: expect re-pinned to the analytic 16-face body — the old 596 was a tessellated-era face count of the same body; volume unchanged)"}],"expect":{"volume":2582.68,"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-round-robot-head-eye-cutout","kind":"recipe","tier":2,"title":"Recipe: round robot head shell with eye display cutouts","summary":"Build an 80mm diameter sphere shelled to a 2mm wall (sealed cavity), then subtract two 34mm diameter cylindrical eye cutouts through the front wall for a pair of round eye displays.","applies":["robot head","animatronic eye","small humanoid","robot face display"],"basis":"Combines eye-display-cutout-gc9a01-128 and shell-wall-thickness-print into one buildable round head shell","sources":["gc9a01-module-datasheet","hubs-3dp-guide"],"tags":["recipe","robot-head","eye"],"recipe":{"prompt":"Model a round robot head shell: 80mm diameter sphere shelled to 2mm wall (sealed cavity), with two 34mm diameter eye display cutouts through the front wall","steps":[{"tool":"cad_sphere","args":{"r":40},"note":"80mm dia head sphere"},{"tool":"cad_shell","args":{"of":"$0","thickness":2},"note":"hollow to a 2mm wall, sealed cavity"},{"tool":"cad_cylinder","args":{"r":17,"h":25,"origin":[-20,50,0],"rotate":{"axis":[1,0,0],"angle":1.5707963267948966}},"note":"left eye cutout tool, axis pointing into the front of the head"},{"tool":"cad_cylinder","args":{"r":17,"h":25,"origin":[20,50,0],"rotate":{"axis":[1,0,0],"angle":1.5707963267948966}},"note":"right eye cutout tool"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3","meshFallback":true},"note":"union the two disjoint eye-cutout tools into one tool body"},{"tool":"cad_boolean_subtract","args":{"of":"$1","tool":"$4","meshFallback":true},"note":"cut both eye cutouts through the front shell wall in one pass — meshFallback publishes a TESSELLATED body, so its faceCount tracks tessellation density rather than topology; CADSF-1604 re-measured it at 22726 (was pinned at 3057), volume unchanged at 34539.67"}],"expect":{"volume":34539.67,"faceCount":22726,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel. This recipe passes meshFallback:true, so 22726 is a tessellation DENSITY, not a topology fact — a move in it is a re-tiling unless the volume moves too (CADSF-1604 re-measured it from 3057)"}}},{"id":"recipe-two-wheel-rover-chassis","kind":"recipe","tier":2,"title":"Recipe: two-wheel desk-rover chassis plate","summary":"Build a 120x90x3mm rover chassis plate with two 15x12mm N20 motor slots at the front and a 12mm rear caster hole.","applies":["wheeled robot","desk robot","robot chassis","line follower","sumo robot"],"basis":"Combines rover-chassis-plate-dimension and wheel-tt-n20-motor-dims into one buildable chassis","sources":["n20-motor-datasheet","hobby-component-datasheets"],"tags":["recipe","rover","chassis"],"recipe":{"prompt":"Model a 120x90x3mm two-wheel desk-rover chassis plate with two N20 motor slots and a rear caster hole","steps":[{"tool":"cad_box","args":{"dx":120,"dy":90,"dz":3},"note":"chassis plate"},{"tool":"cad_box","args":{"dx":15,"dy":12,"dz":5,"origin":[5,5,-1]},"note":"first N20 motor slot tool"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut first motor slot"},{"tool":"cad_box","args":{"dx":15,"dy":12,"dz":5,"origin":[5,73,-1]},"note":"second N20 motor slot tool"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut second motor slot"},{"tool":"cad_drill_hole","args":{"of":"$4","type":"drill","diameter":12,"center":[105,45]},"note":"rear caster mounting hole"}],"expect":{"volume":30980.71,"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"}}}]}