Homemade Probe For 3D Printer: $3

You have a few choices if you want to use a probe to level your 3D printer bed. Rarely, you’ll see optical or capacitive probes. More commonly, though, your probe will sense a metal print or uses a physical probe to touch the print bed. [Design Prototype Test] has long used a BLTouch which uses the latter method. However, putting it in a heated build chamber prevented it from working so he set out to make his own simple design using an Allen key.

We’ve seen Allen key sensors before, but usually, they use a microswitch. We’ve also seen microswitches used to directly probe the bed. But, in this case, a 3D printed fan shroud uses an optical sensor to note when the Allen key hits the bed.

What we really liked was the retraction mechanism which is sort of semi-manual. A magnet holds the wrench up out of the way during normal operation. Before you home or otherwise probe the bed, you release the wrench from the magnet. When you are done, you can park it again. No need for a servo motor or anything else electrical.

It looks pretty reasonable with a range over 10 measurements of less than 0.05 mm. Not great, but not bad for $3. We are waiting for the STLs which are forthcoming. However, you can easily adapt the idea to your specific printer setup pretty easily. In addition, there are plans to improve the accuracy with a small redesign.

We recently went over how Marlin does unified bed leveling, and this probe would work for that. There is also a trend to put the sensor in the nozzle, which has its pros and cons.

39 thoughts on “Homemade Probe For 3D Printer: $3

  1. My biggest problem with all these Z-axis only touch based approaches is that you can’t do *automatic* XY skew calibration which is really important unless you got proper ‘machinist-grade’ rigid frame and linear rails (which I think would be overkill for FDM printer) and even the you should not move it after initial manual calibration.

    Prusa MK3(S(+)) uses its induction probe as a slow camera (~15min) for finding exact positions of calibration points in XY plane.
    And Prusa XL as far as I understood uses load-cells in all 3 directions to implement proper XYZ touch probing.

    It would be a nice hack if somebody implemented DIY 3-axis touch probing for those cheep chinese 3D printers!

  2. I’m not super convinced this is terribly innovative.
    We’ve seen optical Allen key probes before and self returning probes.
    I’m not sure I’ve seen the two combined before, but it’s a trivial change from microswitch to optical.

    1. There’s another product on the market (can’t remember the name), but it uses the same principle. A metal rod, ball bearing, magnet, and sensor hardware.

      The magnet is used to move the ball-bearing, which drops the rod into position.

      So no, this isn’t that innovative, just another way to do the same thing.

  3. Video format sucks for actually finding information in a timely manner, but I’m intrigued by the statement that the BLtouch probe fails in heated enclosures. Mine is 100% reliable in a 55 C enclosure. Has been for years. Am I right on the hairy edge?

    1. That was my thought as well. The problem I always had with the Touch-Mi Probe was the price (when I checked). You could print and make one for so cheap, yet they wanted almost official BLtouch pricing.

  4. The hobby 3D printing community never ceases to amaze me. Here we are 10 years after Makerbot and people are still trying to solve the first layer problem by trying anything and everything except addressing the actual problem which is unflat bed plates mounted on dumb leveling systems (4 screws to define a plane?).

    Do you really want to solve the problem for once and for all? And do you actually want the solution to be simple, like the guy says? And preferably use no parts, like Elon Musk says? Use a 3 screw kinematic mount and a flat bed plate. It doesn’t care what the bed or chamber temperatures are, it just works, every time, and doesn’t require extra motors, drivers cables, sensors, or complex configuration. Nope, you won’t see exciting youtube videos of it working because nothing moves at the start of a print. The printer just works like every other household appliance you’ve ever used.

    Someone above commented about active skew compensation. FFS, how hard is it to set the frame members and guide rails square to each other? It’s not rocket science. Get out a ruler and/or a carpenter’s or machinist square and adjust the printer’s frame. Not sure how to determine if the X and Y axes are square? print a large square or rectangle on the bed and measure the diagonals. If they match the X and Y axes are square. if they don’t make the obvious adjustments to the positions of the guide rails/frame members until the diagonals match.

    Do you know why you have to keep correcting the position of the X axis relative to the bed, or the bed relative to the XY plane? Because your printer has two or more Z motors. If it had one Z axis motor that drove all the Z axis screws/belts, the X axis or bed would never tilt and never need to be readjusted.

    1. I’ve used something similar in the past, an Allen key with a pen spring and a microswitch, and it would affect the bed height when probing because of the spring. (this was on a Prusa i3 clone, I’ve seen these probes more often on deltas). After probing you would lift it up a little and rotate it 90° so it would stow. This looks like a better approach because of the optical sensor, but I always wondered how repeatable those would be.

      Judging by the results on the article it doesn’t seem very repeatable. if that could be improved, then it could even be made fully automatic by putting a strong magnet outside of the bed area, in the X axis, and making the X carriage move there. and for stowing you would just go below the bed height until the (weaker) magnet at the top attracts the key, since you already know your Z height.

    2. I would love to see your printer design that supports all that you mention, a perfectly flat and level bed plate, perfectly square frame, and belts that never slip, stretch, get out of adjustment, etc. Seriously, if you could sell such a thing for a few hundred dollars, that someone could put together with standard tools in an evening, I think it would sell very well.

      1. Well sure, and if Ferrari could build cars like they do for $1000 we’d all be driving Ferraris. True fact: Quality and performance cost.

        My 300x300x680 mm print capacity corexy machine has all the mentioned features. I put it together for about $800, but I’m pretty resourceful when it comes to sourcing parts and materials. You don’t have to build the whole machine- you can easily replace a crappy bed support and floppy bed plate for relatively low cost. It costs even less to belt the Z axis screws to a single motor- all you need are a couple pulleys and a loop belt.

        My printer’s bed uses a piece of cast aluminum tooling plate that you can buy via ebay for $20-30. You can cut it to size using a hacksaw (it’s aluminum!). You can drill it with any drill (it’s aluminum!). If you don’t have a hacksaw or drill or access to them, maybe it’s time to invest in some tools – your life will be much better.

        The plate is supported on a kinematic mount by three screws because 3 points define a plane in the universe we inhabit. Springs are used to hold the plate down on the screws, not up. The mount allows the plate to expand when heated without pushing laterally on anything or causing anything to bend. The plate is the same size as the heater so it heats uniformly and exhibits minimal warping when heated. Unlike nonsensical 4 screw mounts, it takes literally seconds to level the plate when you install it on the machine, and you won’t have to touch it again. You can use a kinematic mount on any printer, whether the bed moves in X, Y, or Z.

        Once you have a stable mount and a flat, level bed, you’ll set Z=0 once and won’t have to touch it again.

        1. “Why do people keep trying to find alternative solutions to this problem which I solved by spending a lot more money?”

          So even though you have a solution that works for you, and you *know* it’s more expensive which puts it out of the reach of many people, you still feel the need to complain at length about people’s efforts to make alternate solutions that they can afford and that doesn’t affect you in the slightest?

        2. “The hobby 3D printing community never ceases to amaze me.”

          “Well sure, and if Ferrari could build cars like they do for $1000 we’d all be driving Ferraris. True fact: Quality and performance cost.”

          Enough said. on that…

          “belt the Z axis screws to a single motor”

          How to you tram the bed in this case? The only way I know if is to tilt the bed, which seems like the wrong approach, IMO.

          “If you don’t have a hacksaw or drill or access to them, maybe it’s time to invest in some tools – your life will be much better.”

          You don’t have to be insulting.

          “Springs are used to hold the plate down on the screws, not up.”

          I may be missing something, but I don’t see any difference. You must have something pushing up to put tension on the springs, and, in both cases, the springs allow the mount points to adjust to differing tensions.

          a 3-point mount likely does have some benefits over a 4-point mount. This is a pretty impressive demo:


          Of course, it uses a bltouch and 3 independent motor screws to automate everything.

          It’s great that you can make a printer that works well without the aid of modern technology, but, if you can throw a $40 sensor on a $200 printer and get prints as good as what you’re getting on your $800 handcrafted printer, I fail to see the problem.

          1. When you belt all z axis screws to a single motor, you still have some sort of mount for the bed to sit on- preferably a kinematic mount, that allows adjustment of the fine tramming. Of course, gross adjustment is done when you set the positions of the Z screws/pulleys upon assembly. Some people use a kinematic mount with auto leveling without a separate bed support. That can fix part of the problem.

            The difference between supporting the bed on 3 screws instead of on 4 springs is stability, and stability is the goal, because that allows reliable printing. Here’s a link to a kinematic mount that has an explanation of how it works: https://hackaday.io/project/163632-kinematic-mount-for-3d-printer-bed-moving-in-y The article has some links to my printer and some other stuff you might find interesting, especially the single-motor, belt-lifted Z axis.

            The video you linked is very nice, but if the guy has a flat bed plate, and it looks like he does, he shouldn’t actually need the autoleveling he built into the machine. He made the same mistake that many others make. They think autoleveling is a feature that they want, when what they really want is a printer that prints reliably without a lot of messing around. He used 3 Z axis motors to enable autoleveling. Every time the machine powers up, the motors jump to random positions. That tilts the bed. So autoleveling is necessary because he used multiple motors. If he had belted all the Z screws to one motor, their relative positions would never change and the bed would never tilt. He would not need a sensor or any of the other stuff that goes with autoleveling. He’d tram the bed once, manually, and that would be the end of adjustments. If he used a kinematic mount for the bed, that manual tramming would take less than a minute.

            When the $40 sensor fails, you can’t print. For $40 you can install a bed that doesn’t need a sensor. An aluminum plate is about as reliable as things can be. Of course, you have to address the Z axis problems, too. The last time I looked, a couple pulleys and a loop belt cost less than additional motors, cables, and a bigger controller that has more drivers for the extra motors. Likewise, when one of the Z motor drivers or cables fails, you can’t print. The more complex you make the system, the more points of failure you introduce. That doesn’t increase long term reliability.

            Of course, it may not be possible to simply replace the bed, or motors with pulleys and a loop belt, depending on the construction of your $200 printer, so you may be out of luck as far a making that sort of improvement goes. As my rustic grandmother might have said “you can’t make a silk purse out of a sow’s ear” and a $200 printer is definitely a sow’s ear. Maybe you can use the understanding of the actual problems to select or design/build a better machine next time.

    3. Feel it is rather worth pointing out that 3 mounting points and a bed that was flat when cold does not magically mean it stays in the same plane or flat when warm – it absolutely can care what the temperatures are – you have dissimilar thermal expansion co-efficents, internal stresses – a whole world of things than can take your 3 points and flat bed and make them no longer planar to the x-y stage or flat…

      Also even if you tune a printer to be square with all the mass being thrown around on wet noodle quality structures on many printers they won’t be certain to stay that way, so all the software corrections create a machine that ‘just works’ exactly as you desire.

      Which is the wonderful world of fixing it with cheap tricks like bed mesh leveling – it just works, and by the act of correcting for the cheapness of the hardware mostly in software lets damn nearly anybody now buy (or at least borrow) a cheap off the shelf printer and get on with their projects – even bootstrapping up to a better mechanical design without needing have a half way well equipped workshop before they can build anything…

      p.s. would I prefer if everyone had the precision ground granite rails, with air bearings for that super stiff vibration damping printer frame or other stupendously over-engineered but superbly effective solutions – who here wouldn’t, but are you going to pay for everyone’s upgrade? Infact stuff everyone else you care to pay for mine? If not shut up about expecting folks to spend twice as much or more to get the better machine and instead celebrate stuff like this that helps make those cheap machines just work perfectly well!

    4. @mrehorst – Flat at what temperature? Room temperature? The temperature you use when printing PLA? PET-G? ABS? Some other filament?

      How flat? Are we talking precision ground in a NASA-certified clean room? Or is it just pick the slab of aluminum from the box store that appears to have been run over with the forklift the least number of times? Something in between? How much are we spending?

      Do you have the solution for the perfect adjustment screws that allow you to adjust the bed in the first place but never moves on it’s own? I find that ever 100 or so hours of printing I have to adjust my bed screws because they move. Perhaps that’s my fault for not trying harder to come up with a non-moving solution. Changing from a PCB-bed to an aluminum one with a better heater is on my to-do list so perfecting the current setup isn’t really a priority.

      Do you ever change anything?

      I use tape with PET-G, abs-juice with ABS and bare glass for PLA. Switching between them always seems to require a slight adjustment. I can either adjust the bed itself or the offset. Either way takes more trial and error than I would like. I look forward to mounting a BL-Touch so I don’t have to do that anymore.

      Do you ever disassemble to fix a clog or swap extruders? When I have a clog I prefer to take the whole thing apart, I burn out the crud from the nozzle, block and heat break over flame then clear the carbon out with a needle, a drill bit and lapping compound (toothpaste) which I then clean with water and dry by heating again. I also still have a 3mm extruder/hotend combo that I swap in occasionally to print old filament although I don’t intend to buy any more of that once it is all gone. Each time I disassemble for either of these things there might be a slight difference in nozzle height after, just enough to require adjusting again.

      I HATE doing all this adjusting. I’ve gotten pretty good at it, IMHOP but I still am very eager to stop doing it.

      Forgive me if I am wrong but you kind of sound like someone who prints with just one kind of filament (PLA?), using one set of settings, probably on a small (easier to adjust) bed and thinks this means they know everything.

      1. I’ve been designing and building my own printers and printing for about 9 years, so I’m not exactly new to all this. All the problems and solutions are things I have learned, mostly the hard way, over that time. None of the solutions are very difficult or expensive, but some may require access to tools or some inventiveness if you lack access. If you’re into 3D printing and you lack inventiveness, God help you!

        The bed is 300×300 cast aluminum tooling plate, which comes milled flat (that’s why it’s called tooling plate), covered with PEI. It is trammed and zeroed at 100C, and is flat enough to print edge to edge in 0.2 mm layers, any material I use, including TPU, ABS, PETG and very rarely PLA. All those materials stick to PEI without any extra goo smeared on the bed.

        The bed is on a kinematic mount that lets it expand without pushing anything laterally. It sits on 3 screws arranged so one controls pitch and another controls roll. The roll adjustment doesn’t affect pitch, so you set pitch first, then roll, and the tramming is done. The leveling screws are held in PTFE blocks that hold the screws securely and allow them to be turned easily for tramming. The PTFE blocks are mounted on a 4040 t-slot support “tee”. See: https://1.bp.blogspot.com/-hBQHaLXxLHc/XMkKqdyk1NI/AAAAAAAAZgM/TG5-gE6UepYyg2v7If3qYDH7DjdXleIagCPcBGAYYCw/s2048/bed%2Bsupport.jpg The support rides on linear guides and is lifted by belts in the Z axis.

        It has been operating with perfect reliability requiring retramming only after I make mods to the machine’s Z axis which is pretty rare, last time about 8 months ago, IRIC. The printer is large and heavy and I transport it laying on its back in my car. When I take it out, I stand it back up and start printing without and adjustments.

        I have changed extruders, nozzles, heater blocks, etc., and then have to rezero, about a 10 second operation. I think the last time I did that was 6 months ago. I don’t have problems with clogged extruders as I almost never print PLA, which seems to be a real nozzle clogger. I have never had much use for PLA.

        Here’s a link to my last printer design/build, but there have been many updates since that first blog post:
        Search the blog for “UMMD” to see all the updates.

        1. The first point to is that mrehorst is completely right in every respect. Or at least he is right for the sort of printing that he does on the sort of financial and time budget that he sees as apropriate. He is also not wrong if you regard the present state of the art of FFF 3D printing as being firmly fixed. If you want to know about the best standard stepper motor, controller, build stage, hardware or software then mrehorst is the expert to go to.

          But if you just want to learn how to make as complicated a tool as a 3D printer,
          or if you want to explore new ways of making a 3D printer,
          or if you want to find if commonly held truths about 3D printer are really true,
          or if you want to contribute something to the community of those who make 3D printers,
          or if you want to keep the cost down either because you have a tiny budget or so others who have a small budget can copy your work,
          or if you make things for the sheer pleasure of making then, or indeed for many reasons I have not thought of, then please don’t let mrehorst put you off.

        2. I’d like to also add that the reason for cast aluminum tooling plate is that it does not have the internal stresses that rolled or extruded aluminum does. It will not deform to the same degree that a plate of 6061 will.

  5. I don’t know… I’ve used every sensor including every variation of inductive/capacitive/PINDA/SuperPINDA, smart effectors, IR probes, piezo sensors, DIY “BLTouch killers”, etc…

    And none of them have ever been as repeatable or reliable as my BLTouch 3.1s. I use surface-milled beds and 3-point leveling with stiff springs, and prints always lay down the same way every time.

  6. all these super auto level precise BS things are just trying to find a solution to a problem that is not there. PAPER WORKS! it has worked in the machining community for as long as i can find and will and their tolerances are way more strict than 3d printers. seriously the resolution of fdm printers does not come close to making a difference between a piece of paper or a bl touch. it might save 10 to 15 seconds over an 8 hour print but i bet that time could be better spent on optimizing the design itself rather than this.

    1. I’m not a machinist, so I’m not sure what you’re comparing the use of the bltouch to, but I suspect it’s a different problem. Certainly the bltouch is not required to measure the Z offset in one location, but it’s very useful when performing multi-point bed leveling to compensate for not quite level / flat beds. Even thick glass plate, which is what I use for my print surface, can vary enough across the surface to cause adhesion loss at the edges / in the corners. That’s not to mention adjustments that might be required to compensate for other slight misalignments.

      Even doing just a 4/5 point leveling will take way more than 10 to 15 seconds, and if a $40 sensor can prevent the loss of even one 8 hour print, it’s well worth it IMO.

      I’ve worked very hard to make my printer as flat, level, square and ridged as I can to try to make printing as reliable as possible, but it’s not easy to achieve sub-millimeter precision of adjustment across an entire surface that is 300mm across. That’s where the bltouch comes in.

      1. As someone that works at a machine shop, a piece of paper (we like to use post it notes at our shop) is typically about 0.003″-0.004″ thick (0.0762-0.1016mm). In order to touch our tools off on whatever we’re working on (set our Z origin essentially) we bring our tool in pretty close, then go down by 0.001″ while continuously sliding the post it note between our tool and our workpiece. As soon as the post it note gets stuck, we know we’re within that 0.003 inch mark. Paper thickness is very reliable because it HAS to be. Think about a ream of paper and making sure it fits in a box. 1000 pieces at 0.006″ thick vs 1000 pieces at 0.004″ thick is the difference between needing a 4″ thick box and a 6″ thick box. From a supply chain POV, ordering different size boxes increases costs because as your quantity order increases, your cost per box decreases. Often times, you can get 750 boxes for the same price as 500.

        1. Indeed but as a machinist (albeit a pretty novice one) and 3d print user Brian is right its a completely different problem – the machinist makes things flat and to size, touching the tool off to do so, the 3d printer is already in existence and may be akin to the rolling hills in flatness, it touches off in many places so that it can follow those hills – which gets good first layer adhesion.

    2. The problem is real, but they’ve chosen the software/electronics solution instead of the mechanical solution. I prefer the mechanical solution (flat bed plate, proper mount, etc.) because it’s simpler, and simpler is more reliable. On the rare occasions when I do something to my printer that requires retramming the bed, I use a piece of paper. Once the level and Z=0 points are set they don’t have to be touched again until I do something else to the machine that requires it. I think I retrammed the bed about 8 months ago…

  7. I have a wire connected to the print nozzle and an un-insulated section of the bed that is wired to ground. I have a custom routine where the nozzle searches for the bed, and when the nozzle is grounded, it sets the z zero. I then have two grounded metal posts at the extreme ends of x and y that the nozzle touches to get the bed size and a reference for zero. Because I’m using metal/metal electric continuity, it is very accurate and repeatable. With no moving parts, it never wears out. The surfaces also don’t actually touch but get within a step of touching before continuity is detected.

    1. I wondered about using a simple electrical connection to detect the bed a while back, and I seem to remember that it was covered by some patent, which prevented any commercial implementation of it. It also seems like there were issues with dirty tips not making proper contact. It’s good to hear that you have something working. Using the tip to probe seems like an ideal solution.

      1. Hypothetically one could use the quantum tunneling effect to measure the distance, just like a tunneling microscope! In this case, no contact is needed… you just measure the tunneling current, which varies as a function of 1/(d^4) where d is the distance. However, I think the current would be so small at the ranges that a probe could “step to” that you’d go from insanely-small-current to full contact in a single 1/32 micro-step.

        Just a thought.

        1. I just did a bit of research on this idea, and it’s totally impractical for this use. The current is exponentially proportional to the distance, and the current varies by a factor of 1000 over a distance of just 0.3nm. Plus it also requires a vacuum. So yeah, no :D

        1. So what you’re suggesting is using the capacitive effect, which might vary because of the bed temperature affecting the dielectric (my printing surface is G-4, for example). I’m not sure how much it would be affected, though.

  8. His attempt at an argument against duplicators doesn’t really make sense.

    -Buy the real thing so that they’ll profit and produce more.
    …except in the next sentence he says the company behind BLTouch hasnt actually done this, despite being quite well supported over multiple years by the community.
    -Buy from original creators or no one will make new products.
    ..excepting the fact that he is describing multiple other companies that were created to build those duplicates.

    Also the idea that ‘those chinese companies’ don’t innovate is wrong from the outset. Most of our printers are design variations made by companies that cloned I3’s. Hence the term I3 clone. Yet we have lots of innovation and products based on those while companies like BLTouch, E3D, Duet, Prusa and others continue to develop and sell high end versions.

    There is an equilibrium that occurs in every product space between the originators and the duplicators.

  9. Is there an agreed name for this type of Z probe where deployment and retraction of the probe is by programmed sequences of movements? The reason I ask is that I already use a programmed sequence to park the effector of my Delta printer in a position near Z max where no printing will occur: It would be useful to trigger deployment and stowing of the Z probe using the same hook/trapeeze that I use for stowing.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.