There is a remarkable variety of features people seem to want in something so simple, so I started with the fundamentals: reliability and low cost.

I looked around and while there are a great number of cat feeders published, there are severe problems with all of them:

-unreliable, including due to complexity and possibility of build errors, part breakage, jamming.  Not clear if the system was made strong enough in the right areas etc. also may not work for other kibble types that the maker did not test etc.

-expensive

-labor intensive to print, assemble, program, wire and/or use.

-hard to source parts

-not modular/readily hackable

-no source code.  STL files are not source code, they are semi compiled, sort of more halfway between binaries and source code; they are hard to modify cleanly.

Although some of these designs are clearly produced by very skilled people, and the prints are good, the auger design for instance is fundamentally inadequate because kibbles tend to get caught in the mechanism.  Secondly they jam due to bridging and other reasons.

Although clearly a lot of work went into them, it was pretty clear I did not want to actually build any of them, given the high chance of it not working and just sapping my time anyway.  I asked myself if I could think up a really reliable low cost and and easy to make mechanism.  I came up with a promising idea and went for it.  If I could not I would have bought one instead.

The major problem with every single design I found was the jamming and cloggage issue, combined with weak parts and lack of source code to even rectify the issue.  The augers and rotating paddle wheels can get kibbles in where the parts come close together, in every case.  Commercial feeders overcome this by making those parts out of rubber so that the parts just bend out of the way and things can still work.  

That's a possibility and I can print out of TPU but it's better to just design things so the kibble is poured and moved around in a different way.

I considered the use of an archimedes screw, which is probably a good idea, however it is considerably more complex and expensive than this mechanism. 

Google drive, with manual and the latest source code will be there: https://drive.google.com/drive/folders/1OKfPI49vfLiHCHYxxus5mOJ-Af9_RXgy?usp=sharing

Features include:

-hopper size is about 1.3 liters.
-scoop size/dispensing is very consistent but you need to weigh how many scoops exactly equal how many grams for your exact kibble
-Web browser interface - enter the IP address.  The ip address changes sometimes, though, it's DHCP based, so use Fing or another network analyser to tell you the ip address of the device if that happens.  A static ip address is possible, that's just another (small) project for another day. 
-MQTT interface.  I use adafruit.io.  This is a generic, broadly compatible internet-enabled interface that allows you to trigger dispensation of any number of scoops from anywhere, even away from home.  You can make it interface to google home, amazon Echo etc. Although I'm not too clear on how I have read there are several ways to do it.
-Hackable, maintainable, modifiable, modular.  Anything that you break or which in the many years ahead wears out can be replaced!  Right to repair. You can tweak and re-program it to your heart's content, interface it to other devices through the WiFi interfaces or even get in there and connect to the microcontroller pins, if you want.

-Sets it's time automatically over the internet, so no problem with power outages
-convenient interface for rechargeable, automatic-charging backup battery. (4 AA NiMH with a 1 ohm 10 watt resistor, see manual for details).

-You can use any bowl you want, or slow feeder devices or whatever you wish.  The dispensing mechanism is reliable without the need for sensors, so the system is simple that way!

Some of these designs would cost hundreds of dollars to make, and some use motors that cost than this entire machine.

I also looked carefully over the amazon reviews of the other feeders and identified common pitfalls, and I think I have avoided pretty much all of them here. 

This seems to be quite reliable now, after I overhauled the micropython firmware.

It can also be accessed over adafuit.io or other providers through MQTT. You get status updates and can tell it to dispense food from anywhere at any time through the internet.

The advanced features like the cloud software used by other feeders can be used in combination with this device, if it is well designed (which implies modularity), however that is another project for another time which I personally have no use for so I doubt I would undertake.

You program as many feeding times as you want through the wifi interface, just enter the ip address of the device in your web browser.  See the manual for details.

Kibble capacity could be increased by making the drum longer esp if you use a 270 degree servo, which helps.

This actual design could use some further testing (don't let that scare you off, it's good as far as I can tell), but I think it's off to an excellent start as the design is inherently clog proof, the electronics are well tested on a hardware level (standard, widely used components), mechanically simple, plenty strong etc.

There is no need for unusually good printing or anything.  You can bang it out on nearly any printer and not have problems.

It is modular and easy to interface to so it can be used for training or even in research to train or do reinforcement.

The scoop can be swapped for a smaller one, so you can use a larger or smaller scoop. I found I had no problem getting 0.7 to 1.8 grams dispensed per scoop. A small number is good for training, larger is a little easier for normal feeding because it's a bit less wear and tear on the servo.

I recommend the full metal gear mg995 or similar servos from aliexpress, they are a pretty good deal and come with the servo horn and screws.

You can use standard M3 and M2 screws but I like the self tapping kind.  The holes are the right size that screws grab well in my experience, but you need to make sure your printer is reasonably well tuned to get adequate tolerances for proper operation in that department.  The self tapping screws give you more wiggle room.

There is a manual and a bill of materials (parts list) on the google drive, also information about wiring and setup and assembly. 


Check the drive for the latest source code too, I can't keep uploading it to the hackaday so if there are changes it will be there.  I can't use github because you can't upload files more than 5 Mb there.  Google drive is fine except it's not persistent long term.

https://drive.google.com/drive/folders/1q_JFGuSaOgExdBtov9I0X2NE5eZC3rMr?usp=drive_link

This cults 3d thing is so you can kick me a beer. Please do if you can because I'm not a wealthy man.

Total cost is maybe $30 USD: $12 for filament $7 for pico W $5 for servo. + a little extra for screws, the electrical connectors or whatever.

Most people have usb adapters and micro usb cables kicking around so that hardly counts.

Export the stl files from the fusion file, that's the source code. I don't post STL files because they are impractical to modify and I have to keep updating them which I never have time to do so you get all these old files kicking around and it's a mess.

Edit:  I got it working with a 270 degree servo, which make it quieter, last longer, and works with crummier power supplies, because it doesn't have to shake (which draws a lot of current and can cause some shitty plastic geared servos  to fail, but that's the servos fault as it should be able to stand the stall torque with no issues) to get the kibble   to flow at the zero degree position, you could have just turned that feature off with a 180 degree servo but this is just a bit more of the best of both worlds.

360 degree servos are actually just gearmotors.  They could work but it's a bit crude, you would have to turn it on for A seconds in one direction and B in the other, and it would never go back quite to where it should or end up quite where it should.  There is a range that's acceptable but anyway it is kind of a drag and that would be further investigation for another day. An *actual* 360 degree servo would be good.  Servo by definition means an actual control loop re position.  So these "360 degree servos" are not servos, which is very annoying.

*Servo shopping:*

The  best method is to go on ali express, show only items with free shipping, and then search "metal gear servo" and sort from lowest price to highest.  Make sure you read the listing to make sure it claims full metal gear and it doesn't look like a mistake.  There are some for $5.38 CAD including shipping I have seen, for mg996 180 degree servos, 270 are more like $8.5 minimum.

I have tried plastic gear servos, the problem is more a general quality issue than the plastic gears per se, the shaft one of the gears is mounted on tends to bend at higher torque and then the gears don't mesh and the servo is ruined.  You could probably get away with a 270 degree plastic gear servo even with a plastic output shaft, because it doesn't really need to shake at the 0 degree position in order to get the kibble into the scoop with high consistency.  You could just use a 180 degree servo with no shaking which would probably still mostly work, but it's not as good as the kibble doesn't quite flow like a liquid, the scoop will have slightly more or less kibble in it, so dispensing may not be as consistent.

Probably the best idea is cheap metal gear 270 degree servo, if you can't get that then go for a metal gear 180.


Beware that some of them are partly plastic gears and partly metal, make sure it says full metal.

How it works:

You can see from the CAD file and/or picures, that the interior of the drum has a "slideway" and a scoop.  Kibble enters the scoop when the scoop is at the bottom, the 6 o`clock position.  As the drum rotates to the 12 o`clock position, the kibble falls out of the scoop, into the slideway, then is guided to the center and out.  When the drum returns to the 6 o`clock position, it shakes by rotating the servo about 30 degrees back and forth, to get the kibble to flow effectively, but this part is optional, I just do that to improve consistency of dispensing amounts.

3D printing settings

It doesn't really matter, whatever you are used to is fine. I used 3 roads thickness for the walls, and 20 percent infill.

Small amounts of support material are used, the geometry could be modified to eliminate most of this but that's another improvement for another day.

It takes about 700 grams of filament and about 20 hours of print time.

You need to use a modified PLA or PETG or if you can PHA (like Regen brand PHA) because standard PHA tends to break spontaneously near bolts and screws due to the stress.  Obviously not what we want.