Introduction: Pet Feeder
This is my digitally fabricated auger based pet food dispenser. You simply load the pitcher with pet food and it is automatically pushed with the auger screw into the dish to feed your pet. This has been tested to work with cat food and designed with a cat in mind. Actually this is going to be a Christmas present for my sisters cat.
In the past year I have been working to up my game when it comes to fabricating parts for my projects. If you were to check out some of my older Instructables you would see most things I made were built with three basic tools, a drill, a saw of some sort and a dremel. These tools serve me well but I had to limit my material choices and construction techniques to match the tools. I was always designing parts around these limits and trying to source pre-made parts whenever possible. I had some success with this but always thought it would be nice if I could make cuts a little straighter and make things with more complex geometry.
So during the end of 2011, I started working on a cnc router. I finished it in Febuary 2012 and posted all the plans for it here on Instructables DIY CNC Router It has been an awesome tool and I have used it many times. I've made things for my aunt, my sister, my cousin's eagle scout project and a fishing poll rack for my Dad. Around the same time I was finishing up the router, MakerBot released the Replicator and I got caught up in all the hype of 3d printing. I poured myself into this new subculture I found on the internet and I when I emerged from my fasination with these cnc hot glue guns I decided to buy my own 3d printer. There are many DIY level 3d printers available but the one I decided to get was an M2 from MakerGear. It is my opinion that this printer has the highest quality components and uses the best manufacturing techniques of any DIY level 3d printer currently available.
So now that I have a CNC router and a 3d printer I decided to work on a project specifically geared toward using these tools to take advantage of their capabilities. The pet feeder is that project and in this instructable I will to explain how I used the machines to create some unique parts.
This design for an auger screw based kibble dispenser was inspired by Tunell and kitlaan of Thingiverse but I created all of my own 3d models for this design. I have uploaded the design files to Thingiverse as well Pet Feeder Thingiverse #34100
In the past year I have been working to up my game when it comes to fabricating parts for my projects. If you were to check out some of my older Instructables you would see most things I made were built with three basic tools, a drill, a saw of some sort and a dremel. These tools serve me well but I had to limit my material choices and construction techniques to match the tools. I was always designing parts around these limits and trying to source pre-made parts whenever possible. I had some success with this but always thought it would be nice if I could make cuts a little straighter and make things with more complex geometry.
So during the end of 2011, I started working on a cnc router. I finished it in Febuary 2012 and posted all the plans for it here on Instructables DIY CNC Router It has been an awesome tool and I have used it many times. I've made things for my aunt, my sister, my cousin's eagle scout project and a fishing poll rack for my Dad. Around the same time I was finishing up the router, MakerBot released the Replicator and I got caught up in all the hype of 3d printing. I poured myself into this new subculture I found on the internet and I when I emerged from my fasination with these cnc hot glue guns I decided to buy my own 3d printer. There are many DIY level 3d printers available but the one I decided to get was an M2 from MakerGear. It is my opinion that this printer has the highest quality components and uses the best manufacturing techniques of any DIY level 3d printer currently available.
So now that I have a CNC router and a 3d printer I decided to work on a project specifically geared toward using these tools to take advantage of their capabilities. The pet feeder is that project and in this instructable I will to explain how I used the machines to create some unique parts.
This design for an auger screw based kibble dispenser was inspired by Tunell and kitlaan of Thingiverse but I created all of my own 3d models for this design. I have uploaded the design files to Thingiverse as well Pet Feeder Thingiverse #34100
Step 1: Materials and Tools
The parts needed for the pet feeder are easy and cheap
- 2" PVC Plumbing Tee
- Dollar store drink pitcher
- PLA plastic filament for 3d printing (ABS could also be used)
- 3/4" Oak Hardwood board (any sheet material could be used, 1/4" Acrylic could replace this)
- 4-40 machine screws, nuts and washers
- Continuous Rotation Standard Hobby Servo (I used a Parallax servo)
- Exacto Knife (for cleaning up the prints)
- Drill
- 3d printer
- CNC router (or laser cutter)
Step 2: 3D Printed Parts
I designed the pet feeder to have most of the parts 3d printed because I wanted to explore the possibilities of mechanical design with 3d printing. These parts are integrated with off the shelf parts and assembled with the machine screws. I designed the parts to have slots and hex shaped holes to capture nuts so the parts could be assembled with minimal tools. The ability to integrate the nuts and bolts into the design of the parts is somewhat unique to 3d printing and makes for clean looking and purpose built items. I really like this aspect of 3d printed design.
The general software tool chain used to create 3d printed parts is like this: design a 3d model on the computer, slice the model into layers and write G-code which is used by the printer, send the G-code to the printer as the parts is being made. This requires 3 different pieces of software(design, slice, send). I did all the design work for the pet feeder using Solidworks. This is a really great 3d modeling software but is very expensive. I will not always access to this software so I have been looking into the cheaper/free options. Autodesk 123D, OpenSCAD, FreeCAD are three programs I have been considering. After I designed the parts I exported them from Solidworks in the .stl format. The stl format is basically a list of numbers that define the points of many triangles in 3d space. The triangles are placed so that they match the outside surface of the part designed in the 3d modeling software. Now that I have the .stl file it can be brought into the slicer program. I used Slic3r but some other options are Skeinforge and Kisslicer. In the Slic3r program I input the parameters of the M2 printer, the filament I am using, and the settings that control how the part will be made. Slic3r takes that information and cuts the model into thin slices. The shape of each slice is then used to create the G-code needed to run the printer. The output of Slic3r is a text file but is normally given an extension .GCODE. The G-code is a list of instructions that tell the printer to move from one position to the next while also turning the extruder motor to force plastic out of the nozzle and onto the previous layer of plastic. This list of instructions can be very long, tens or hundreds of thousands of lines long, but don’t worry because you’ll probably never have to go though them. You may sometimes need to edit the few lines at the beginning and end of the file but its not a big deal. I then loaded the G-code file into Ponterface which is the program that sends the G-code to the printer. Ponterface is also used to manually control the printer’s movement and temperatures. Once the G-code is imported and the extruder is hot you can hit the print button and the printer will begin to make the part.
These are the general Slic3r settings I used to make the parts. These settings make structurally sound parts needed for the pet feeder. I used Slic3r version 0.9.3.
Layer Height=0.2mm
Perimeters=2
Solid Layers=3
Infill is rectilinear with 0.2 density every layer at 45deg
Perimeter Speed=90mm/s
Infill Speed=100mm/s
Bridge Speed=100mm/s
Travel Speed=200mm/s
2 Loops for the skirt
The parts needed for the pet feeder are listed below with quantities and actual print times based on the settings already mentioned:
I've included the stl files for your printing enjoyment. All should be scaled and orientated correctly, let me know if there are any issues. If you would like to view the files easily download NetFab Studio Basic which a great program to view and prep stl files for 3d printing.
The general software tool chain used to create 3d printed parts is like this: design a 3d model on the computer, slice the model into layers and write G-code which is used by the printer, send the G-code to the printer as the parts is being made. This requires 3 different pieces of software(design, slice, send). I did all the design work for the pet feeder using Solidworks. This is a really great 3d modeling software but is very expensive. I will not always access to this software so I have been looking into the cheaper/free options. Autodesk 123D, OpenSCAD, FreeCAD are three programs I have been considering. After I designed the parts I exported them from Solidworks in the .stl format. The stl format is basically a list of numbers that define the points of many triangles in 3d space. The triangles are placed so that they match the outside surface of the part designed in the 3d modeling software. Now that I have the .stl file it can be brought into the slicer program. I used Slic3r but some other options are Skeinforge and Kisslicer. In the Slic3r program I input the parameters of the M2 printer, the filament I am using, and the settings that control how the part will be made. Slic3r takes that information and cuts the model into thin slices. The shape of each slice is then used to create the G-code needed to run the printer. The output of Slic3r is a text file but is normally given an extension .GCODE. The G-code is a list of instructions that tell the printer to move from one position to the next while also turning the extruder motor to force plastic out of the nozzle and onto the previous layer of plastic. This list of instructions can be very long, tens or hundreds of thousands of lines long, but don’t worry because you’ll probably never have to go though them. You may sometimes need to edit the few lines at the beginning and end of the file but its not a big deal. I then loaded the G-code file into Ponterface which is the program that sends the G-code to the printer. Ponterface is also used to manually control the printer’s movement and temperatures. Once the G-code is imported and the extruder is hot you can hit the print button and the printer will begin to make the part.
These are the general Slic3r settings I used to make the parts. These settings make structurally sound parts needed for the pet feeder. I used Slic3r version 0.9.3.
Layer Height=0.2mm
Perimeters=2
Solid Layers=3
Infill is rectilinear with 0.2 density every layer at 45deg
Perimeter Speed=90mm/s
Infill Speed=100mm/s
Bridge Speed=100mm/s
Travel Speed=200mm/s
2 Loops for the skirt
The parts needed for the pet feeder are listed below with quantities and actual print times based on the settings already mentioned:
- Pitcher Funnel - Size 97x97x58mm - QTY 1 - Print Time: 2hr 57min
- Servo Mount - Size 67x93x26mm - QTY 1 - Print Time: 1hr 16min
- Wood Support - Size 79x32x32mm - QTY 2 (printed at the same time) - Print Time 1hr 15min
- Auger Screw Cut 1 - Size 59x124x30mm - QTY 1 - Print Time: 1hr 11min
- Auger Screw Cut 2 -Size 59x124x30mm - QTY 1 - Print Time: 1hr 11min
- Kibble Dish - Size 108x97x23mm - QTY 1 - Print Time: 1hr 32min
I've included the stl files for your printing enjoyment. All should be scaled and orientated correctly, let me know if there are any issues. If you would like to view the files easily download NetFab Studio Basic which a great program to view and prep stl files for 3d printing.
Step 3: CNC Parts
There are two identical parts for the pet feeder that I cut on my CNC router. They are made to fit around the PVC Tee and and act as stands for the whole device. I made the parts from 3/4" oak hardwood because I had a piece of this left over from a previous project. Any sheet material could be used and I think 1/4" acrylic or wood could work fine, you could cut this on a laser cutter. I have provided the .dxf file(scaled in inches) for easy fabrication and modification.
Just like in 3d printing there are 3 basic software packages used to create a part. You must first design the part, write the G-code and then send it to the cnc machine. Like the 3d printed parts I designed the cnc parts in Solidworks and then exported them in .dxf format. This is a widely accepted format used to exchange 2d drawings. This format is often used to write G-code using a CAM program(CAM=Computer Aided Manufacturing). The CAM software I used to write the G-code for these parts is CAMBAM When cutting wood or any material with a cnc router there are many different software settings that go into creating the G-code. Just like with all the settings available in the slicing programs for 3d printing there are just as many, if not more, settings available in CAM programs that are used to write G-code for cnc machines. Basically you import your dxf file, which is a 2d drawing of the shape you want to cut. You select the shape, choose the diameter of the bit you will be using and decide how the part will be cut. With cnc machining you have to know how much material you can take off in one pass. In 3d printing you decide how thick each layer is and with cnc you decide how deep the router bit will cut on each pass. Layer Height is to 3d printing as Pass is to cnc machining. Layer height adds material and Pass subtracts material. Generally a pass with a CNC machine has a depth of cut and a percent overlap, which is how wide the cut will be compared to the width of the bit. CNC machining has been around much longer than 3d printing and many standards have been written for deciding how to cut material. Making this is decision is often referred to as figuring out speeds and feeds. Speeds and feeds calculator programs are avaiable and one good one is G-Wizard from CNC Cookbook. You input your bit size and type, material, pass depth and the power of your router and the program tells you how fast the router should be spinning and how fast it should move through the material. This is for the ideal cutting situation and can often be tweaked for the best results. If your settings are to far off the limits of your machine you can easily break bits or stall the router and stepper motors. This is not a good thing and cnc machines are much less forgiving than 3d printers in this regard. Once the G-code is finished I used Mach3 to control the router and send the G-code. This software is widely used by people with home built cnc machines.
Here are the basic settings I used when cutting the two parts:
Cutting Bit: 1/4" diameter 2-flute down spiral router bit
Depth of cut: 0.100"
Cut feed rate: 40 in/min
Plunge feed rate: 10 in/min
Rapid speed: 200 in/min
If you decide to use a thicker material and cut it with a router, like I did, I want to give you a tip. I cut the two parts together which saves time and makes sense. I spaced them out to give just enough clearance for the 1/4" bit I was using to make the cut. This was not a good decision, I should have spaced them out even more. The first part went just as planned and the router was cutting the second part out just as well. On the final pass the entire board broke loose, sending the first part flying and the second part got jammed into the router bit. This stalled the router and the stepper motors. I hit the e-stop once I realized what had happened but it was stalled for at least a second or two. The part was not completely ruined so I finished it with my dremel.
Just like in 3d printing there are 3 basic software packages used to create a part. You must first design the part, write the G-code and then send it to the cnc machine. Like the 3d printed parts I designed the cnc parts in Solidworks and then exported them in .dxf format. This is a widely accepted format used to exchange 2d drawings. This format is often used to write G-code using a CAM program(CAM=Computer Aided Manufacturing). The CAM software I used to write the G-code for these parts is CAMBAM When cutting wood or any material with a cnc router there are many different software settings that go into creating the G-code. Just like with all the settings available in the slicing programs for 3d printing there are just as many, if not more, settings available in CAM programs that are used to write G-code for cnc machines. Basically you import your dxf file, which is a 2d drawing of the shape you want to cut. You select the shape, choose the diameter of the bit you will be using and decide how the part will be cut. With cnc machining you have to know how much material you can take off in one pass. In 3d printing you decide how thick each layer is and with cnc you decide how deep the router bit will cut on each pass. Layer Height is to 3d printing as Pass is to cnc machining. Layer height adds material and Pass subtracts material. Generally a pass with a CNC machine has a depth of cut and a percent overlap, which is how wide the cut will be compared to the width of the bit. CNC machining has been around much longer than 3d printing and many standards have been written for deciding how to cut material. Making this is decision is often referred to as figuring out speeds and feeds. Speeds and feeds calculator programs are avaiable and one good one is G-Wizard from CNC Cookbook. You input your bit size and type, material, pass depth and the power of your router and the program tells you how fast the router should be spinning and how fast it should move through the material. This is for the ideal cutting situation and can often be tweaked for the best results. If your settings are to far off the limits of your machine you can easily break bits or stall the router and stepper motors. This is not a good thing and cnc machines are much less forgiving than 3d printers in this regard. Once the G-code is finished I used Mach3 to control the router and send the G-code. This software is widely used by people with home built cnc machines.
Here are the basic settings I used when cutting the two parts:
Cutting Bit: 1/4" diameter 2-flute down spiral router bit
Depth of cut: 0.100"
Cut feed rate: 40 in/min
Plunge feed rate: 10 in/min
Rapid speed: 200 in/min
If you decide to use a thicker material and cut it with a router, like I did, I want to give you a tip. I cut the two parts together which saves time and makes sense. I spaced them out to give just enough clearance for the 1/4" bit I was using to make the cut. This was not a good decision, I should have spaced them out even more. The first part went just as planned and the router was cutting the second part out just as well. On the final pass the entire board broke loose, sending the first part flying and the second part got jammed into the router bit. This stalled the router and the stepper motors. I hit the e-stop once I realized what had happened but it was stalled for at least a second or two. The part was not completely ruined so I finished it with my dremel.
Step 4: Assembly and Operation
To assemble the pet feeder you'll first need to clean up the printed parts. Scrape off any loose filament and drill out the holes with a 1/8" drill bit. Insert the nuts into the funnel and the wood support 3d printed parts. The screws used for everything are 4-40 size with 1/4" nuts. I used 1/2" long screws to attach everything but the wood stands for which I used longer 1-3/8" screws. I drilled out the holes on the stands by hand because I don't have a drill bit that will fit in the router. The wood supports and the funnel attach to the PVC tee by drilling and tapping the tee itself. Use the printed parts as a guide to position the holes correctly. Make sure the ends of the screws don't protrude into the PVC tee. The auger screw connects to a standard X -shaped servo horn and already has the holes designed into the part. Use screws and nuts to attach the screw to the horn while it is attache to the servo. Then bolt the servo to the servo mount. Just use the top two holes to mount the servo.
I am still working on the operation of the feeder. Right now I know that in order to drive the auger screw and not get kibble jammed, the screw must be reversed to free up the kibble. I am using a basic stamp to drive the servo and through testing have determined a sequence of moves for the screw to avoid jams. The sequence is first a 60 degree turn backward then 120 degrees forward and repeat. This has not jammed yet and can be repeated as many times as needed to dispense the desired amount of kibble. There are so many options for controlling the feeder that I have not made the final decision about I how i want to do this. I also might include a button that the pet could press to dispense food, don't know if this would work.
I am still working on the operation of the feeder. Right now I know that in order to drive the auger screw and not get kibble jammed, the screw must be reversed to free up the kibble. I am using a basic stamp to drive the servo and through testing have determined a sequence of moves for the screw to avoid jams. The sequence is first a 60 degree turn backward then 120 degrees forward and repeat. This has not jammed yet and can be repeated as many times as needed to dispense the desired amount of kibble. There are so many options for controlling the feeder that I have not made the final decision about I how i want to do this. I also might include a button that the pet could press to dispense food, don't know if this would work.