Do you own a 3D printer and would like to start a complex and challenging project? Then let’s print a fully functional, programmable cat or pet feeding device! π
In this multi-part series, I will guide you step by step through the printing and assembly process of all mechanical parts. I will also provide PCB layouts and examples for the required electronics, except for the controller. Here, the range of suitable controllers is too large to restrict you to a single solution.
I will provide all required files for free under an open source license.
About the Device
If you follow my blog, you may remember the original prototype of the cat feeder from 2017. After a few months in use, I started to develop an improved version of the device.
I went through several iterations using different technologies, but finally – as a result of the pandemic – the 3D printed version was the only feasible one. π

Composition
There is a turntable in the upper section of the device with five compartments. One of these compartments is aligned over the output funnel.

In the lower section is the gear box. It is a fully 3D printed worm drive, controlled using a NEMA 17 stepper motor.


Sensors

Under the platform, which has a transparent top layer, there are holes for sensors. Each compartment has a simple fill sensor using a IR LED and IR sensor. Also there is a position sensor, to align the turntable.
Interface Panel

On the front side is an input panel, with a four lines LCD display and a rotary button for inputs. Below this button are four LEDs to display various states.
Mode of Operation
The working principle is very simple. You fill dry food or treats into the compartments, at a specified time, the turntable rotates and the food falls through the output funnel into the bowl.
My design uses sensors in each compartment to program the device, just be putting food into them. Imagine this implementation:
- The first compartment is defined for the food while you are at work. If you fill it, the food gets dispensed at 2 pm.
- The second compartment is for food if you work late and gets dispensed at 8 pm.
Without the sensor, the device would just rotate the turntable at 2 pm and 8 pm. This could irritate your pet, because, if it hears the sound of the rotating turntable, it expects a treat or food. Using the sensors, filling the compartments will “program” the device. So if you fill just the second compartment, the turntable will only rotate at 8 pm, even if you fill it in the morning.
This is just an example how you could implement your controller. It is your choice, if you add all these sensors, or just the position sensor.
Requirements
Required Mechanical Parts
- M3 screws with flat heads in various sizes (8mm, 12mm)
- M3Γ5mm grub screws.
- Rampa M3 Γ 8 Γ AD6mm insets or compatible.
- Long M3 screw (>40mm) to insert the insets.
- 2 Γ ball bearing 6200 10Γ30Γ9 mm
- 2 Γ ball bearing 16004 20Γ42Γ8 mm
- NEMA 17 stepper motor with 5mm diameter D-shaft (almost any variant will work).
3D Printer Requirements
- Largest parts are 180 Γ 196 mm, you need a printer bed matching this size.
- 0.4mm nozzle.
- You can print PETG and PLA.
I recommend printing most of the parts using PETG, except a few parts which need to be printed with PLA, because of the stiffness. If you following this guide, I assume you have enough 3D printing experience to replace the materials with matching ones if you like.
Electronic Component Examples
The following components are the ones I use in the shown images. The panels for the enclosure have holes which fit these components perfectly. Feel free to use your own components and design your custom input panel.
- Input panel:
- Bourns PEC12R-4215F-S0024 rotary encoder.
- Three 5mm LEDs and one 5mm RGB LED.
- Matching SMD resistors for the LEDs.
- Adafruit 20×4 LCD Display.
- Cliff CP30207NMB USB Adapter.
- C&K DA102J11S215PQF switch.
Filament Recommendations
- Use a Prusa i3 MK3s printer.
- Use Prusament PETG:
- “Galaxy Black” or “Signal White” for the outer case.
- “Urban Grey” for the gearbox.
- Use Prusament PLA:
- “Galaxy Black” for the axes and the platform.
The Base Plate and Gear Box
Let us start by printing all required parts for the base plate and the gear box. You will find all required files in the GitHub repository:
The Base Plate

- File:
LR2051-401A.stl
- Material: PETG (Galaxy Black)
- Layer height: 0.2 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Easy
The Gear Box

- File:
LR2051-101B.stl
- Material: PETG (Urban Grey)
- Layer height: 0.2 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Medium
- Notes: Make sure there is no warping!

- File:
LR2051-102B.stl
- Material: PETG (Urban Grey)
- Layer height: 0.2 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Medium
- Notes: Make sure there is no warping!

- File:
LR2051-103B.stl
- Material: PETG (Urban Grey)
- Layer height: 0.2 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Medium
- Notes: Make sure there is no warping!

- File:
LR2051-104B.stl
- Material: PETG (Urban Grey)
- Layer height: 0.2 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Easy

- Files:
LR2051-105B.stl
(2x)LR2051-121.stl
LR2051-122.stl
LR2051-123.stl
LR2051-124.stl
- Material: PETG (Urban Grey)
- Layer height: 0.2 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Easy

- File:
LR2051-107B.stl
- Material: PLA (Galaxy Black)
- Layer height: 0.2 mm
- Print bed: Smooth
- Supports: Minimum two raft layers
- Difficulty: Hard
- Notes:
- Add a minimum of two raft layers.
- Make sure the axis is oriented as shown.
- Preheat the print bed and avoid a cold room temperature.
- Carefully check for warping after print.

- File:
LR2051-108B.stl
- Material: PLA (Galaxy Black)
- Layer height: 0.1 mm
- Print bed: Smooth
- Supports: Minimum two raft layers
- Difficulty: Hard
- Notes:
- Add a minimum of two raft layers.
- Make sure the axis is oriented as shown.
- Preheat the print bed and avoid a cold room temperature.
- Carefully check for warping after print.

- File:
LR2051-111B.stl
- Material: PETG (Urban Grey)
- Layer height: 0.1 mm
- Print bed: Powder coated
- Supports: Add 10mm brim
- Difficulty: Hard
- Notes:
- Add 10 mm brim.
- Make sure the part is printed oriented as shown.
- Preheat the print bed and avoid a cold room temperature.
- Carefully check for warping after print.

- File:
LR2051-112B.stl
- Material: PETG (Urban Grey)
- Layer height: 0.1 mm
- Print bed: Powder coated
- Supports: No supports required
- Difficulty: Medium
- Notes:
- Preheat the print bed and avoid a cold room temperature.
- Carefully check for warping after print.
Bearing Mockups
Optionally, you can print the bearing mockups, the files LR2051-821.stl
and LR2051-822.stl
. You can use them temporarily as replacement for the ball bearings.
Conclusion
This is the end of the first part. In the next part of this series, I will talk about the assembly and how to properly insert the insets into the printed parts.
If you have any questions, missed information, or simply want to provide feedback, feel free to comment below or contact me on Twitter. π
More Posts

Better Bridging with Slicer Guides

Rail Grid Alternatives and More Interesting Updates

The 3D Printed Modular Lantern

The Hinges and its Secrets for Perfect PETG Print

Candlelight Emulation β Complexity with Layering

Great project!
I’m searching a litter box DIY project, something similar to CatGenie. Please, could you do such project? Cat lovers we would be eternally grateful to you!
Thank you very much!
Currently, I have no plans for a DIY automated litter box. π As an engineer, I try to follow the KISS principle as good as possible. I had a look at some of these litter boxes, but with all the mechanical parts they have, I guess they will stop working after a few years. π
Thanks for quick reply π
Few years? We are 3D makers, few year*s* is more than enough π