{"$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":"core","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":"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":"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"}],"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"]}]}