Simple, no-clog 3d printable cat feeder
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
This is a simple, cheap, no-clog cat feeder. Full cad file/source code provided, free license so you can improve it.
- Ocena
- 0 / 5
- Polubienia
- 22
- Pobrania
- 104
- Wydruki
- 0
- Wyświetlenia
- 3024
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Pets
- Licencja
- Creative Commons — Public Domain
Video of it in operation:
I know there are a lot of supposedly printable cat feeders out there, but this one is cheaper and more reliable and easier to make and better in a number of ways than any of the ones that were on the menu when I was looking for one.
The raspberry pi pico W using micropython is also a really good microcontroller. It has Wifi and also Bluetooth. It sets it's clock automatically from the internet. It's very consistent and I think probably clog proof.
A competing design was the archimedes screw type. However the auger types and the paddle wheel types are no good, they don't dispense reliably and are expensive due to the high strengths of the parts they need etc.
I recommend using self tapping screws, available on aliexpress. They look kind of like wood screws but with a nice hex drive head i.e. they have coarse threads and a pointy tip.
It uses 2 mm and 3 mm screws. You can get stainless steel ones but I prefer alloy steel for the 2 mm screws as the stainless is a bit too soft for the small hex heads.
Simply print all parts with reasonable settings for strength from whatever material you prefer, and then screw things together. No bearings or rod or anything needed except screws, pico W, power supply, servo and printed parts. I used 2.54 mm pitch screw terminal connectors as they are secure and convenient.
You will want an 8 mm long 3 mm normal M3 screw (not self tapping) to connect the servo horn thing to the servo (the servo comes with the horn), or you can use the one that came with the servo, probably.
Wiring is super simple, just put the power supply wire for the servo to the VBUS pin, and the signal pin to GPIO pin 28 of the pico.
This is tested and works great with royal canin digestion type kibble. Other kibble may need modifications to the cad file, who knows. Have a look at the cad file and see if your kibble bits are about a suitable size to fit in the scoop.
Usable capacity is about 750 ml of kibble. So it is a smaller hopper than most others. You can make the hopper considerably bigger by making the cylinder longer, the limit is how much the servo can stand.
I recommend a 360 degree servo, 180 degree servos work but they leave a bit of kibble unusable at the bottom, about 70 grams (100 ml). You can get full metal gear servos on aliexpress for $7 CAD each including shipping if you shop around. Search full metal gear servo MG995, for instance.
You probably need a metal output gear at least, which is $5 CAD on aliexpress.
The duty cycles for the minimal and maximal angles of the servo should be nearly the same for most servos, however if the servo doesn't go a full 180 degrees you may need to adjust them. Just use the repl to change the duty cycle of the pwm on that pin until it stop turning etc. to experiment and find the minimal and maximal values.
A digital servo is recommended, the analog ones are more prone to glitching etc.
I noticed some of the full metal gear servos have ball bearings which is quite nice, the ones I got do not, they are only half metal gears. If it has a brass output spline it is more likely to have ball bearings and be full metal gears. If the output spline is black metal it's probably got bushings and mostly plastic gears, only the output gear is metal which still helps though. I do not recommend full plastic servos, it might break.
Important: do not move the servo or allow it to move while you have this thing connected to your pc. If you want to program and test it and move the servo while it's connected over USB, disconnect the power supply line and connect it to a different power supply, not the usb port. It could draw too much power if it moved suddenly, or cause a voltage spike, who knows.
I have no cheap solution for this right now.
This is an example of a good servo for $7 CAD, note aliexpress links frequently go dead, and make sure you get the full metal 360 degree rotation one, the others will also work but this is better:https://vi.aliexpress.com/item/1005004556540857.html?spm=a2g0o.productlist.main.29.2d72408c8aUuV7&algo_pvid=36f5b56f-dad6-4b91-a30e-4bef55eeef61&aem_p4p_detail=202308310719125719349362509000003697698&algo_exp_id=36f5b56f-dad6-4b91-a30e-4bef55eeef61-14&pdp_npi=4%40dis%21CAD%219.19%216.43%21%21%2148.37%21%21%402103255a16934915522777236ee127%2112000029600386668%21sea%21CA%212412066855%21&curPageLogUid=81t9Dpn6tSgB&search_p4p_id=202308310719125719349362509000003697698_3
You will probably have to change the duty cycle for a 360 degree servo, I don't know.
This uses a pico W, the code included has a wifi configurator on it. Simply flash the pico with the latest firmware from the rbpi foundation (make sure it is for the Pico W not the Pico, thonny will flash the pico firmware to a pico W if you let it), load the entire memory of the pico I have provided on there, and just reboot, and the program will run.
Then you configure the wifi by connecting to the access point named cat_feeder and entering the info. Then it will print the IP address to serial. If you want to you can connect to that ip address by entering it in your browser, and there is a screen with a button you can click to reset the wifi password and also to dispense 1 scoop of kibble.
One scoop of the tested kibble is 1.6 grams of kibble, so my can takes 22 scoops per meal, twice per day.
To program it for different times of day, open main.py in thonny and scroll down to the area where it says to copy the block of code and modify the time. You can have as many feeding times as you want.
There are two firmware versions, one with a way to set the feeding times by wifi (it's a bit clunky but it's very flexible) and one without.
This can be changed relatively easily but that's going to have to be for the next contributor to do. I did the cad and took it this far, someone else has to carry the torch to make a nice wifi interface, I can't make efficient work of that. It runs the nice server thing already on the first core, the other core runs the timer.
I tried using the real time clock in the pico but it's not working yet, it has no alarm functionality.
This thing will connect to the internet and set it's clock to UTC, it is not your local time remember. Managing time zones would be something to implement with a wifi configuration interface later. So if it gets unplugged, no problem, as long as it has internet access. Well it won't forget the time, anyway.
I think it should be highly clog resistant and resistant to breakage. It's also very consistent in how much it dispenses, which is very important to prevent overfeeding or hunger.
It's highly hackable which allows you to use it in training projects and so on. You could add a button the cat presses for food or whatever you want. Someone could add a microchip reader. A display. Buttons, bluetooth interface, you can get it to sent information out MQTT to report success, it could have a sensor to detect when the food level is running low and email you or text you, whatever.
You could make a jumbo sized version with a similar concept but make the drum as big as you can and use a steel rod through the center to support it. Just so you get a big hopper. This is enough for my purposes, to provide redundancy when I go away for a bit.
You can refill it by simply pouring the kibble back in the funnel, mostly, it's a bit inconvenient but it works fine for occasional use esp. Just unplug it when you are home and plug it in again when you are away.
You could use MQTT or something to make it internet accessible over adafruit.io, that has worked well for other projects for me in the past. For functionality monitoring as well as any remote triggering you want. Very flexible and hackable. No planned obsolescence aside from what's in the constituent parts.
I used polymaker pla pro and recommend it.
Known issues: scoop geometry could use some adjusting, it tends to walk forward slightly when it wiggles to get the kibble to flow (I taped it to the floor. A 360 degree servo would solve this. The servo might wear out, who knows, should be fine for a couple years I think if you use the metal gear kind. Would benefit from some kind of viewing window so you can see how much kibble is left. I just pick it up and shake it or hold it up to the light.
It takes about 550 grams of plastic for me to make, you could probably trim that down by 30% by making things thinner in the cad file and using a little less infill or whatever. That's 2 roads on the walls and 3 layers on the top and bottom which is about as thin as you can practically get. Also you could make more efficient use of plastic by making the drum resemble a more spherical shape, a sphere is the best surface area to volume ratio, so you would get a larger hopper volume for the same quantity of plastic. The legs of the stand could probably be shortened.
If you shop and have a look on reddit, any given commercially available feeder, especially a cheap one, is highly likely to have at least one problem:
-not compatible with your wifi
-prone to clogging
-wacky limitations like 20 grams per feeding max
-forgets it's time
-can be circumvented by the cat/caused to dispense somehow when it's not supposed to
-still expensive. Especially if you need more than one.
to be fair this one might have some weaknesses:
- the servo and it's little joint is not that strong. It's a metal output gear but there is a lot of leverage there. I don't think my cat could break it if he tried but who knows. A derivative version with the similar drum type mechanism could be made which is stronger. Just have two plastic rings like journal bearings to back up the servo bearing. Or an 8 mm rod somewhere and some pillow block bearings or something ($2 each on amazon). I noticed some full metal gear servos actually have ball bearings in the output gear which would help a lot.
- it remains to be seen how reliable it is, however the usual clogging mechanisms are bridging and a kibble getting caught, which are not possible here.
- the software has not been proven 100% reliable for long periods yet. I used the watchdog so if it crashes it will reboot automatically.
- if the cat really forced the drum it's possible they could break something, but I doubt they would be strong enough to actually rotate it enough to cause it to dispense.
- a dog might be strong enough to damage it.
Probably the biggest issue is the smaller sized hopper. However it's good for occasional absences of less than 10 days.
With some modifications to the micropython to improve energy efficiency it could be amenable to battery operation with quite a small battery. Power banks usually shut off though when only small amounts of power are drawn so that might not work.
An additional advantage is that you can use any food bowl you want, many feeders contain sensors etc. which limit bowl choice. Slow feeders for instance can be used with this machine.
The raspberry pi pico has bluetooth built in, so you could interface to a bluetooth speaker or something to play an audio clip if you wished to do so. There are also libraries to play mp3 files directly over a microcontroller pin using pwm but I haven't tried it. Probably you need at least a small transistor to allow for greater current draw than the pin alone can provide.
Every single time I get into something I see a lot of stuff being done wrong. None of us people that work for a living can make a superb machine and give it away but I can get the ball rolling and if other people can improve the firmware and design then before you know it we will have a nice, reliable, feature rich machine that's way cheaper and better than any of the cheapie units and maybe even better than some of the expensive ones.
This is truly open source, and libre. You are free to fork and make your own versions or steal the idea of the drum based no-clog mechanism, and you could make and sell them on amazon if you wish. I have a lot else to do and would never in a million years have time. You could probably get the parts and filament cost down to ~$23 if you don't include the power supply and cable ($5 for servo, $8.5 for pico, $0.25 for screws and the rest is plastic). IDK how much a cheap power supply and cable is but most people have spares and would prefer to see a lower price.
So churn em out and sell em for $90 and it's honest money, theoretically, but in reality things get complicated so who knows (which is why I'm not into it, but maybe you can make something of it if you have skills I don't).
update: I made a primitive but lightweight interface to add and change feeding times/amounts over wifi. So now you never have to connect by usb to change the feeding schedule. I think that's the last bit of work I will do on this subject, I can't afford to spend more time on this. So there are 2 pico memory .zip files, one contains the simpler no-wifi feedtime editing one, and the other contains the wifi enabled one. Take your pic.
To edit feed times, carefully copy the existing list, square brackets and all, it is a representation of a list of lists in python. Then paste it in the form box, and modify it as desired to add more lists or change the times and number of scoops. It will be parsed out when the pico recieves it and loaded into memory and saved to flash. It's crude but it's super flexible.
usage note: you need to know the ip address of the raspberry pi pico in order to access it. It can change with time. DNS is the standard solution to this problem but there is nothing available for lightweight stuff right now. One solution could be a static ip address. I have not implemented this yet and it is a clunky solution anyway. I recommend simply using an app like Fing (for android) which tells you all the devices on your network. There will be one that says raspberry pi. Try that one. Important: make sure you don't try to use https, or it won't connect. Try entering “http://192.168.0.14” for instance, without the quotes, to make sure it doesn't try to use https, some browsers try to do it automatically.
