Introduction: Fat Cat Automated Arduino Pet Feeder

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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!


eric gani (author)2017-11-13

i want this project,please email me this programmer on

tarzan0493 (author)eric gani2017-11-13

Hi there! Thanks for checking out my build. There is a screen shot of the code in Step 7.

Hope that helps!

actuonix (author)2017-01-17

Great Instructable, thanks for sharing!

tarzan0493 (author)actuonix2017-06-06

Thank you! Hope you enjoyed!

guit-guy (author)2017-01-09

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.


tarzan0493 (author)guit-guy2017-06-06

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!

AdvaitJ2 (author)2016-09-05

great idea can you tell me a method and the arduino code to do the same with dc geared motor

tarzan0493 (author)AdvaitJ22016-10-11

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.

AdvaitJ2 (author)tarzan04932016-10-11

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 -
Thank you for your time and please guide me in this

nrsaadahzl (author)2016-10-10


can i have the source code? i want to make it ASAP for my school project :)

and i use the arduino uno.

tarzan0493 (author)nrsaadahzl2016-10-11


The code is available in Step:7 of the Instructable!

Good luck on your project and let me know if you need any help.

nrsaadahzl (author)tarzan04932016-10-11

ookayy i saw it :)

thanks for the respond !

RobDeVoer (author)2016-06-16

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.

trevantr (author)2016-05-15

Nice project

lifeinbeats (author)2016-04-30

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!

tarzan0493 (author)lifeinbeats2016-04-30

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!

MaxB71 (author)2016-04-22

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

tarzan0493 (author)MaxB712016-04-23

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!

MaxB71 (author)tarzan04932016-04-23

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

tarzan0493 (author)MaxB712016-04-24

No worries! Good luck with the project. If you run into any problems or have any questions, please let me know.

Happy building!

ken00 (author)2016-04-19

Hello, i an new and have a little knowledge about electronics and programs but i know well in following directions i want to ask if this set up feeds your pet in a regular basis no intervention needed and how many times a day it feeds the pet. One more i am from other part of the world will it have a problem regarding the time it feeds the pet

tarzan0493 (author)ken002016-04-19

Hi there! So this set up does feed him on a regular basis. I have an AC adapter for my Arduino, so it is plugged into the wall and on all the time. The code I have above feeds him .65 cups of food every 8 hours (3 times in 24 hours). The way the code works is that after it dispenses food, it waits for 8 hours (28800000 seconds) before it dispenses again, and it just continues that loop of feeding then waiting. There is no clock involved so it will start the feeding cycle whenever you first plug it in.

ken00 (author)tarzan04932016-04-19

Thank you for your reply can i calibrate/edit the code for the arduino to suit my dog's meal amount? my dog is husky crossed rottweiler with a big appetite?

tarzan0493 (author)ken002016-04-20

Yes you sure can. All you have to do to change the feeding amount is change delay(2000) for the feeding amount and delay(28800000) for the feeding time. When you're programming an Arduino, 1000 = 1 second. So if you want it to wait for 4 seconds you would change it to delay(4000).

I would recommend that you make the feeder taller too since your dog is a fairly large breed. You may also want to think about putting a larger container on top to hold more food.

Dram229 (author)2016-04-18

Great idea. I'll try to put one together as well. Thanks for publishing.

tarzan0493 (author)Dram2292016-04-18

No problem! Good luck with yours!

tinaciousz (author)2016-04-18

Move that food! Nice project :)

tarzan0493 (author)tinaciousz2016-04-18

He wasted no time getting to the food, believe me. lol

Dram229 (author)2016-04-18

Great idea. I'll try to put one together as well. Thanks for publishing.

DIY Hacks and How Tos (author)2016-04-17

Nice. My cat needs one of these.

Thanks! So far Duke seems to like it. We'll see if he lets me sleep

About This Instructable




Bio: I am a Computer Scientist with a passion for tinkering and programming. There is great joy in taking something apart to find out how it ... More »
More by tarzan0493:Fat Cat Automated Arduino Pet Feeder
Add instructable to: