main
John Lauer Publish 0.2.0 791d99c 11d ago

name: sunon-fan-states description: Use when inserting or simulating Sunon MF40200V1-1000U-G99, controlling its GLB rotor off/on/RPM states, or binding measured tach telemetry to its component visualization.

Read states.json and docs/component-motion.md before using this component. This is a nominal envelope and illustrative rotor, not a fully dimensionally qualified twin. The physical fan is 5 V with red supply, black ground and yellow open-collector FG, two pulses per revolution (manufacturer drawing pages 6 and 8). Library lead numbers 1/2/3 are conventions, not a supplied connector.

Use the static STEP for mechanical CAD. Use states/fan-animated.glb for motion. Resolve Fan.Assembly, Fan.Housing and Fan.Rotor inside this imported instance. Play only Fan.Rotor.Revolution: one revolution in one second, rate RPM/60. Housing and supports stay fixed. The supplied controller rejects ambiguous bindings. Off pauses the rotor; stale measured telemetry pauses and labels UNKNOWN. Do not animate from a requested electrical load or assume 7000 RPM is a measurement.

The viewer/ is a thin wrapper around the canonical Adom Babylon viewer. Default state is off and source simulated. Preview motion at 0.02× is labeled; physical-rate 1× is available. Animation never controls hardware. The shared motion schema is proposed; require consumer capability before relying on it in a workcell. Keep static fallback and report unsupported consumers.

For the probing handoff, include the component page, states manifest and hash, instance transform, motion GLB/hash, declared capability and simulated/measurement source. Preserve separate instance animation groups and fail visibly on unknown bindings. Record OFF → ON → speed change → OFF with stationary housing visible.

Gentle hero and explicit wiring variant

Use the root hero GLB for the wiki demonstration and the separate Fan.Rotor.Revolution asset for runtime RPM control. Never autoplay both. The hero has a 20 s gentle cycle and a stopped seam; its 15 RPM visible peak represents nominal 7000 RPM and is never telemetry. Read states.json.heroPresentation for named nodes, timeline and presentation scaling. Keep Fan.Connection and Fan.Housing stationary.

This exact Sunon MPN ships with bare-ended wires, not a connector. Read cad/harness/assembly.json and the README before wiring. The optional Adom harness uses M20-1060300 plus three M20-1180046 contacts, mating with M20-9990346. Red/black/yellow map to Adom circuits 1/2/3, verify the molded triangle and continuity. The cable housing has no PCB footprint; use the separate header footprint. Check strip preparation, insulation OD, unpolarized orientation and crimp qualification. STEP is static; nominal assets do not establish physical qualification.