<p>So I am really fed up with inductive probes. The one I am using keeps getting shifted slightly every time I switch nozzles or run an oozy print. That means I have to autolevel again, then manually set a Z-offset (as I would have anyway if I didn't have an inductive probe).</p>

<p>On my Lulzbot Mini there is a different scenario. There are four washers at each part of the bed. The nozzle is "grounded" so that when the Mini touches the washers, a current is created that seems to act as the Z-stop. Surprisingly there isn't much out there for a DIY implementation of this.</p>

<p>Since I have an aluminum bed (and aluminum is conductive), I am thinking of doing the following:</p>

<p>1) Put one wire from the Z-stop ground pin to the aluminum bed. Make sure it is away from the wires for the heater / thermister (?)</p>

<p>2) Put one wire from the Z-stop 5V into the heating block of my nozzle.</p>

<p>When the nozzle probes the bed, a current will be created from the 5V heating block, through the conductive nozzle, into the conductive bed, to the Z-stop ground.</p>

<p>I'm always unsure when it comes to circuitry. Will there be any dangerous interference from this technique from, say, the bed heating circuit? I'm not sure what kind of protection circuitry are on each of the Arduino's pins, and I'd rather not fry my board if this sounds like a bad idea to someone.</p>

<p>I figure most people don't do this because they have sheets of PEI or some other non-conductive material on their bed. I can use PET tape but still leave holes in the tape for this autobed leveling probe. It would be really great if it worked and wasn't dangerous. </p>

<p>I shouldn't even need the third pin?</p>

[{'answer_id': 10586, 'author': 'Tom van der Zanden', 'author_id': 26, 'author_profile': 'https://3dprinting.stackexchange.com/users/26', 'pm_score': 2, 'selected': False, 'text': '<p>Aluminium is conductive, but aluminium oxide is not, which is just so what there (unavoidably, since aluminium rapidly oxidises in air) happens to be a thin layer of on top of your bed. The coating is very thin, but it might foul your plans. It would work better with a sharp probe (that can puncture the layer) than with a 3D printer nozzle. You should be careful, because your probing method might be unreliable (which could cause the nozzle to crash into the bed).</p>\n\n<p>Wiring the endstop 5V directly to ground will create a short circuit which will damage your printer. You should use the third (signal) pin and ground instead.</p>\n'}, {'answer_id': 10592, 'author': 'K Mmmm', 'author_id': 10369, 'author_profile': 'https://3dprinting.stackexchange.com/users/10369', 'pm_score': 2, 'selected': True, 'text': "<p>Edit: i recommend using some conductive felt</p>\n<p>The top of the aluminum bed is not conductive, but the sides of it are. You can re-create the Lulzbot Mini endstop set-up by connecting the Z-stop ground to the side of the aluminum bed, then using binder clips and nickels as the &quot;washers&quot;. In my case I had to use quarters because my bed was really big and the extruder came down far from its edges.</p>\n<p>To do this, you'll need:</p>\n<ol>\n<li>A multimeter and a &gt;100 Ohm resistor for safety</li>\n<li>Some nickels (or any conductive coin)</li>\n<li>Some binder clips (with steel insides)</li>\n<li>Some aluminum foil (increases reliability of setup)</li>\n<li>A Z end-stop</li>\n</ol>\n<p><strong>Building conductive washer perimeter</strong></p>\n<p>Create a conductive washer system along the sides of your aluminum bed by:</p>\n<ol>\n<li><p>Wrapping a nickel-sized amount of aluminum foil on the bottom, side, and top of the bed</p>\n</li>\n<li><p>Placing a nickel on top of that aluminum foil on the bedttop</p>\n</li>\n<li><p>Placing a steel-inside binder clip to hold down the nickel</p>\n<p>Do this multiple times along the perimeter of the bed. It seems you are limited to an evenly-spaced grid structure by the software. In my case I placed the washers at:</p>\n</li>\n</ol>\n<pre><code>X = 0, Y = 0\nX = 0.5 * Max_X, Y=0\nX = Max_X, Y = 0\nX = 0, Y = Max_Y\nX = 0.5*Max_X, Y = 0.5 * Max_Y\nX = Max_X, Y = Max_X\n</code></pre>\n<p>The aluminum foil provides a contact between the side of the bed and the top and bottom of it. The binder clip can be pressed inwards against the aluminum foil to ensure high reliability. However, the binder clip can get loose. So, using aluminum foil helps make the bottom of the bed conductive too, increasing the surface area of the contact for the binder clip.</p>\n<p><strong>Attaching red wire to hot end</strong></p>\n<p>Attach the red part of the Z-endstop to your heatblock. It must be in the heatblock somewhere. The thermister hole might work. For me, I was able to slide it in a small space that's used to tighten the screw that holds the heat rod.</p>\n<p>Now we want to attach the Z-stop ground (black wire) to the conductive perimeter.</p>\n<p><strong>Before attaching Z-stop ground underneath one of the binder clips, a word of caution...</strong></p>\n<p>The first time I did this, I stupidly placed a binder clip on top of the 12V heat rod attached to the bottom of the aluminum bed. This put all sides of the aluminum bed (and my conductive washers) at 12V, which created a short into the Z-stop ground pin when I connected it. This resulted in my Z-stop ground pin SMOKING up from the heat going through it. As a word of precaution, you should attach a resistor between the Z-stop ground pin and the side of the aluminum bed should something go wrong in the future. I used a 2.1 kOhm resistor I had laying around. This will limit the current going into the Z-stop ground pin. Since everyone's aluminum bed will be different (for e.g. the bottom of my bed is non-conductive, but yours might be conductive), it is really important to be careful here.</p>\n<p>Before powering on, test to see that all of the nickels have low resistance between them. Test to see that the hot end nozzle is connected to the Z-stop red wire.  Use a multimeter for this.</p>\n<p>If you don't have a resistor, wait to attach the Z-stop ground before powering on. This will let you check the voltage to tell if your aluinum bed sides are connected to the 12V heat rod. After that, you can power off and attach the Z-stop ground and power on again.</p>\n<p><strong>Setting up the software</strong></p>\n<p>If you've flashed your firmware before, setting up the software is easy. Go to the  &quot;AUTO_BED&quot; section of Configuration.h. First thing to do is to set your Z-offset to about 2.0mm and remove any existing offsets you might've had for a Z-probe (for e.g. X_PROBE_OFFSET... = -40 was set for me). The Z-offset should be set to a positive value this time. <strong>Don't forget to change this setting in EEPROM if you set itas well!</strong></p>\n<p>Since I'm only probing the perimeter, I use BILINEAR bed leveling for this one. Bilinear calculates points automatically for me, so I had to set up my perimeter according to an evenly spaced grid like I listed in &quot;Building conductive washer perimeter&quot;.</p>\n<p>First I activated AUTO_BED_LEVELING_BILINEAR</p>\n<p>And my IF tree looks like:</p>\n<pre><code>#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)\n\n  // Set the number of grid points per dimension.\n  #define GRID_MAX_POINTS_X 3\n  #define GRID_MAX_POINTS_Y 2\n\n  // Set the boundaries for probing (where the probe can reach).\n  #define LEFT_PROBE_BED_POSITION 1\n  #define RIGHT_PROBE_BED_POSITION 264\n  #define FRONT_PROBE_BED_POSITION 1\n  #define BACK_PROBE_BED_POSITION 264\n\n  // The Z probe minimum outer margin (to validate G29 parameters).\n  #define MIN_PROBE_EDGE 0\n\n  // Probe along the Y axis, advancing X after each column\n  //#define PROBE_Y_FIRST\n\n  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)\n\n    // Beyond the probed grid, continue the implied tilt?\n    // Default is to maintain the height of the nearest edge.\n \n    #define EXTRAPOLATE_BEYOND_GRID\n    //\n    // Experimental Subdivision of the grid by Catmull-Rom method.\n    // Synthesizes intermediate points to produce a more detailed mesh.\n    //\n    #define ABL_BILINEAR_SUBDIVISION\n    #if ENABLED(ABL_BILINEAR_SUBDIVISION)\n      // Number of subdivisions between probe points\n      #define BILINEAR_SUBDIVISIONS 3\n    #endif\n\n  #endif\n#elif // other bed leveling trees\n</code></pre>\n<p>Feel free to disable EXTRAPOLATE_BEYOND_GRID and BILINEAR_SUBDIVISIONS because they might not be necessary for you.</p>\n<p><strong>Time to autobed level</strong></p>\n<p>Of course, even with all that work, you're still going to want to be able to power off your 3D printer if it doesn't recognize even one of the nickels. So stay close to your power source and be sure to power it off safely if it doesn't recognize one of your contacts or if something comes loose. For example one of my coins was very dirty and yea, it made a huge difference in that corner, so I had to swap it out.</p>\n<p><strong>Last but not least</strong>, if you have some extra binder clips, you can enable the &quot;Nozzle cleaning&quot; feature in Configuration.h, just by binder-clipping the dark-green layer of a sponge to the board. Then just set the X-Y coordinates of that layer in the nozzle_clean feature in Configuration.h and make your life a lot easier.  These two features working well together basically mean you don't have to do anything between multiple prints except remove the prints from the bed.</p>\n"}, {'answer_id': 10607, 'author': 'cmm', 'author_id': 2082, 'author_profile': 'https://3dprinting.stackexchange.com/users/2082', 'pm_score': 0, 'selected': False, 'text': '<p>This will not work reliably.</p>\n\n<p>I know, I have tried it, for a couple of years, with poor consistency.</p>\n\n<p>Now, I will tell you that it worked better than the parallax IR sensors.  It worked better than trying to slam the head into the bed and listen for the click.</p>\n\n<p>I used the brass nozzle and the aluminum bed as a switch to detect the bed position.</p>\n\n<p>I used ABS slurry on the bed.  With a 100°C bed the ABS was soft enough for the nozzle to make contact.  Elmer\'s Glue for PLA also was soft enough.</p>\n\n<p>But, with the elasticity I had in the synthetic Z-axis of the delta machine, the time delay to much the bed adhesive out of the way, and the general problem of trying to conduct electricity through an aluminum oxide layer, I had variability of about 0.1 mm, which was far to much to give a reliable first layer.</p>\n\n<p>To "level" the delta bed, I would touch each point several times (with a clean bed) and fit my leveling function to the noisy data.  For finding my zero reference at the beginning of a print, I would touch off three time and only use the third one.  This helped, but it was still super noisy.</p>\n\n<p>I have subsequently incorporated a strain gauge in the triangular delta-bit.  It gives much more accurate contact information and is not effected by the bed glue not does the aluminum oxide layer cause problems.</p>\n'}]
['https://3dprinting.stackexchange.com/questions/10585', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/10369/']