{"id":951,"date":"2012-10-29T01:31:18","date_gmt":"2012-10-29T05:31:18","guid":{"rendered":"http:\/\/tim.cexx.org\/?p=951"},"modified":"2012-12-12T02:51:34","modified_gmt":"2012-12-12T06:51:34","slug":"cnc-milling-custom-40dp-timing-belt-gearspulleys","status":"publish","type":"post","link":"https:\/\/tim.cexx.org\/?p=951","title":{"rendered":"CNC milling custom 40DP timing belt &#8220;gears&#8221;\/pulleys"},"content":{"rendered":"<p>Woo, it&#8217;s been a long time since I messed with pick &#038; place stuff. Bad Tim.<\/p>\n<p>An irritation I have been having is making everything work using reliably sourceable, off-the-shelf parts (not lucky eBay\/surplus finds). In particular I&#8217;ve found small &#8220;tin can&#8221; stepper motors are hard to source in small quantities repeatably, and once you do, finding timing belt pulleys to fit the shaft of the motor you&#8217;ve just scored is a fresh new challenge. In a <a href=\"https:\/\/tim.cexx.org\/?p=728\">previous iteration<\/a>, I use some steel tubing and superglue to shim a motor shaft up to size(ish), but here is an alternate approach: my &#8220;pick &#038; place&#8221; machine is just my CNC machine with a vacuum head bolted on, so why not just cut some pulleys on a CNC machine?<\/p>\n<figure id=\"attachment_952\" aria-describedby=\"caption-attachment-952\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/tim.cexx.org\/?attachment_id=952\" rel=\"attachment wp-att-952\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0480-300x200.jpg\" alt=\"14-Tooth 40DP Pulley\" title=\"14-Tooth 40DP Pulley\" width=\"300\" height=\"200\" class=\"size-medium wp-image-952\" \/><\/a><figcaption id=\"caption-attachment-952\" class=\"wp-caption-text\">14-Tooth 40DP Pulley, carve on a CNC mill using a 1\/32&#8243; bit<\/figcaption><\/figure>\n<p>For reference, here is the <a href=\"https:\/\/tim.cexx.org\/?p=778\">existing head in action<\/a>.<\/p>\n<p>This last attempt used the &#8220;40DP&#8221; type small timing belts\/pulleys* since they seemed to be readily available here. Despite the massive main pulley and tiny one on the motor, the gear ratio works out to only about 5.2:1. This is adequate for a typical 1.8deg\/step stepper (~0.35 degrees\/step final head resolution), but pretty coarse for a 7.5deg\/step tin-can motor. <a href=\"https:\/\/tim.cexx.org\/?p=778\">This is the smallest<\/a> &#8216;proper&#8217; stepper I can find in hobbyist quantity and pricing, and it seems to work well. The shaft diameter is 4mm. (Sidenote: A note on the product&#8217;s page indicates it now comes with a flatted shaft. You may wish to augment the below to take advantage of this.)<\/p>\n<p>Here is what I did to make a 40DP pulley to work with the new motor. Similar process ought to work for other pulley profiles and sizes.<\/p>\n<p>Thingiverse user <a href=\"http:\/\/www.thingiverse.com\/droftarts\">drofarts<\/a> has put together a set of <a href=\"http:\/\/www.thingiverse.com\/thing:16627\">parametric pulley design files<\/a> in OpenSCAD format. These are CAD files, but more like a text scripting language than a traditional CAD package. You need to install <a href=\"http:\/\/www.openscad.org\/\">OpenSCAD<\/a> to use these files if you don&#8217;t have it already. Open the desired file and tweak parameters as needed, such as the desired profile, number of teeth, shaft diameter, etc. Use Design -> Compile and Render to see what you&#8217;re going to get. For best results in the next step, set the &#8216;no_of_nuts&#8217; parameter to zero to simplify the output.  When satisfied, use Design -> Export as STL&#8230; to save the file.<\/p>\n<figure id=\"attachment_955\" aria-describedby=\"caption-attachment-955\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/tim.cexx.org\/?attachment_id=955\" rel=\"attachment wp-att-955\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/40dppulley-300x192.png\" alt=\"\" title=\"OpenSCAD pulley output\" width=\"300\" height=\"192\" class=\"size-medium wp-image-955\" srcset=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/40dppulley-300x192.png 300w, https:\/\/tim.cexx.org\/wp-content\/uploads\/40dppulley.png 584w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-955\" class=\"wp-caption-text\">OpenSCAD pulley output<\/figcaption><\/figure>\n<p>If you were planning to make it on a 3D printer, you&#8217;re pretty much done! You can output .stl directly. I don&#8217;t have one and will be carving it on a CNC mill, so an extra step is necessary. Basically, you&#8217;re going to want to carve the 3D model down to a simplified, 2D representation of just the pulley profile, and do any CNC\/toolpath-specific monkeying in your favorite CNC software. For this, OpenSCAD&#8217;s &#8216;projection&#8217; feature can be used. I created a separate scad file that simply imports the .stl from the first step and presents a 2D projection of the pulley profile only. <\/p>\n<p><code><br \/>\nprojection(cut=true) translate([0,0,-8.5]) import(\"C:\/data\/projects\/pickplace\/head\/pulleys\/Pulley_T-MXL-XL-HTD-GT2_N-tooth.stl\");<br \/>\n<\/code><\/p>\n<p>Change the path and filename to the file you generated, of course. The negative Z &#8216;translate&#8217; parameter lowers the part partially below the &#8216;floor&#8217; (zero), which, combined with the &#8216;cut=true&#8217; projection parameter, causes the bottom part of the pulley (large flanged base with setscrew holes we can&#8217;t cut on the CNC) to be excluded from the projection. You may need to modify this parameter depending on the height of the pulley you generated.<\/p>\n<figure id=\"attachment_957\" aria-describedby=\"caption-attachment-957\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/tim.cexx.org\/?attachment_id=957\" rel=\"attachment wp-att-957\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/40dppulley_slice-300x192.png\" alt=\"\" title=\"OpenSCAD pulley output (sliced)\" width=\"300\" height=\"192\" class=\"size-medium wp-image-957\" srcset=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/40dppulley_slice-300x192.png 300w, https:\/\/tim.cexx.org\/wp-content\/uploads\/40dppulley_slice.png 580w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-957\" class=\"wp-caption-text\">OpenSCAD pulley output (sliced)<\/figcaption><\/figure>\n<p>Then save this using Design -> Export as DXF.<\/p>\n<p>I cut this pulley from a piece of flat Delrin stock using a 1\/32&#8243; (0.03125 inch \/ 0.79375mm) router bit. A larger bit may not be able to get in between the teeth for 40DP profile. In my CNC software (CamBam) I added a bottom shoulder by outside pocketing the pulley profile to 1\/4&#8243; depth, then carving the rest of the way through the stock at a slightly larger diameter. If needed, a top shoulder can be added by gluing a washer to the top of the newly created pulley.<\/p>\n<p>But does it work?<\/p>\n<p>Yes :-) Below are some comparison images of the homemade pulley vs. a commercially available one. The latter is fine except that it doesn&#8217;t come in the shaft diameter I need.<\/p>\n<figure id=\"attachment_958\" aria-describedby=\"caption-attachment-958\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/tim.cexx.org\/?attachment_id=958\" rel=\"attachment wp-att-958\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0467-e1351487410857-300x226.jpg\" alt=\"\" title=\"Homemade and commercial pulleys\" width=\"300\" height=\"226\" class=\"size-medium wp-image-958\" srcset=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0467-e1351487410857-300x226.jpg 300w, https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0467-e1351487410857-1024x773.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-958\" class=\"wp-caption-text\">Homemade pulley (right) and commercially available pulley (left)<\/figcaption><\/figure>\n<figure id=\"attachment_959\" aria-describedby=\"caption-attachment-959\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/tim.cexx.org\/?attachment_id=959\" rel=\"attachment wp-att-959\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/pulley_comparison-300x178.jpg\" alt=\"\" title=\"Mesh Comparison\" width=\"300\" height=\"178\" class=\"size-medium wp-image-959\" srcset=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/pulley_comparison-300x178.jpg 300w, https:\/\/tim.cexx.org\/wp-content\/uploads\/pulley_comparison-1024x608.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-959\" class=\"wp-caption-text\">The quality of the pulley-belt meshing between the two is comparable. The tooth depth on the homemade one could stand to be a bit deeper, but I haven&#8217;t noticed a difference in performance so far.<\/figcaption><\/figure>\n<figure id=\"attachment_961\" aria-describedby=\"caption-attachment-961\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/tim.cexx.org\/?attachment_id=961\" rel=\"attachment wp-att-961\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0483-300x200.jpg\" alt=\"New pulley on motor\" title=\"New pulley on motor\" width=\"300\" height=\"200\" class=\"size-medium wp-image-961\" srcset=\"https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0483-300x200.jpg 300w, https:\/\/tim.cexx.org\/wp-content\/uploads\/IMG_0483-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-961\" class=\"wp-caption-text\">New pulley mounted on the new 4mm motor&#8217;s shaft. Perfect fit!<\/figcaption><\/figure>\n<p>* I can&#8217;t seem to find any source\/documentation on what the various timing belt &#8220;standards&#8221; are, or what makes one different\/better than another. Also, that source seems to have gone out of business. Suggestions for either of these resources welcome.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Woo, it&#8217;s been a long time since I messed with pick &#038; place stuff. Bad Tim. An irritation I have been having is making everything work using reliably sourceable, off-the-shelf parts (not lucky eBay\/surplus finds). In particular I&#8217;ve found small &#8220;tin can&#8221; stepper motors are hard to source in small quantities repeatably, and once you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","iawp_total_views":12,"footnotes":""},"categories":[4],"tags":[134],"class_list":["post-951","post","type-post","status-publish","format-standard","hentry","category-geek","tag-pickplace"],"_links":{"self":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts\/951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=951"}],"version-history":[{"count":7,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts\/951\/revisions"}],"predecessor-version":[{"id":975,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts\/951\/revisions\/975"}],"wp:attachment":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}