Introduction: RFID Pet Feeder

Picture of RFID Pet Feeder
If you have two cats and one of them is on a diet but the other needs free food, you can build a feeder with RFID capability that only opens for the cat that needs free access. The free-food cat wears a collar with an RFID tag.  

- An old CD-rom player is used as a sliding door
- Timer-controlled open duration
- Proximity sensor (Sharp GP2D120) prevents door from closing while the cat is eating
- Sensors detect whether the door is fully opened/closed. 
- Automatic/manual mode switch (on manual it opens with a pushbutton)
- Arduino controlled

On the downside:
- Mine was made out of cardboard so it is easily broken into by smart/strong animals. One could use a stronger material and add a servo that slides a bar into the door to lock it into place. 
- It doesn't hold a lot of food. 

The first version (shown in the video) used an ID-20 (ID Innovations), which worked, but the range was limited. The cat's tag sometimes hangs on the side, so it did not always activate the reader even when he was in the exact same place every time. Not that big a deal because the cat usually just tried from different angles, but my latest version (shown in the photograph) uses a SEEED studio RDM630 RF-reader with a self-made circular antenna. This antenna is large enough that the cat can poke his head through, which works 100% of the time. The antenna is described in step 7.

Little Cat Toos demonstrates cat feeder from champenoise on Vimeo.
The video shows the first version with the ID-20 as the reader.

Step 1: Materials

Picture of Materials

- A working CD player tray mechanism+motor from an old cd-rom player
- Sharp GP2D120 Proximity sensor
- 125KHz RFID reader (e.g. ID-innovations ID-20, SEEED studio RDM630, Parallax)
- 1.25" diameter 125KHz RFID tag (or as large as can be worn comfortably on the animal's collar. Tag size influences read range. Bigger is better in most cases)
- Arduino Duemilanove
- 1 adafruit motorshield
- 3 Pushbuttons
- 1 Toggle Switch
- 5  100-220Ω Resistors
- 4  10kΩ Resistors
- 1 Red LED
- 1 Green LED
- The material for the enclosure (such as cardboard, wood or plastic)

Step 2: Find an Old CD-rom Player

Picture of Find an Old CD-rom Player

Strip an old CD rom player until you have only the tray with the DC motor that moves it back and forth. Alternatively, any other door with a dc motor would work.�

Step 3: Add Open/close Sensors (pushbuttons)

Picture of Add Open/close Sensors (pushbuttons)

To ensure that Arduino stops turning the motor when an open/close action has been performed, I mounted two pushbuttons in the tray, which get pressed when the door is all the way open/closed. This also helps to keep track of what state the system is in at all times. I have mounted a metal strip on the tray in such a way that when the door is all the way open, the strip pushes on one button, and when it is all the way closed, it pushes the other button.

Put the Adafruit Motorshield on top of the Arduino. Connect the motor to the motor shield. I use m3 (digital pin 5). Connect pushbuttons to Arduino analog channel 0 and 1 (in Arduino code pin 14 and 15). Add a 10K resistor between each button and ground as a pull down resistor ( and a low one (100-220 ohm) between the button and the analog channel just so the resistance is not infinitely small. The button that is actuated when the tray is extended (i.e. door closed) should be on channel 1 and the button actuated when the tray is retracted (door open) should be on channel 0.

More info about the motor shield:

You can test the mechanism with a bit of Arduino code that is downloadable here:

Step 4: Add Auto/manual Mode Switch and Open/close Button

Picture of Add Auto/manual Mode Switch and Open/close Button
You have to be able to open the feeder without a tag, when you want to fill it with food for example. Thus, we add a switch that puts it in 'manual mode' in which the feeder opens by pressing a button. For clarity, the schematic shows only this latest addition without anything else. This can also be tested with the code that can be downloaded over here:

Step 5: Add Proximity Sensor

Picture of Add Proximity Sensor

Hook up the IR sensor to analog ch 4, with an LED to show that it works. The schematic shows only this step, for clarity. In your Arduino code you have to set a threshold value above which the sensor output triggers action to keep the door open. With a simple code like below you can test what the output is when you put your hand or other objects at various distances. 

Code for testing the IR sensor can be found here:

The sensor has an optimal range. Closer to, or farther away than that, the output will be low. The sensor used here (Sharp GP2D120) has a range of 4-30 cm.  Mount it in such a way that when the cat is eating, his head is at a distance that makes the output reliably cross your threshold, and set the threshold at a value that doesn't give a lot of false positives. My sensor output hovers between 50 and 150 with nothing in front of it, and increases to over 230 when anything is within 10cm, so I set the threshold at 200. Also, mount it in a way that the door itself does not activate it. The code is about the same as step 4, but with the IR added. Now the door will never close whenever something is in the way.  


Step 6: Connect RF Reader

Picture of Connect RF Reader

If you use a Seeed studio RDM630:

Connect the TX pin of the RDM630 to the RX (pin 0) of the Arduino
Connect the +5V pin of the RDM630 to the +5V of the Arduino
Connect the GND to the GND of the Arduino

I ended up using the RDM630 because I wanted to add my own antenna (see next step). However, I have also used an ID-20 (ID Innovations) which has a built-in antenna. Because of its limited range it is less tolerant to variations in the position of the tag on the animal's collar, but it still works. 

If you use an ID-20 (ID-innovations):

Connect the +5V pin and RES pin of the ID-20 to the +5V of the Arduino
Connect the GND pin and FMT pin of the ID-20 to GND of the Arduino
Connect the D0 pin of the ID-20 to RX (pin 0) of the Arduino

I do not need to communicate anything back to the reader, therefore I only use pin D0.

The code for both readers is the same. I basically copied it from this source:
It is not exactly clear who wrote it. Now you can test whether the reader works by first writing an Arduino sketch that has only this function plus something that uses the output value to toggle an LED, as in the code you find here. By the way, for my application I did not need to distinguish between tags, so the door is opened for ANY tag (i.e. when RFID returns a 1), but the code does extract the actual tag value so you could modify it to do more sophisticated processing.

When you put the tag on the animal's collar, try to make it so that the plane of the tag is most likely to be in parallel to the plane of the antenna. 

my code

Useful sites about using RFID readers with Arduino:

Step 7: Optional: Build Your Own RF Antenna

If you have a 125KHz RF reader that allows an external antenna, you can build it to fit your needs. In my case the activation tag on the cat's collar is not always hanging nicely down, but sometimes hangs on the side of his head. If your reader has a small range it will not always detect the cat even when he is in the exact same place every time. I chose to make an antenna large enough that the cat can stick his head through, which activates the reader almost 100% of the time. 

Guides for the construction of antennas are available for download on the web (e.g. They help quite a bit, but I still ended up just trying a bunch of things to see what worked best.  

An antenna coil is as simple as this:, just a wire wound up a bunch of turns with the two ends connected to the RF reader.
I used 24 Ga magnet wire and a 1.25" diameter tag to test the antenna. 
The following worked well (range is in distance from the plane of the coil):
Circular coil
1.6" diameter, 90-110 turns, no range measurement
3.1" diameter, 75 turns, no range measurement
4.1" diameter, 48 turns, no range measurement
6" diameter, 43 turns, range 3-3.5" 
9" diameter, 35 turns, range 4"
Square coil
10" square shape, 31 turns, range 1"

So the largest range was with a 9" diameter coil. Larger than that, the range first went down to zero and then disappeared from the center. If you draw power from the Arduino, use the 9v adapter, not USB only, because the latter provides less power. Also important is when the coil is complete, the wire should be guided away from the coil.

Step 8: Put Everything Into the Enclosure, Load Final Code

By now you should have an RF reader that reads your tag, a cd tray that opens and closes automatically or manually depending on the mode switch, and a proximity sensor that prevents the door from closing when the cat is eating. Build the enclosure, put everything in  it, make sure no wires are in the way of moving parts. for the animal's protection, make sure the enclosure is shut.  

Final code for this project:

Step 9: Train Your Cat

This shouldn't be too difficult. Wait until it is dinner time, put food in the feeder and encourage the animal to point his nose where it is likely to activate the reader. You can draw a target on the enclosure. When the animal succeeds, there is instant reward. Even if the door does not open every single time, it is still likely that over time, your pet learns to operate it somehow, just because getting food is a strong motivator. Do monitor your feeder's behavior though. I myself had to do a lot of debugging before it worked flawlessly. It is helpful to have an extra tag at hand just to test the device now and then, without having to bother your cat. Important: if your cat is not used to wearing a collar, he/she will have to get used to it. Over the course of several days, start with putting it on for a short time, then progressively longer. Monitor your cat closely while he/she wears the collar in the beginning. While the animal tries to get it off, the lower jaw can get caught, which is not good. To prevent this, the collar should not be too loose. If you hear strained breathing, loosen it immediately. In my experience it is about right when you can still squeeze in two fingers.  


sjcallan (author)2017-02-25

I've been working on a RFID/Wifi controlled cat door for a week - leveraging an existing pet door that already had an RFID system (but wasn't Wifi controlled/had some limitations with the way it operated). So I stripped out the old electronics, and replaced with an Arduino - which meant building my own RFID reader and antenna.

Without this article, I would have never thought of building my own antenna so massive thanks to landmanr.

I originally used an RC522 (built in antenna) and tried to modify it but it did nothing. So I used the RDM630 and built an antenna from 24 AWG wire. It's around 10" with 33 turns and gets me the range I need (you'll see from the video I get about 4"-6" in the center from the edges - perfect for my needs). It took me a little to realize I had to strip off a bit of the red outside coating of the antenna wire to make a good connection to the RDM630.

I've attached a video showing this working - you'll see the new antenna in red wire. I also attach a picture of the old antenna I stripped out.

I'll upload the whole project once I'm done.

LesB (author)2013-11-06

I completed my catfeeder a few months ago and it is working great. Here's a Vimeo of the cats and feeder in action (poor quality, sorry)

-The first cat comes by and the feeder hatch opens for him and he partakes.

-He leaves and the second cat comes by and sniffs around the feeder.  When she sticks her head in you can see the proximity light go on, but the hatch doesn't open because she doesn't have the requisite RFID tag. 

-After a while the first cat comes by and gently shuttles the second cat away from "his" feeder.

It works great!

xLSDx (author)LesB2017-02-18

Do you know the specs of the antenna you used?

LesB (author)xLSDx2017-02-18

I made my own antenna and used a impedance bridge from where I used to work to tune the antenna to 500 micro-Henries.

Jnj30 (author)2017-01-24

I'm new to all this, and probably should've started with something more basic...but want to give this a shot. Your patience is appreciated in advance. I want to try a version of this but with 3 doors. Each door would service a different cat. My question is: do I need 3 complete setups or can one or more of the components be used for all doors? I'm thinking that once the ID tag is read, there should be a way to say this is cat A, open door A. But that's as far as I've gotten with it.

MarioR16 (author)2016-10-30

Dear Landamar,

I have a question regarding the RFID reader connection. As far as I know, the Adafruit motor shield v1 does not have a serial connector. When you say to connect the RFID reader to the RX (0) pin, do you mean to use the 0 pin in the top right corner of the shield?

helpme_1 (author)2015-03-19

nice project. I want to make a same one but could only locate 16AWG wire. At 6" diameter, how many turns should I do?

moritz.dapprich (author)2015-01-15

Could someobe who might be interested in building a custom animal feeder for me please contact me? I need a feeder that dispenses wet food, in my case bits of meat, to falcons when they enter a feeding box. Additionally i need it to weigh the birds and record the birds weight and amount of food consumed. The birds would be fitted with rfid leg bands. P

DiwaP (author)2014-09-03

Thanks :)

kilofeenix (author)2014-03-07

anyway to make this work with the rfid chip in my cats neck? no way in hell she's gonna wear a collar. otherwise i need to make it close when my dogs gets too close and stay open when hes not around. its for a litter box door to prevent my dog was munching down some almond roccas

David97 (author)kilofeenix2014-08-07

I have the same problem. Build it so that the bowl is constantly open and then closes when the dog gets close enough (the dog wears the tag). I imagine that a CD drive would not be fast enough,so you could use a servo and a flap.
See post above.

David97 (author)David972014-08-07

Like this... it would be easy to add a flap to lock them out

David97 (author)2014-08-07

Great instructable. I would have designed it so that the cat that does not need food where's the collar. That way the cat does not need to be trained to use it. It simply closes and locks when the other cat tries to access it. Also makes it easier to fill.
I want to build one because one of my dogs can't be trusted around the bowl. My cat does not like wearing a collar, and manages to get them off and loose them. So for me it would be better to lock the dog out instead. However I would need a faster way of shutting it. Maby a servo and flap.

bongobananans (author)2014-03-03

make sure the ir receiver is working mine went faulty and caused it to stay open lil bang on it and it would close

LesB (author)2014-02-01

I have had my feeder working for a number of months now. It works well, except that every once in a while it will hang up and stay open. Has anyone experienced this problem?

hsjade1 (author)2011-07-23

I want to build this but new to RF. Was wondering do u have an image of all parts used

chatrooms (author)hsjade12014-01-31

Wondering the same thing here

lamudd01 (author)2013-12-30

I am planning to start this project soon and was wondering if anyone had already played around with incorporating some regulation of access in regards to the amount of food? i.e. using a load cell or other mechanism to control the amount of food that can be accessed over a certain time period? I'm hoping by doing this 1) it will prevent the cat from gorging itself all in one sitting and 2) provide positive reinforcement in adjusting to the new bowl (there will be food when the door is opened, instead of it being emptied first thing in the morning and empty until dinner time). I was thinking of including a setup similar to but just wanted to check if anyone else had any experience/pointers/better setups of doing this beforehand.


1rubberduck (author)2013-12-06

Wireless Whiskers has a commercial version with lots of features including being able to set pets on different diets and access control to shut out certain animals. Check it out it looks pretty cool

LesB (author)2013-11-21

BTW, anyone planning to build this, I found that the Sharp GP2D120 proximity sensor worked very well. Has an adjustable range.

bongobananans (author)2013-07-17

With the tags on the cats collar make sure that they aren't wearing metal name tags as well because that interfered with mine and drove me nuts for ages trying to figure out why it would only work sometimes .

bongobananans (author)2013-07-17

This is my version of landmanr"s project

Everything is basically the same except mines made from perspex and incorporates a gravity feed system

Big thanks to landmanr for this instuctable it helped my situation massively.

split55 (author)2013-06-20

I need to build 2 of these. As I have 2 cats that cannot eat the same food. Do I need 2 Arduino's adn 2 motorshields? In other words, can I build one of these with 2 doors, with each rfid opening only 1 door?

Dave Kruschke (author)2012-12-21

Antenna resonance details are pretty important, more so than, say, the thickness of the wire used for the coil. Please see (RFID in Instructables) and you will notice a RFID detector here with an LED that uses both a coil AND a capacitor that matches 125 kHz. The LED on this detector lights at the farthest distance from the RFID reader when the coil and capacitor resonate at the frequency of 125 kHz. Roughly speaking, my handwound coil of about 300 uH with about .005 uF of capacitors in parallel with the coil resulted in the best lighting of the LED at a distance of about 4+ inches and mostly meets the requirements of the formula; freq = 1000 divided by (2 times pi times the square root of L times C) where freq in in kHz, C is in uF and L is in uH. I believe that using a capacitor in parallel with the antenna coil is pretty common practice. The wound coil is "fine tuned" by capacitors hooked up in parallel with the coil...

LesB (author)2012-10-13

I have just finished building my own version of this project. First of all, the following observations:
-Having built this I can appreciate the extensive work landmanr did in developing the feeder.
-I used this project to break myself into learning about and using the Arduino. Having gone through this, I do not recommend this as a project this complex for a first-time Arduino project. Better to start with something simpler to break yourself in. Or, be prepared to take the time with this project to learn the ins and outs of the Arduino.
-Landmar was very helpful in answering a bunch of questions for me. If you decide on this project and you run into obstacles feel free to ask me for help as well as landmar.
-The RDM6300 RFID reader has been discontinued. I am using the ID-20.
-Other posts in this forum refer to a cat door and a cat feeder in the design stage that work with the cat's implanted RFID chip. When I can find out just how that is done, I will probably upgrade my feeder to do that.

The following link goes to pictures of my feeder. Being the nerd that I am I like stuff with flashing LED's, so incorporated several LEDs that glow to indicate various functions.

If you saw the pictures, I'm sure it isn't lost on you that my unit is boxy and mechanical looking. This is the kind of thing my mother would not let me keep in the house when I was a teenager. This, as opposed to landmar's unit, which is smaller and decorated with designs.

I am presently in the cat-training stage. I will post a video of the feeder in action when it is in full-swing.

Regarding the indicator lights: My background is in electronics, and I have just started learning about writing sketches for the Arduino family. Thererfore I used electronic means to implement the LEDs instead of coding, which would have been a simpler, more elegant solution. But it is what it is. With that expalined, the next link takes you to a shot of the schematic of my unit.

The picture is not large enough to show much detail. I can send a full-size copy if anyone would like. Send me a message from this site.

Like I said, at our house we are in the training stage. The cat without the RFID tag succeeded in breaking into the unit, so I had to reinforce it. The cat with the tag acts very suspicious of the thing. I'm not sure if it's me training the cats or them training me, I'm confident that we soon will be living in harmony with this machine.

jaxworld (author)2012-04-08

Great idea, but I have twin Egyptian cats (named Coco and Chanel by my fashionista G'f), and they would rip that apart in about 3 seconds......had to put child locks on the fridge door coz they'd open it.
They get into cupboards above the kitchen surface and we've never caught how they do that...............BUT.....the reason for the child locks was they could get IN to the fridge, but not get out.
So after mild frostbite twice we had to come up with something that they couldn't reach.
But they can destroy anything with food in it that isn't made of steel!!! One nearly drowned in our 5ft high hexagonal fish tank, got in, couldn't get out. Now has four velcro strips coz two they could work.....
We live with Ninja cats!
Had a timed feeder......had to upgrade the motor and lock and put a couple of tiles on it coz they worked it out in 48hrs!
Don't have children,but have trigger locks on my guns for the same reasons!!!
Anyone who could come up with an ARMOURED feeder PLEASE inform!!!
I wouldn't trust them with a frag grenade!!! Never seen two team cats like it, I'm ex-mil and if they were human would love them as part of a 4 man team!!!
Solutions welcome!
Armoured, timed, cat feeder wanted!!! One week good as could put blue freezer packs beneath!

wizodd0 (author)jaxworld2012-09-08

It's certainly doable, though likely to be moderately expensive if it's to be truly durable and reliable (and you want reliable, an armored lid could decapitate an animal--or leave them trapped!)

Did you put child-locks on the cupboards to?

I'd keep them from grenades too! They would have the in pulled in a matter of hours at most.

Drop me a line at my handle here -0 g mail & we can discuss it.

v4l (author)2012-08-02

Hi, that's a really cool project, totally useful for my cats :)
Would it be feasible to replace the Arduino Duemilanove with an Arduino Uno?

landmanr (author)v4l2012-08-02

Yes, it's most likely no big deal

tlshea (author)2011-08-02

I realize this is the site and the idea is to do it myself, but I am a desperate woman in need of something like this now (before my cats make me crazier). Is there anything commercial that performs this?
I do salute your inventiveness and everyone's successful modifications.
Thank you for any insight.

Caseyjmc (author)tlshea2012-06-22

Yes! MeowSpace

gcresse (author)tlshea2011-09-03

I just ordered this ID Bowl from and it seems to be exactly what a person needs to keep one cat from eating the other cat's food. It hasn't arrived yet, but hopefully it works as well as on the video.

landmanr (author)gcresse2011-09-04

That's pretty neat! The only downside I see from that design is that it utilizes infrared, so the tag will have a little battery which I could run out of power.

gcresse (author)landmanr2011-09-04

Yeah, I also ordered an extra battery. We'll see how happy I am with it after I've used it for a while.

bobbi0126 (author)gcresse2011-11-26

Hi gcresse. Did you have success with the id bowl? I'm looking at buying three sets and I haven't found any other reviews.

bunner_bob (author)bobbi01262011-11-27

We have an ID bowl and have been disappointed so far. The bowl is fairly noisy when it opens and closes, so our regular cats are a bit scared of it (while the fat one just comes running whenever he hears it). The IR tags seem to be prone to failing when they get wet (though they seem to resume working when they dry out), which means when the cat drinks out of a bowl it can kill the tags. The triggering is somewhat inconsistent, depending on what angle the cat approaches at. And, it tried to close on one cat's head, I think because they were eating from an angle. The first one we got had a tendency to "bounce" a few times when manually switched off (it opens when switched off). The replacement was a lot noisier and kind of stuck mid-opening, releasing with a "clack" (again, cats didn't appreciate). Waiting on replacement #2 now. This is the "first infrared pet feeder" - I'm thinking maybe when the design evolves to the third or fourth (and build quality improves) we'll get the one that actually works. And I think RFID is probably a better way to go.

bobbi0126 (author)bunner_bob2011-11-27

Thanks for the feedback Bob! I'll keep searching for a solution to the #1 dog on a diet, #2 blind dog eating cats food, and poor cat searching for left-overs since the dogs eat everything . ;)

landmanr (author)tlshea2011-08-03

Hmm, not that I know. There is a host of electronic pet doors available, so if you have a larger space to put the food in you could use such a door to control access. Just an idea.

Caseyjmc (author)2012-06-22

We created another solution using polycarbonate plastic and a locking pet door. Several of our friends asked us to build one for them, and then their friends wanted one too. Little by little, we improved this, and added some bells and whistles. Now, we sell it online. It's called MeowSpace®

LesB (author)2012-02-24

I've having a problem reading the schematic for the Auto/Manual switch. It's posted as a thumbnail and I can't read it. Could you either describe the connections or send me a full size picture? I'd appreciate it; Kitten Kaboodle would appreciate it:

landmanr (author)LesB2012-02-28

I have attached an image to this reply. See if that works..

LesB (author)landmanr2012-02-29

Works! Thanks, I appreciate your help.

solaralternatives (author)2011-12-04

For a single cat, wouldn't a magnet/switch combo be a much more elegant and inexpensive solution, eliminating the arduino circuit? (all other cats/animals in the home simply wouldn't have the magnet, so voila, no access!)

Great idea, although magnets don't typically have a lot of range. One could train the cat to do it exactly right, but the magnet would not always be hanging straight down so perhaps with several magnets around the collar.

I was thinking neodynium.. and a coil detector

That would be pretty neat

Instead of arduino, the magnet induces an electric pulse in the coil, which opens the door concealing the food. When the cat leaves, another pulse of electrical current is induced, which closes the door. Thus all you need is a very simple flip-flop IC circuit, even ancient TTL circuits would work.

dexerit (author)2011-11-29

This is what I'd like to do but with implanted RFID tags...:

LesB (author)2011-03-19

The implanted tag idea IS doable, as there is a commercial product on the market that does just that -- it senses the vet-implanted rfid transponder. Check it out. I'm sure that you or someone else will come up with an upgrade to make this project implanted-tag friendly.

LesB (author)LesB2011-11-20

Replying to my own comment:
I just want to add important notes regarding safety:
Cat collars are dangerous, as cats have been known to be strangled when the collar catches on something. Fortunately there are snap-away collars available that will un-snap if the cat gets caught on something. Available in pet stores.

Another safety note: DO NOT depend on this or any other mechanical device to feed your catters when you're away for an extended period of time. Mechanical/electrical devices can and do fail, leaving the cat with nothing to eat.

Really cool project. I have some expired drives and will soon use one to build this project.

About This Instructable




More by landmanr:Cast an 'entangled rings' ice sculptureRFID cat doorRFID pet feeder
Add instructable to: