Automatic Chicken Door Opener
We calculate the final price from your selected file. You review and accept it before payment.
Saved on this device.
Not an early riser? Release the chickens... with this handy door opener
- Rating
- 5 / 5
- Likes
- 17
- Downloads
- 36
- Makes
- 0
- Views
- 1,368
- Reviews
- 1
Updated at source:
Model information
- Source
- Printables
- Category
- Pets
- License
- Creative Commons — Attribution — Share Alike
Let the birds be the ones that wake up with the birds.

Tried with:
- Eglu Go Chicken Coop (https://www.omlet.us/shop/chicken_keeping/modern_chicken_coop_eglu_go/)
- SunFounder 20KG Servo Motor Waterproof High Torque Servo, SF3218MG Metal Gear Digital Servo, Aluminium Case, Control Angle 270° for RC Robot Cars (https://www.amazon.com/dp/B07VJG5QTJ)
- Raspberry Pi 3 with Raspberry Pi OS Lite, Debian version: 12 (bookworm) installed
2024-11 Changes:
- servo_cover - add channel for holding the servo cord away from the gears
- base_plate - increase thickness of ring holding the handle gear
- gear_for_handle - enlarge the opening for the handle to slip through to accomodate shrinkage from sunlight
- gear_for_servo - fix teeth alignment and add open and close label
Disclaimer:
In printing and/or using this model, you assume all risks and liability including, but not limited to:
- This model is in early stages of development and has not been completely tested for safe operation. Never use this to close the door without being present and strictly monitoring its operation so that it doesn't automatically shut on anyone's toes.
- As an emergency release, the servo cover may be lifted and the gear for the servo removed. Do not fix the servo cover in place with tape or adhesive.
- After installing, the door may be easier to pry open by chickens or other animals since the servo and gears are the only thing holding the closed door in place.
- Make sure that any electronic components such as the Raspberry Pi are properly weather proofed. Also make note that the life of these components may be shortened if not properly ventilated.
- Warning: The servo doesn't know where its current position is. Calling the open.py when already open will close it very quickly (scaring the chickens) and then open it slowly. close.py is similar except goes the opposite direction.
Code:
- crontab -e contains “0 7 * * * /usr/bin/python3 /home/pi/bin/open.py” to open at 7AM
- open.py contains:
import RPi.GPIO as GPIO
import time
servoPIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
p = GPIO.PWM(servoPIN, 50) # GPIO 17 for PWM with 50Hz
p.start(4.125) # Initialization
time.sleep(2)
try:
for x in range(110):
p.ChangeDutyCycle(4.125 + x/16)
print(4.125 + x/16)
time.sleep(0.1)
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
- close.py contains:
import RPi.GPIO as GPIO
import time
servoPIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
p = GPIO.PWM(servoPIN, 50) # GPIO 17 for PWM with 50Hz
p.start(11.0) # Initialization
time.sleep(3)
try:
for x in range(110):
p.ChangeDutyCycle(11.0 - x/16)
print(11.0 - x/16)
time.sleep(0.1)
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()