NM Robotics
Fully 3D-printable animatronic eye mechanism compatible with hobby electronics and micro servos.
The EYEMECH ε3.2 mechanism can be entirely 3D printed and built using common hobby electronics.
Recommended components and community:
- Website: https://nmrobots.com/
- Discord: https://discord.gg/qXKNRgHKNB
Suitable for experienced beginners in 3D printing and electronics.
- Some dexterity required
- Support removal can be delicate
Choose one:
- M0090 — Quiet, strong, sturdy - our new favourite and possibly our new standard in the future
- SG90 — Low cost, weaker/slower
- MG90s — Recommended balance of cost and power
Other similar-form servos may work but are not fully tested.
Choose one:
- Realistic Eyes
- Ultra Realistic Eyes
- DIY 3D printed eyes
- 1x Eye Mechanism Controller Board
- Optional: 1x Handheld Controller Board
Instead of the official board:
- Raspberry Pi Pico
- Breadboard
- Jumper wires
- Two-way switch
Note: Reliability may be reduced compared to the dedicated board.
- Reliable 3D printer
- PLA filament (quality recommended)
- Scraper tool (for supports)
- Data-capable USB cable (not power-only)
Two variants are available:
| Factor | ε2 (Snap-fit) | ε3.2-PIP (Print-in-place) |
|---|---|---|
| Ease of Printing | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Post-processing | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Ease of Assembly | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| Accuracy | ⭐⭐⭐⭐ | ⭐⭐⭐ |
If unsure:
- Use MG90s servos
- Choose ε3.2-PIP (Print-in-place)
Due to servo manufacturing variations:
- Print the servo fitting block
- Test which hole fits best
- Select the matching lettered parts
- Fit should be tight but not damaging
All parts fit on a Bambu X-1 Carbon or P1 series printer.
- PLA recommended
- 0.2mm layer height
- Organic/tree supports recommended
- Ensure pivot rods/rings are parallel to bed
- For ε2: pivot openings facing down
- Remove supports carefully
- Avoid stressing delicate pivot features
Video guide:
https://youtu.be/MeHLouL9ltw
- Insert servo into X-Axis Subassembly A
- Clip Y-Axis Subassembly on top
- Attach central pivot holders
- Attach X-Axis Subassembly B (leave loose)
- Snap assembly into main base
- Attach eyes
- Attach eyelids (top = short levers, bottom = long)
- Snap outer eyelid pivots underneath base
- Install remaining 5 servos
- Secure with retainers
- Insert PCB holders
- Snap PCB into place
Compatible with:
- NM Robotics β1.2 EyeMech Board
- Raspberry Pi Pico
-
Download MicroPython firmware:
https://micropython.org/download/RPI_PICO/ -
Install Thonny IDE:
https://thonny.org/ -
Hold BOOT while plugging Pico into PC
-
Copy
.uf2firmware to device
Official guide:
https://www.raspberrypi.com/documentation/microcontrollers/micropython.html
Install via Thonny:
- picozero
- micropython-servo
Steps:
- Select interpreter
- Tools → Manage Packages
- Install from local file
- Open
EyeMechEpsilon3.py - Run to confirm no errors
- Save as
main.pyon Pico
This enables auto-run on boot.
| Pico Pin | Connect To |
|---|---|
| VBUS (5V) | Servo Power (Red) |
| GND | Servo GND (Black/Brown) |
| GPIO10 | Left/Right |
| GPIO11 | Up/Down |
| GPIO12 | Top Left |
| GPIO13 | Bottom Left |
| GPIO14 | Top Right |
| GPIO15 | Bottom Right |
| GPIO7 | Mode Switch → GND |
- Set board to Hold
- Power on
- Eyes centered and forward
- Lids closed meeting in middle
- Secure servo horns
Up/Down servo may need temporary removal for access.
- Move Mode → Random movement
- Controller Connected → Manual mode
- Joystick = Eye direction
- Button = Blink
- Rear slider = Default eyelid openness