Sunday, September 20, 2015

Automatic Cat Feeder - Introduction/Overview

Completed Automatic Cat/Dog Feeder

Above, you will see my latest project - the Automatic Cat Feeder. It is Arduino-based, and built with various off-the-shelf hardware, and some parts that I modified.

How does it work? The Arduino is programmed to dispense food @ 5:15AM and 5:15PM for our cats' daily meals. The Arduino basically turns on the motors (1 at a time) to turn the food-dispensing paddle for a pre-determined amount of time to dispense the right amount of food. The food drops out of the dispenser and down the various chutes you see, and into the 3 bowls.

Before I go any further, I must give credit where it is due. First, I borrowed heavily from this guy for the actual dispensing system. Second, I had a couple of issues on the electronics side of things, but the great Arduino community over on the Arduino forums offered great advice to help get past the hurdles. Lastly, driving the motors was made very simple thanks to Sparkfun's motor driver board

Why I created it
Our cats like to be fed at consistent times of the day, and that's not always easy to do. For various reasons, we can't always feed them at the exact same times daily. Sometimes they may be fed hours later for dinner, and we feel really bad about this.

Now why didn't we just buy an off-the-shelf product? We looked into this and found that they were just too expensive, not very flexible, or were easily defeat-able, allowing the cats to gorge on the food whenever they please. I don't like the idea of an inflexible system that I have little to no control of (yes, I may be a bit of a control-freak). If I build my own, then I have complete control of it, so I can change it, add features, etc. myself.

Before starting this project I had a few requirements in mind:

  • Must be food safe!
  • Must be reliable
  • Must cost less than comparable commercial feeders
  • Must be customizable
  • Must have some kind of audio notification to inform the cats that it's breakfast/dinner time

Is that asking too much? Nah

Ok, ok, I know you want to see a video of it in action, so here you go:

I had in my mind that I would build this with network connectivity to give us the ability to monitor/feed them remotely, but for a couple of reasons I didn't. First, this project already took me a long time to get everything worked out, and just wanted to get it installed for them. Second, an Ethernet Shield or Wi-Fi shield are fairly expensive ($35-$45), especially compared to the new ESP8266 (around $4) that's come out recently. I say recently because I actually started this project a couple of years ago. So why didn't I incorporate the ESP8266? I don't know how to use it just yet.

Ok, I'm sure some of you want to know just how much everything costed me. Price breakdowns are in the Bill of Materials (linked above), but the cost of everything was $190. Yes, that's expensive, and a lot more than I was anticipating. The 2 most expensive items were the motors (about $25/ea) and the cereal dispensers (also about $25/ea). That's $100!. Originally, I was going to come up with my own food dispensing system, which would have saved me over $50. Additionally, I feel that if I would have shopped around and done more research I could've cut the cost of the motors in half. As I'll talk about a bit in future posts, I got impatient and decided to just go the route I did.

Also remember that I'm feeding 3 cats with 2 different kinds of food...your situation may not be as complicated.

In conclusion, I wanted to let you know that there will be more info coming. In the next couple/few posts, I will go over some of the challenges I had with this project, hopefully saving you time in the future. I will also talk about the individual components in more detail (yes there will be videos). I'm not going to do a full tutorial like I did for my Garage Door Controller, but there will be some pretty good detail, hopefully enough for you to replicate if you want to.

Below are some links for you to use if you want to replicate this system, or parts of it.

Arduino code on GitHub
Fritzing file (actual .fzz)
Fritzing file, exported to .png image
Fritzing file, exported to .pdf file
Bill of Materials (Excel)
Bill of Materials (Open Office)

I haven't created a 'digital' schematic yet, but if/when I do, I'll update this post with the link to it.

Well, I hope you've found this post/project useful and/or interesting. Feel free to leave a comment if you have any questions/ideas/suggestions.

Want to know what the challenges I encountered, and how I overcame them? Well, that's exactly what my next article is about


  1. Hello, nice job!
    I made one some years ago with an arduino too.
    There was and LCD screen, and you can change the parameters (quantity, time...).
    If you are interested, you can see the plans and the arduino sketch here:
    I have a question: why do you need two voltages: 9v and 12v ?

  2. Hi Antoine,
    Thanks for checking it out! I like your feeder too...looks like you probably don't have to worry about re-filling the 'hopper' for days!
    Yeah, I've read that you shouldn't use the same power supply for your motor that you do for your Arduino (or other electronics). So the 12V is for the motors only, and the 9V is for the rest of the electronics. I'm sorry, but I can't recall the exact reasons.
    Thanks again for checking out my blog/project!

  3. Really cool project! I'm actually working on something very similar myself. Currently having an issue connecting the motor to the cereal dispenser though. Did you replace the shaft in the cereal dispenser to connect it to the motor?

  4. Hi Lawrence! Thanks for checking out my project. Yeah, I didn't go into detail on that part, did I?
    So what I did is buy a piece of aluminum rod that was a bit bigger in diameter than the one that came with the dispenser and the motor coupling. Then I just grinded down the diameter on both ends to fit the coupling and the 'paddle' of the dispenser. Of course I had to 'flatten' out the side for the dispenser since that's the shape of the hole for the flapper.
    It was all very crude, and very hacky, but it works!
    Thanks for again for stopping by Lawrence!

  5. Thanks for the quick reply Jamie. That makes sense. I initially tried to use a wooden dowel that I modified in a similar fashion and cut out the flat side, but the wood broke apart under the torque. I have some steel rods from a printer that I might try and grind down like you did. Thanks for the info!