Skip to content

Doc 1 · How We Got Here — Gimbal Research, Round 1 (Archive)

Engineered Lighting prototype series · July 2026

The project, in one paragraph

We're building the robotic spotlight for the Engineered Lighting fixture: a silent pan/tilt head (smart CAN servo motors, absolute encoders, no homing dance) carrying a high-CRI 3-up LED spot, living alongside the fixture's tunable-white ambient zones, exposed to Home Assistant as ordinary entities and aimed autonomously by a camera-driven perception stack — following people, lighting task surfaces and books, pointing at art when idle, never sweeping across eyes. This seven-document series takes it from research through a working bench prototype to the system architecture, with everything adversarially reviewed and every purchase specified.

The document map

# Doc What it is You buy
1 How We Got Here Round-1 research digest: the physics, vocabulary, and five lessons under every later decision. Archive — read for understanding nothing
2 Choosing the Motors The decision journey to the RMD-L-4005 smart CAN actuators — what was evaluated, why integrated actuators won (decision feeds Doc 3)
3 Build the Gimbal 10-stage bench build: motors answering on CAN by stage 4, a balanced aimed head by stage 8. Full BoM, wiring, code, AI-partner workflow ~$185–290
4 Build the Full Fixture Bench One ESP32-C6 running the whole fixture: 21 tunable-white channels + CC spotlight + gimbal, in ESPHome/Home Assistant ~$170–240
5 Teach It to Aim The perception stack: cameras, ground-plane tracking, beam self-calibration, coordination, safety, user stories, phased roadmap (Phase 0 = a weekend) ~$120–320 per room
6 The Message Contract The one page every component obeys: topics, schemas, units, watchdogs, and the dual-control architecture (HA entities + autonomy without fights). When docs disagree, Doc 6 wins nothing
7 Building the Software The code: pinned stack, repo layout, hardware-free testing (replay cameras, simulated fixtures), deployment, firmware growth path, licensing gates nothing

Reading paths: Building this weekend?Doc 3, then 4 (skim their concepts sections; Docs 1–2 optional background). Understanding the choices? → 1 → 2, then skim 5. Writing the software?67, with 5 as the spec. Total prototype budget, all hardware: roughly $475–850 for one room end-to-end.

Shopping list for this document: nothing

This is background reading — all purchases live in Docs 35. What this doc carries is the understanding: the physics, the vocabulary, and five lessons every later decision rests on.


The question we asked

Can the fixture's fixed spotlight become robotic — a motorized pan/tilt head that aims light anywhere in the room, silently, controlled by software? Round 1 surveyed how everyone else has ever built "a light that moves": stage lighting, camera gimbals, hobbyist builds.

Concepts (plain English — these terms appear in every later doc)

  • Moving head / yoke: the standard mechanical layout for a robotic light. A base rotates left–right (pan); a U-shaped bracket (the yoke) rides on it and tilts the lamp up–down (tilt). Every DJ club light is built this way.
  • Torque: twisting force. Motors are rated by how much they can exert (we use newton-centimeters, N·cm). The tilt motor must fight gravity trying to flop the lamp head downward.
  • Stepper motor: moves in fixed clicks ("steps"), no feedback — you count steps to know position. Cheap, precise, everywhere in 3D printers.
  • Microstepping / silent drivers: electronics that slide a stepper between its clicks in tiny increments. This is what makes modern 3D printers quiet — a measured drop from 74 dB to 35 dB just by swapping the driver chip (TMC-series "StealthChop").
  • Hobby servo: a small motor+gearbox+position sensor in one box (the RC-car part). Convenient, but the cheap internal sensor "hunts" — constantly twitching, audibly, when holding a load.
  • BLDC gimbal motor: the pancake-shaped brushless motors inside camera stabilizers. Direct drive (no gears at all), which is why camera gimbals are silent and smooth.
  • Encoder: a position sensor on a joint. An absolute encoder knows the angle the moment power comes on — no "finding home" ritual.
  • Homing: how a motor system without absolute encoders finds a reference point — usually by driving into a switch or a hard stop at startup. Commercial moving heads do a loud full-range "homing dance" on every power-up.
  • Slip ring vs. service loop: two ways to get wires across a rotating joint. A slip ring (sliding contacts) allows endless rotation but adds noise and wear; a service loop (a slack coil of wire) limits rotation to a turn or so but is silent, free, and reliable.

The five lessons that survived

Lesson 1 — Stage lighting is the right idea at the wrong scale. Commercial "mini" moving heads weigh 1.4–3.6 kg — 10–70× our ~50–150 g spotlight head — and their fans are the loudest thing in the room (a verified purchaser on a well-liked Chauvet: "the fans on these are really loud... very noticeable when [music is] not [playing]"). Even quiet-rated theatrical fixtures measure 39.6–49.5 dBA — too loud for a living room, where the ambient floor is ~30–40 dBA. Design target set here: no fans, motion ≤~35 dBA, zero noise parked.

Lesson 2 — The torque problem is small, and balance nearly erases it. Worst case (150 g head hanging 6 cm off the tilt axis): torque = mass × gravity × radius = 8.83 N·cm. But balance the head so its center of mass sits on the tilt axis (like every camera gimbal requires) and the requirement collapses to ~1.5 N·cm — small enough for thumb-sized motors, and it means near-zero current (silent, cool) while holding position for hours. Balance became a design requirement, not a nicety.

Lesson 3 — Silence favors gearless designs and joint encoders. The quietest documented builds either use steppers on silent drivers (good) or direct-drive BLDC with closed-loop control (best — a documented robot head on gimbal motors: "nearly completely silent," ~350 mA worst-case hold). Hobby servos lose on hunting noise; worm gears self-lock nicely (motor fully off while holding!) but waste >50% of torque to friction and can creep under building vibration. And putting the absolute encoder on the joint itself means the fixture wakes up already knowing where the beam points — the loud homing dance is deleted from the product.

Lesson 4 — Skip the slip ring. Commercial movers all chose limited rotation (540° pan) with a wire bundle over slip rings — and our beam power at 24 V is under 1 A, easy for a service loop of flexible silicone wire. Continuous rotation is a capability the coordinator doesn't need.

Lesson 5 — There's no shortcut through cheap DMX moving heads. Driving a $100 club light over DMX as a prototype fails three ways: 8-bit pan resolution (visible ~2° jumps on slow sweeps), loud fans, and the power-up homing dance. Buy one only as a teardown donor, never as the product path.

What this round got wrong (and round 2 fixed)

Round 1's recommendation — NEMA-11 stepper motors + belt reduction + silent driver chips — was reasonable but built everything by hand: motor mounts, belts, tensioners, encoder mounting, motor-control firmware. Round 2 found the same outcome available as a sealed smart actuator (motor + encoder + tuned controller in one purchasable part, commanded digitally) — fewer parts, fewer failure modes, and it deleted most of round 1's engineering. Read Doc 2 for that decision.

Further reading (the round-1 sources worth opening)

  • isaac879 Pan-Tilt-Mount (the best-documented quiet stepper build; "almost completely silent in 16th microstepping") — github.com/isaac879/Pan-Tilt-Mount
  • ETC's published fixture noise data (the only hard dBA numbers in stage lighting) — support.etcconnect.com (Ambient Fan Noise in dBA of LED Fixtures)
  • Cameo moving-head teardown (how commercial movers home and drive) — hackaday.io/project/28331
  • TMC2208 vs A4988 measured sound test (74 dB → 35 dB) — the-diy-life.com
  • GoodDog gimbal head (the near-silent BLDC precedent, with measured hold current) — gooddog.ai/bumble/gimbal-electronics