Skip to content

Build ~3 min read

at the endEvery clearance in the head as a number, and the fitcheck that proves it.

Measurements

Every clearance in the head is a number checked against the official STEP files. The fitcheck_*.py scripts in hardware/cad/ run the servo (STS3215_03a.step), the Nicla (ABX00051) and the SO-101 leader parts through the CAD; the tests in tests/ pin their results.

SO-101 leader, the parts we touch

part bbox x y z (mm) fate
Wrist_Roll_SO101 65.2 × 52.0 × 42.85 stays, houses servo 5
Trigger_SO101 42 × 61 × 32 removed, its horn flange is the template
Handle_SO101 88.1 × 25 × 60.6 removed, about 85 g off the tip

STS3215 horn

  • 4 × Ø3.2 through holes on a 9.9 mm square, PCD 14.0, Ø5.2 counterbores 3.5 to 6.0 deep, Ø5.2 centre boss
  • flange 3.5 mm (trigger), 3.0 mm (wrist roll); thread 2.5 mm deep behind it, so M2.5 × 5 and no longer
  • body 24.7 × 45.2 × 35.0 to the horn face, horn boss about Ø22.5 (Feetech drawing)

Arduino Nicla Vision

PCB centre is the origin, PCB top is z 0, USB edge is −Y.

feature value
PCB 22.86 × 22.86 × 0.946
camera lens centre (−2.55, +7.84), module top +5.08, barrel Ø5.3
ToF VL53L1X (−3.20, +3.17), 4.9 × 2.5, needs a window
mic port (−7.63, +8.03)
RGB LED (−9.89, +9.89)
reset button (+2.40, +8.67)
micro-USB x −8.81 to −0.01, z −3.70 to −0.75, 1.31 proud of −Y
battery connector x 1.3 to 8.3, 2.95 below the PCB
clearance below the board 3.4 or more
antenna u.FL socket on the top side; exits over the open +Z face (no slot cut, see Decisions)
mounting holes none usable, so a pocket and a snap lid

Mass about 2 g. Power 5 V on VIN or a 3.7 V LiPo on the JST, never both.

The head, as built

body pocket 22.86 + 2 × 0.50, 3.6 below the board, 5.7 above, two 1.7 mm lips, +Z face open
body depth 11.85 mm
horn 6 screws two M2.5 × 5 at (0, ±7) on the 14 mm circle
servo 6 bore Ø22.0, four M2 × 4 tabs
lens to tilt axis 5.88 mm: tilt swings the lens on that arc as well as aiming it (fitcheck_view.py)
pan obstacle the Wrist_Roll_SO101 ledge at z 9 to 11, Ø26.5
tilt clearance head to yoke 9.74 mm through ±90°; servo in yoke 0.00 mm³ intersection
USB 0.31 mm proud of the open face so the plug seats
print rules features 0.84 mm or wider, depth 0.6 or more, any face over 30 mm² in the air gets supports

Power

The leader bus runs at 5 V (PSU 5 V 2 A) and the Nicla takes USB from the arm, cable along the servo bus. The follower bus is 12 V: never plug the Nicla there.

Results per part: Print it. How the numbers become a shape: hardware/cad/yoke.py, hardware/cad/nicla_head.py.