Introduction: Fat Cat Automated Arduino Pet Feeder
Everybody say hello to Duke! He is a 24 pound Maine Coon that I adopted three years ago. Duke enjoys laying in the sun, watching the birds outside, and....waking up his owner at 5 o'clock in the morning for breakfast. As you can imagine, if you have a 24 pound cat sitting on your chest early in the morning, you have no choice but to wake up, gasp for air, and feed the beast. I know what you're thinking, "why not buy a pet feeder?" Well the answer I have come up with is...(pause for dramatic effect)...buying a pet feeder is boring and easy! I will instead build one! As a college student studying Engineering, I have enough of a DIY background to compete the task, but let's see if we can maintain a college student budget and complete the feeder for under $100.
Step 1: Parts for the Feeder.
So here are the main ideas behind the build. Let's build it for under $100 and let's see if we can make use of other products to make the build simpler.
Here is the parts list:
- Home Basics Cereal Dispenser - (Ebay $17.75)
- SPRING SM-S4303R JR interface 360 Robot Servo Large Continuous Rotation - (Ebay $8.90)
- 12"x12"x1/4" project board - (Michael's $4.90)
- 16 Hz Arduino Uno R3 - (Ebay $3.50)
- 4x 1" right angle brackets- (Home Depot $1.97)
- 1 pack of 24x1/2" zinc screws and bolts - (Home Depot $1.18)
- 2" PVC 90 degree elbow - (Home Depot $.98)
Step 2: Getting Started: the Body
I had originally planned to build the entire thing from scratch but the more plans I drew out, the more complicated it became. So I thought, "What is something that already dispenses that is cheap and easy to modify?" Viola! I give you the hand crank cereal dispenser. Perfect!!! It already has dispensing capability and it should be fairly simple to connect a servo to it.
So an Ebay buy and a few days of shipping later, I was ready to get started.
Step 3: Crank/Servo Assembly
The first thing I did was modify the crank that comes with the dispenser. I cut off the handles until only the middle cylinder of the crank was left. After a little bit of sanding I was able to attach one of the smaller servo rotation discs with some small screws that were provided. After that was finished all that was left was to attach the disc to the servo.
(Note: I highly recommend you buy a servo kit with multiple rotation attachments in case the dispenser you buy has different dimensions for the crank.)
Step 4: Front Panel
After that, I constructed the front face of the feeder. I cut a piece of project board to the proper dimensions so that it fit snugly to the front and provided a good amount of cover for the electrical components. Once that was cut and sanded, I attached 4 right angle brackets to the edges to that I could mount it to the front of the feeder. Then I drilled two holes on each side to attach the panel to the body of the feeder. The bolts and nuts make it incredibly easy to disassemble and reassemble.
(Note: I recommend you buy right angle brackets that are a little bit bigger. The 1" brackets I bought work but the screws touch on the inside corners.)
Step 5: Dispensing Funnel
This was the easiest part. I used the mouth of the pipe to trace an outline on the front panel. Then I attached the angled pipe to the bottom of the dispenser using hot glue.
(Note: Make sure you check the fit of the pipe and the front panel before you hot glue the pipe in place.)
Step 6: Securing Servo
Now that all of that is done, we can attach the servo so that it won't move while turning. Here I used two wood screws through the bottom mounting holes of the servo and screwed them into the wood.
Step 7: Programming the Arduino
Now for the really fun part! We need to program the Arduino so that it dispenses food at certain times of the day. I tried to keep the code as simple as possible. I looked up how much food and how often throughout the day Duke needs to be fed based on his current age, weight, and breed. So the feeder will dispense .65 cups of food every 8 hours. Feel free to modify the feeding time and amount based on your pet's needs. The pin outputs will stay the same.
(Note: If you want cheap wire to connect your Arduino to the servo and use on other projects, Home Depot and Lowe's carry spools of telephone jumper wire. It's cheap-color-coded-copper wire.)
Step 8: Connecting Everything and Testing
Now that we have the code written, we can connect the Arduino to the servo to test everything out. The connections are as follows:
Black Servo Wire - Arduino GND
Red Servo Wire - Arduino 5v
White Servo Wire - Arduino Pin 13
After you have tested that everything is working properly, you can secure the Arduino in place. My Arduino has a 3D printed case that I made for it. This made it really easy to just hot glue the assembly to the inside if the pet feeder.
Using what was left of the project board, I cut out a back panel for the pet feeder, making sure to leave room for the power cord.
The final modification I made was adding legs to the feeder to raise it up above the pet food bowl. For the legs I cut 4 2" pieces of dowel rod I had laying around. They I hot glued some foam to the bottom of the pieces so they don't scratch the floor. All that was left to do was hot glue the legs to the feeder and...IT'S DONE!
Step 9: Finished Product
Here it is in all its glory!
Total cost for the project = $39.18
I hope this inspires you to build your own programmable pet feeder!
Happy building!

Participated in the
Make it Move Contest 2016
31 Comments
6 years ago
i want this project,please email me this programmer on ericgani5294@gmail.com
Reply 6 years ago
Hi there! Thanks for checking out my build. There is a screen shot of the code in Step 7.
Hope that helps!
6 years ago
Great Instructable, thanks for sharing!
Reply 6 years ago
Thank you! Hope you enjoyed!
6 years ago
Hey there,
My first Arduino project! Woo hoo!
Quick question regarding power supply to the Uno/servo.
Operating voltage on servo is 4.8 to 7. If I am running a 9 volt power supply to my Uno, will the 5v out on the uno work fine? Or should I get a 5v adapter.
Jonny
Reply 6 years ago
Hi there! The 5V power supply coming from the Uno has been ok so far. I think the real difference is that having it plugged into the wall provides the Uno with a little more amperage that helps turn the servo. Just as an experiment I plugged a 9V battery into the Uno and noticed that the servo has a lot more trouble turning the crank to dispense the food. Hope this helps!
7 years ago
great idea can you tell me a method and the arduino code to do the same with dc geared motor
Reply 7 years ago
Hey there! Sorry for the delay in response.
If you're going to use a geared DC motor, you will need to implement an H-Bridge into your design or build your own motor driver using transistors. I will include a link for both below courtesy of two other Instructable user. The biggest problem with either of these methods is that you will have to have separate power sources for your Arduino board and motor.
Hope this helps.
https://www.instructables.com/id/MOTORS-BASICS-Fina...
https://www.instructables.com/file/F9LKDFGGU7FXUMH/
Reply 7 years ago
Hello bro thanks for your response
Please guide me through the codes as I am a begginer and I know a very little about arduino
I can use a continuous rotation servo for it but please send me the code and methods to my email
That is - advaitnaresh@gmail.com
Thank you for your time and please guide me in this
7 years ago
INTERESTING!!!
can i have the source code? i want to make it ASAP for my school project :)
and i use the arduino uno.
Reply 7 years ago
Hello!
The code is available in Step:7 of the Instructable!
Good luck on your project and let me know if you need any help.
Reply 7 years ago
ookayy i saw it :)
thanks for the respond !
7 years ago
Nice idea using the cereal dispenser as a starting point. Now I just need to find one of those here in New Zealand. :)
Thanks for sharing.
7 years ago
Nice project
7 years ago
About halfway through (bought all materials, have arduino programmed, waiting for glue to dry on crank). I had some thoughts already that could be fun to experiement with:
- Taking a cue from the 3D printed pet feeder 'ible, you could have the servo rotate a tiny bit backwards before going forwards to dispense the food. Seems like that might clear up any jams.
- I had issues with my Arduino board resetting from the high power draw to start the servo (same board and same servo as listed). I slowed the speed of the servo down and haven't had any issues with it yet (servo.write(30)). One of the potential problems, though, is that the slower the servo the less torque it has as well. So I'm hoping that when's it all assembled, it will have enough power to turn the rubber fins, which seem to be incredibly sticky.
- If the slower speed isn't powerful enough to turn the crank, I may have a possible solution. The servo was turning after the initial delay, then the arduino would reset and the initial delay would start over. In application this would essentially just feed my food crazy cats every 3 seconds until they food coma'd next to the bowl. If the speed is indeed an issue, I'm thinking that if you just set the initial delay to 8 hours and planned accordingly, it would work as it's supposed to even if it resets after one cycle.
Will post more when I finish up and test this thing out. I'm hoping that turning force and jamming aren't an issue for me. Thanks for this great 'ible!
Reply 7 years ago
Glad to hear the build is coming along. When you're testing the servo rotation, make sure you plug the Arduino into the wall. The amperage from a wall outlet is greater than the amperage from the USB outlet on your laptop. You'll notice a big difference in the torque the servo has once it's plugged into the wall. I had mentioned to "MaxB71" that I would eventually add an H-Bridge so that I could add in a reversing function to clear any jams. Hopes this helps and happy building!
7 years ago
Nice build! I really want to make it myself, but I see iffy reviews about the "Home Basics Cereal Dispenser." Have you run into any problems with it? I'm assuming that dispenser just has a little auger in it? A lot of reviews said the crank breaks very easily, but since you modified that piece to attach to the servo perhaps that problem no longer exists?
Most other builds people are doing use plastic augers, but unfortunately they all 3D print theirs. And by unfortunately, I don't have have a 3D printer haha
Reply 7 years ago
Hi there! It looks like someone has done their research, just as I did when I started this project. The home basics cereal dispenser does have bad reviews mainly because of the crank but since I knew I was going to modify that part, I wasn't worried. In fact, since the reviews were not good for the dispenser, it meant that the dispenser would be easy to find for a cheap price. The auger on the inside is a rubber paddle auger. It has to be rubber so that it does not crush cereal while it is rotating.
Ok so now to the 3D printer dilemma. This is the exact problem that I came across. The best design I found online included a 3D printed auger that would dispense the food fed by gravity. One problem though, I don't have a 3D printer (unfortunately). So far I have not had any problems with food jamming. Eventually what I want to do is add an H-Bridge so that I can program the servo to rotate forward and backwards to clear any jams that may happen. Hope this helps!
Reply 7 years ago
Thanks for the reply! Yeah I've been obsessing over this idea for a while now haha.
Thanks to you this is gonna by my first Arduino build! I've already ordered some parts, and now that you've reassured me on the cereal dispenser, I shall order that too.
Good point about the anti-jamming function. I'd offer some advice, but I'm the epitome of a greenhorn in this field lol
Reply 7 years ago
No worries! Good luck with the project. If you run into any problems or have any questions, please let me know.
Happy building!