Out of necessity, I created this large-capacity automatic cat feeder (or AC³ for short) to better care for the stray cats in my neighborhood. The main features I couldn't find in any other automatic cat feeders were large capacity, airtightness, affordability, and camera monitoring.
The AC³ uses an IKEA 365+ basic food container, which is available in 5L and 10L capacities. I used the larger 10L version, which can store up to 5–6 kg of dry cat food—enough to feed several cats for up to a week. I chose this container because it's the biggest widely available and affordable option I could find. It works perfectly to keep the cat food sealed and makes adding new food and cleaning very easy!
It uses a widely available NEMA17 stepper motor, which is more than powerful enough for the job. I also made sure there’s plenty of space to fit all the cables and the Arduino board inside the main body of the feeder.
I designed the feeding mechanism to minimize kibble jams and maintain airtightness as much as possible. The propeller has three blades—one of which is larger and blocks the food outlet. The motor rotates the propeller in such a way that the blocking blade always returns to the correct position after dispensing.
The body part of the feeder is rather a large print, it took around 30h to print the two sides of the base plus the center piece with the connectors, but the result is a solid base for the big food container that should be hard to knock down (unless you have an orange cat, in that case glue everything to the ground 😅). I added some optional legs to rise the feeder if needed.
I mounted an arduino based camera with integrated motion sensor to monitor the cats, it will upload a photo which you can check from your phone every time it gets triggered, making it easy to keep an eye on all the cats coming for food. Although that is a totally different project as I didn't design the code for it and honestly it took me more than a couple of tries to get it working (I found this tutorial particularly useful https://www.niraltek.com/blog/how-to-take-photos-and-upload-it-to-google-drive-using-esp32-cam/)
Being that said here is the list of files to be printed and the extra parts you will need:
Additionally you will need an arduino board, a nema 17 stepper motor, a driver such as the DRV8825, a push button/motion sensor, a 12v power supply and some cables. Also don't forget about the ikea food container.
I suggest you to start printing form the inside out, so print the feeder case, motor cases and the propeller first to start testing and setting up the motor, if you find it works for you and the propellers doesn't jam with your type of cat food you can go ahead and print the rest of the body.
The stepper motor is screwed to the motor_enclosure using m4 screws BUT double check with your specific kind of motor. Attach the wires to the motor and fit the motor_enclosure to the inner_box, place the feeding_tube into the feeder_case hole. Once you have this central part of the build you can enclose it between the outer_box_left and outer_box_right parts using the union bars, make sure to fit the wires of the motor in place with the rest of the components in the space designated for it in the outer_box_right.
You will need to cut a square out of the bottom of the food container, I temporarely placed the feeder_container_join and used it as a guide to mark the outline with a sharpie and then cut the plastic with an xacto knife. Add the propeller, place the food container in place and fix it in place with the feeder_container_join. Glue the legs if necessary.
For the wiring I won't go in depth as I believe there is a lot of information out there, (such this magnific tutorial https://www.makerguides.com/drv8825-stepper-motor-driver-arduino-tutorial/) that explains everything about stepper motors an provides the wiring instructions. I left below a sample code I designed for the testing phases, it will feed some food whenever you press a button. This is the first step to check everything works alright but the possibilities are endless, you could easily set it up with a motion sensor to activate every time a cat comes around, or have it fixed to a hourly activation schedule, or even wifi connection for remote activation.
I believe this is the true spirit of arduino, diy and tailor it to what you like the most!
You could also add the camera part if you want, an outdoor security camera will probably do a better job in terms of image quality, I uploaded some pictures I took with the arduino camera while testing with my indoor cats so you can get an idea. I find them kind of funny! 🤣
#include <Stepper.h>
const int stepsPerRevolution = 800; // Steps per full rotaion
const int sleepPin = 5;
const int motorPin1 = 8; // Pin (STEP)
const int motorPin2 = 9; // Pin (DIR)
const int sleepTime = 1000;
const int numberRevolutions = 1;
bool sensorActivated = false;
int activationCount = 0;
Stepper stepper(stepsPerRevolution, motorPin1, motorPin2);
void setup()
{
pinMode(PIRPin, INPUT);
Serial.begin(9600);
stepper.setSpeed(45);
digitalWrite(sleepPin, LOW);
delay(100);
Serial.println("Sensor inicializado");
}
void loop()
{
if (digitalRead(PIRPin) == HIGH)
{
{
sensorActivated = true;
Serial.println("Sensor activated once.");
delay(400);
if (digitalRead(PIRPin) == HIGH){
Serial.println("Sensor activated");
digitalWrite(sleepPin, HIGH);
for (int i = 0; i < numberRevolutions; i++)
{
stepper.step(-stepsPerRevolution/4);
delay(300);
stepper.step(stepsPerRevolution/2);
delay(300);
stepper.step(-stepsPerRevolution/2);
delay(300);
stepper.step(stepsPerRevolution/4);
delay(300);
}
digitalWrite(sleepPin, LOW);
sensorActivated = false;
}
}
}
}The author marked this model as their own original creation.