MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


Auger-based Cat Feeder

by kitlaan Aug 10, 2012
Download All Files

Thing Apps Enabled

Please Login to Comment

Has anybody tried printing the auger using TPU? It would have some give to it and would probably last much longer.

I can only find online a PVC Tee tube with inner dimmensions of 50mm. Will this work?

Hi, any chance I can use a different motor brand? maybe SpringRC SM-S4303R?


Kitlaan just wanted to say thanks. Finally finished up my own cat feeder. https://youtu.be/qZ4m1Fd1et0

That looks awesome! Very well done.

I am a novice and I have difficulties with the code. What is the difference between feeder.ino and digifeeder.ino. Thanks for your help. I took a big continuous engine also to reduce the blockages that you think: https://goo.gl/dyNfyP

FYI: After 6 years, the auger finally broke. Kibble got jammed enough times that the print finally split down the center axis, near the connection to the servo.

I'm in progress of designing Version 2, which hopefully will support kibble of more uneven shape. Stay tuned.

I noticed that your worm is abit different from many meat grinder ones.
Maybe one designed like this with a larger space between the blades in the beginning could help?

Or a redesign there you put the worm on a shaft and feed the contraption from behind.

Comments deleted.

or i guess easier get it to accept food from behind the screw.
put an angle in and put in a shaft between the motor and the screw.

Hello, im following your model but i see that you got a continuous servo motor, i have one but i don't get it to stop moving, as i see it you would need a regular servo motor to really use the idea any advise?

Sometimes a servo motor "90 degree" zero-point isn't quite right; you may want to tune the arduino code to adjust the min/max values on attach() to figure out the zero-point on yours.

For reference, this is also the reason why code attach(), does motion, then detach() -- since I didn't want to figure out the zero point of my servo (and also the noise of it staying active), I stopped the signal to the servo entirely which put it idle.

The reaons for a continuous-servo is so it can rotate more than 180 degrees. If I were to do it over again, I'd use a now-very-cheap 28BYJ-48 stepper motor. It's quieter and gives much more control, at the cost of a slower rotation.

I'm having a problem with this model. I made this using 2 inch PVC (and I did resize the auger). While its running, it occasionally (every 2 full turns or so) it seems to jam. The auto reverse fixes it some of the time, but quite often, it just seizes all together until either I help it along, or it finally gets it self free (which often takes quite a while). The auger is relatively comfortably fit inside the pipe, but there is a little bit of friction when I manually turned it by itself. I have no idea what could be going wrong!!

Assuming you haven't figured it out by now (and if you have, let me know what was up).

Two thoughts:

  1. The auger+servo isn't completely parallel to the PVC, so as it rotates it rubs and needs more torque to push past. Fix is to try realignment, or just sanding down the auger a bit to hopefully leave enough gap. Of course, this then leads to...
  2. Kibble size and shape. From the picture, the kibble is pretty uniform, but even if the auger is tight against the PVC, the "entry spout" may end up with kibble half in the auger, and thus jammed.

I haven't figured out a good solution for [2] yet, hence the auto-reverse. But hopefully the V2 under thought will come up with a better gravity feed mechanism.

Thanks for the reply! I have not figured it out yet.
I think my problem is #2 considering it seems to be actually jamming, not just struggling. I have sanded it down a little bit so it turns very nicely when there is no food in it. I'm thinking of just putting in a bigger motor, but something simpler would be welcome.

The problem, near as I can tell, is the internals of the PVC T. When the leading/pouring edge of the auger is so full of food that a piece winds up half in the tube, and half above it, it will slam into the vertical wall of the T, and jam. Not much to be done about this if you're using a PVC T. If instead of being a 90 degree angle, it was more like 10 degrees, then the auger could probably push the offending particle up that slight slope, avoiding the jam. Lacking that, I don't think there's any choice but to use the periodic reversal to hope the particles resettle.

I've had to add an agitator to my device. It's working a little too well, ensuring the auger is packed, and resulting in more frequent jams. Ah well.

I love this design, but I have two questions:

  1. If I had a funnel connected between the container and PVC pipe, would it cause the kibble to all try to get into the auger at the same time and jam. (I'm asking this because I noticed your version does not have a funnel.)

  2. Do I have to use a servo, or can I use this normal stepper motor that I already have: ( https://www.ebay.com/itm/5V-Stepper-Motor-28BYJ-48-With-Drive-Test-Module-Board-ULN2003-5-Line-4-Phase-/311567770632?hash=item488ae2e408:g:uSgAAOSwYIxX4ex5 ).

The stepper motor is better -- more torque. You'll have to figure your own way of mounting the auger to the motor shaft though.

Adding a funnel should be fine.

I'm sure I can modify your design to fit my needs. Thanks for answering!

How goes your modifications?

I'm starting a re-design, so would love to hear what went well.

Did you try with a N20 gear DC motor? Driven with a L298N it's cheaper than the stepper motor.

Ordered your parts from one of the printing houses linked here. Thanks for doing this. My daughter needed an "engineering" project for 8th grade and she wanted to do a auto feeder. I looked at a lot of designs and the auger seems one of the most robust. Yeah I know its her project but I'm an engineer so I can't resist "helping"..That said, do you see much clumping where food doesn't drop into the auger? I know it depends a lot on the food type so I told her she should pick a round-ish cat food kibble.
I'm a software developer so the embedded code appears fairly trivial but I had another question. Why do you drive the auger in reverse during each cycle? Is that an "anti-food-jam" approach?

The triangular kibble does have a tendency to jam. The more rounded/ovular kind works well.

Since the motor isn't strong enough to push through jammed kibble, reversing slightly tended to loosen it sufficiently to knock things loose.

This might become an airsoft BB dispenser to make it even easier to demonstrate to her class! :)

That would definitely be a lot less messy. Kibble dust is oh so pleasant to clean...

Hey kitlaan, can you please give a link what kind of PVC tubing you are using?

I got http://www.homedepot.com/p/4-in-PVC-DWV-Hub-x-Hub-x-Hub-Sanitary-Tee-C4811HD4/100343303 which kinda fit, but still I had to fixate it with tape/glue/ropes

No sticker. I measured the ID, and this matches the closest.


Comments deleted.

IIRC, it was a regular T junction. I'll see if it still has the sticker.

А кот то есть? :) где кот??

Is it just me , when i printed out the auger diameter was approximately 46mm but the instruction calls for a 1.5 inch diameter pipe which is around 38mm.

The 1.5inch/38mm tee fittings don't have exact size of 38mm inner diameter, mine has 50mm inner diameter.

Confirming this as well, it's larger than 1.5" (closer to ~1.8). Make sure you resize the auger down to whatever pipe diameter you're using.

Confirming this

Hello! I need some thing like this, but slightly modified, may be you have the Autocad file of your auger_screw?
Thank you!

Every single time I see this item pop-up, I read it as "Anger-based Cat Feeder"...

Comments deleted.


I'm looking to make this design for my own pet feeder. Could you tell me what material you printed on and how did you glue the two halves of the auger?

Thank you!

I printed using ABS plastic, and as such acetone is sufficient to glue the two halves together. If you're using PLA, I believe acrylic cement works pretty well.

Hey kitlaan -- I have a question about the pipe used. In one picture, it looks like a regular straight pipe section. In another it's a T connector. I've found T connectors at Home Depot, but they all have a little ridge inside that prevents the screw from fitting in. So, where did you get yours that didn't have the ridge?

I believe I got mine at Lowes; however, I think it does have the ridge too. I believe I sanded the auger very slightly to make it a tight fit... though it sounds like yours is much oversized.

I'd like to build the cat feeder but do you have the parts list and wiring diagram for the Arduino, and what board do you have on top of the setup as seen on the photo.

The board as pictured is a Arduino UNO w/ a protoshield (for testing). The final product ended up with a digispark (as I had one lying around), but I've also gotten it working on an adafruit trinket too. Basically, the code doesn't take up much space, or need many pins...

You'll need:

  • servo (sparkfun ROB-09347)
  • 12V 5A power supply
  • button + resistor
  • LED + resistor


  • servo signal line went to pin-9.
  • button (active low) to pin-2.
  • led (active high) to pin-13.

Or at least, that's what it looks like (and the code implies). Can't seem to find my notes anymore...

Do you have some close up pictures of the current setup? and what kind of resistors are you using?

I changed to a 12v 5A supply and all seems fine.

finished my build went with an Uno since I had one. everything tested just fine. but then twice after 12 hours or so, (not around when it's happened it just stays running) am just starting to look at the sketch but any thought as to what i am doing wrong? thanks

Are you supplying enough power? On mine, sometimes the servo drew enough power (especially when trying to crank past a jammed piece of kibble) to cause it to self-reset.
What symptoms are you seeing?

Power is 12v 7000mA. As far as i can tell it just keeps running. Servo continues to cycle forward the reverse but no end to feed step.

if you're using the original code, delete the RFID handler (given that it's dead code). So that leaves just the timer or button trigger. If your button is acting weird (plus it looks like I never coded proper debounce logic), then it could trigger.
I'd suggest taking a look at the digi version of the code, and porting it back to the UNO version. Or writing your own based on the same concept -- the only thing really important is the servo control; everything else is just handling time...

hi, if you don't mind which Arduino board did you use and or shield etc. thanks

It went through iterations, which are all mostly similar. Basic prototyping was on an Uno and Pro Mini 328. The actual board that's been running is a digispark -- small, cheap, and power efficient.
If I had to do it again now, probably would have stuck with the Pro Mini, or a trinket.

very useful, thanks! Would you mind posting the trapezoidThread() values of the auger_import();? The default values written in the auger() module in the auger.scad file don't match with the auger_import(). I only want to slightly modify the auger_import();. Thanks in advance.

Hmm... all the copies of the scad file have the same trapezoidThread() values. So if I tweaked them for the publish (which could have happened), I can't find any record of them.

Wonder if the thread library was tweaked at some point? I'll upload the copy I have.

Note you need the screw library by syvwlch found here: http://www.thingiverse.com/thing:8793http://www.thingiverse.com/thi... if you want to recompile

Screw Library
by syvwlch

I uploaded a new arduino sketch (primarily formatted for a digispark, but should work on any) which is massively cleaned-up... Lots of the "planned" features in my original never got done, so code-bloat has been removed.

Thanks a lot for sharing! I like this and I'm in the process of putting one of these together. When I printed the auger I felt like it was going to be a pain to get the two halves completely lined up and get them pressed/glued together. The solution I came up with was to remove a couple of 3mm holes from the bottoms of the two halves, then I printed a couple of 2.9mm dowels to insert into the holes and keep them lined up while gluing them together. Just a tip in case anybody else is feeling the same woes. Thanks again!

Great practical use of the auger screw I must say. I do wonder however if it would be possible to make the reservoir of catfood air tight to keep it fresh for a longer amount of time. I know its probably not critical for this application but could you think of an easy placement of some extra plastic that would keep the container airtight when not dispensing? This is yet another reason I need to get myself a 3D printer.

I like this design. I have one comment on how the printer reacts to this particular auger file. The stepsPerTurn is set to 48 in the scad file resulting in a stepping pattern along the face of the auger. This causes the printer to not operate smoothly during the print. I have rendered the print with a stepsPerTurn value of 360 and it came out nice and smooth.

I figured smoothness didn't matter in the long-run (over print time).  It's been running for 3+ months now with no issues, but it's still not enough time to say for sure :)

Is auger_screw.stl just a combination of all the screw parts and if so (and we have a good enough printer) can we just print that?

Yup, if you have a good enough printer, then printing auger_screw is the same as gluing together the two pieces in auger_screwplate.

Great idea! My cats would have that food bin lid off it 10 seconds!

Thanks for the original idea!

In a house with 4 cats that like waking us up for food in the early morning, this is definitely something we could use. Thanks for the writeup and posting.