Marlin + RAMPS 1.4 + BL Touch is seemingly impossible to bed leveling

New Home Forum Mostly Printed CNC – MPCNC Troubleshooting – MPCNC Marlin + RAMPS 1.4 + BL Touch is seemingly impossible to bed leveling

This topic contains 24 replies, has 4 voices, and was last updated by  Michael McDaniel 12 hours, 53 minutes ago.

Viewing 25 posts - 1 through 25 (of 25 total)
  • Author
  • #119807

    Michael McDaniel

    For 3 days I have been trying to get my MPCNC build working using Marlin + RAMPS 1.4 and now I am about ready to light this thing on fire and push it into the driveway.

    I can not get this thing to home the z-axis properly, much less complete G29 for autobed leveling. This build is a suppose to be a dedicated, large format 3D printer. Given how big the bed is, auto leveling and a filament run out sensor are a must on the build. I have a BL Touch clone mounted to a Mk8 extruder with a 0.8mm nozzle all being controlled via RAMPS 1.4 + Marlin 2.X Dual endstop firmware from Ryan’s links.

    Current Issues:
    Running a G28 or G29 from the Serial Monitior in the Arudino IDE fails. Previously, when I tried to run either G28:
    1). Printer homes X
    2). Printer homes Y
    3). Printer does nothing as it processes…
    4). Printhead takes off to the center of the bed, raises the Zaxis, deploys BL Touch (it will only home Z at the center of the bed for some reason)
    5). Printer then drives the Z-axis into the bed ignoring the BL Touch.

    Running a G29 would get the same results or I would get an out of bounds error when autobedlevling was done.

    After battling this for a bit, I managed to get determine the Z-SAFE_HOMING sending to the center of the bed and setting coordinates to 0,0 there. I changed Z-SAFE_HOMING to:

    #define Z_SAFE_HOMING_X_POINT (10)
    #define Z_SAFE_HOMING_Y_POINT (10)

    Now it tries to home Z at least at 0,0 now and G29 attempts to work, BUT I get a “Z Probe past bed” error now. Can someone please tell what is jacked up with my config??? I just want to get to printing some big parts here from Prusa Slicer.



    Not sure what “Printer does nothing as it processes…” means, but the rest seems normal to me. Except that the bltouch isn’t triggering a stop.

    It sounds like thr trouble is the wiring to the Z enstop s pin. Or something wrong witg the BL.

    If you home x and y and move the Z way up, then home Z, you should have time to stop it before it smashes you bltouch into the bed.

    If you do that, as soon as it starts homing Z just lightly touch the tip of the bltouch and it should suck back up, and that should be stop the movement (although it might home a second time after a bump).

    If the tip doesn’t get sucked back up, then there’s something wrong with the bltouch.

    You can also put the bltouch into a self test mode through the LCD. There is probably a gcode for it, but I dont know it.

    If it works, but just not at the bed, then it’s probably not at the right height. You can’t adjust the screw inside of it. That’s set at the factory.

    If it sucks up, and doesn’t stop homing then either the wiring is bad, or the logic involved with the Zmin pin is bad. That sucks, because it’s tough to debug when the bltouch only does it’s thing for a moment.

    FWIW, I personally like the bilinear version of autohoming and I use it on my two printers with BLtouches.

    Don’t destroy it. It’s going to be awesome.

    1 user thanked author for this post.


    There are also 3 versions of the real BL touch that are wired differently, at least two of them are for sure and require different firmware settings. Then there are the clones. I had a very hard time getting mine going I spent a whole evening on it, I finally got it working and unplugged it to clean up the wiring mess and plugged it back in backwards and fried it. Have not touched one since. Just trying to let you know I don’t think it is very obvious or easy, but once you do get it, you should be okay if you don’t unplug it without clearly marking it!

    1 user thanked author for this post.

    Mike A

    I believe on some of the BLtouch clones have the endstop wires backwards.  But before you switch it few things to check.

    1.  Bltouch  lights up red and goes through self test from power up.  Good move to next.  No then your 3 pin wires are not right.
    2.  Can you do a self test from the menu?  Does the probe deploy and retract?  Should if 1 was working.
    3. Home or G28.  X and Y should home and as the probe deploys tap it so it retracts.  Does it go up?  If not the end stop wires are backwards.  Before you switch it around it could be another issue as.  Try these first.  You may need to uncomment #define BLTOUCH_SET_5V_MODE and or #define BLTOUCH_FORCE_SW_MODE.  On some of the SKR boards you also need to enable #define FAN_SOFT_PWM.

    You will have to change the offset value of the Bltouch as well.  You can’t have decimal numbers or you’ll get outbounds errors.  So it will be 38, 19, 2.  Z safe homing should be changed back, when uncommented it should always go to the center of the bed.  This is how you set the z negative offset to the nozzle.  You will need to comment out //#define MIN_SOFTWARE_ENDSTOP_Z, so you can set the negative offset bed to nozzle.

    Final option you might want to try is change the speed value, #define XY_PROBE_SPEED 10000.

    • This reply was modified 1 week, 2 days ago by  Mike A.
    2 users thanked author for this post.

    Michael McDaniel

    Thanks Jeff, Ryan and Mike! I haven’t lit it on fire yet, but took a break from firmware for a day to finish some other things.

    @jeff, I ran through your trouble shooting steps. XY homing works just fine. On a G28 Z command (after raising the Z axis way up) the BL Touch doesn’t deploy the probe which is why it is crashing the nozzle into the bed. Self tests from the LCD menu works fine – probe deploys, stows, and completes its self test. The BL Touch does a self test when the printer reboots as well deploying and stowing the probe. I get all the proper LED lighting on the probe itself. So I don’t think it is the wiring or the probe.

    @mike A. thanks for your reply. I made the firmware changes you suggested, and the BL Touch probe deploys now on G28 Z, but the nozzle still plows into the bed. It is now only doing Z homing in the center of the bed again.

    @Ryan, I totally agree – these BL Touch probes are a major pain to get working. I started to go with an induction probe like my Prusa printer but I don’t have any metal on the bed yet. I wanted to see if I could get a large format printing working first (proof of concept) before I dropped $200 in parts on a really large heated bed build (thinking of 6 silicon heaters on a aluminum plate running on their own PSU switched via relay from the RAMPS board). I could totally use induction sensors on that. Hopefully the massive printer enclosure will help with warping IF I ever get this thing printing.


    Michael McDaniel

    OK. Ran some more testing this morning after making all of the firmware suggested changes (thanks again @mike A.).

    G28 homes X and Y fine. Z homing moves to the print head to the center of the bed and deploys the BL Touch probe. Then just buries the nozzle in the bed ignoring the triggered probe (Probe status light goes from Blue to Blue + Red when the probe makes contact with the bed).

    @jeff – I did your suggested test of rising the Z axis up 50mm then doing a G28 Z command and touching the probe with my finger to close it. The probe registers the touch but the Z axis continues downward anyway until I hit the kill button on the printer.

    I reversed my Z endstop connection on the RAMPS board and did the finger test again. The probe doesn’t register a touch when my endstop is reversed but the printer halts not accepting any commands. The serial monitor reports the following error:

    echo:endstops hit: Z:10.00
    Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)

    Any other ideas on what is going on here guys??? I attached a movie of the G28 Z command running if that helps.



    It’s been a while since I had to mess with the BLTouch settings… Sorry.

    So now the self tests pass, and when you deploy the probe, it does go down, and when you home, it deploys it, when you tap it, it goes up, but it doesn’t stop homing?

    Maybe you have a pullup on the Zmin pin and it shouldn’t? Or you don’t have a pullup and you should?

    The movie isn’t working for me. I’m sure it’s on my end (.mov is apple stuff, right?). But Just so you know, I haven’t seen it.

    • This reply was modified 1 week, 1 day ago by  Jeffeb3.
    1 user thanked author for this post.

    Michael McDaniel

    No worries, I appreciate the help @jeffeb3.

    Yes it is a .mov because I am all on Apple gear here (I am a designer). I made a new video with the “finger test” added and attached it as a .mp4 if that helps. Being on Apple gear does make the CNC workflow suck since there are few software options outside of 3D printing for the Mac.

    Yes, the probe passes the self test and responds to all commands from the serial monitor or LCD menu.

    Running G28 just crashes the nozzle into the bed.

    Running the G28 “finger test”, the probe registers the contact  (status light turns red) but the printer doesn’t stop the z axis.

    Reversing the end stop connections on the RAMPS board just results in the error I posted previously.

    1. final2.mp4


    Invert the Z endstop logic? Just a random guess


    Michael McDaniel

    Thanks @Ryan.

    I tried flipping the Z_MIN_ENDSTOP_INVERTING and the Z_MIN_PROBE_ENDSTOP_INVERTING, but still get the same results – nozzle driving into the bed without caring what the probe is saying.

    Configurations tested that still have the same behavior:
    1). // Z_MIN_ENDSTOP_INVERTING  true




    When I run M119 on the printer I get the following with the nozzle 50 mm above the bed no matter if the inverting is set to TRUE or FALSE:

    Reporting endstop status
    x_min: open
    x2_min: open
    y_min: open
    y2_min: open
    z_min: TRIGGERED
    filament: open

    What’s interesting is I run the “Deploy” command from the LCD menu for the BL Touch then do a M119 I see z_min: open and when I do a “stow” command on the BL Touch then do a M119 I see z_min: TRIGGERED

    I am at a complete loss here on this.




    Should do it.



    Well, maybe not… If it’s opem when homing and triggered when not, then that might be right…


    Michael McDaniel

    Yeah. I had it set to “false” previously and still get it drilling into the bed. Ryan suggested inverting it, so I tried that plus a few combos for good measure all with the same result.



    Have you disabled the pullup?


    Michael McDaniel

    Not with the current config. In previous configs I have enabled and disabled the Pullups / Pulldowns in various combination with no success. I will try that out again with this config in a little while.


    Michael McDaniel

    No dice. I have no idea what is going on with this thing.



    What if you disable the pullup and swap the endstop pins?



    I just checked my bltouch (I know there are many types) and it is “open” when it isn’t deployed.


    Michael McDaniel

    Interesting the M119 shows my BL Touch is running the opposite – TRIGGERED when not deployed – and inverting the logic didn’t work.

    PULLUP is disabled now and it isn’t working. I can try flipping the endstop pin on the RAMPS board again to see what happens with PULLUP disabled. When I did that earlier this morning I just got a printer error.




    Mike A

    You get it working yet?


    Michael McDaniel

    No. I can not get the BL Touch working. Same issues.

    Took a break from it before I took a hammer to the thing out of frustration. I will try again tomorrow. May swap out the Mega and Ramps board tomorrow to see if that helps. I am wondering if it is a Marlin 2.x bug now.



    There’s no reason you can’t try 1.1x. 2.0 is a moving target and even though 2.0 works on my machine, it’s not the same by several months.


    Michael McDaniel

    OK guys. I messed around with firmware again this past weekend and things have only gotten worse.

    Now, my X and Y endstops are not working when homing. They function when doing M119 commands (show triggering), but homing the X and Y with G28 just leaves everything crashing and grinding against the endstops. What the hell? Instead of getting close with the BL Touch, I have now taken two steps backwards!

    I tried reverting to previous versions (replaced the config files with the ones I had uploaded here actually with working endstops). That didn’t work. After jacking around for 2 more days with firmware and nothing working I went extreme and completely replaced the controller (Mega + Ramps 1.4 board) with some extras I had in my shop. Still nothing. The only thing I can think of is the Marlin 2.X version must be buggy as hell with an Arduino + RAMPS 1.4 board as an controller, so perhaps I could try a Marlin 1.X flavor instead.

    I have no idea what to tweak now in the Marlin firmware as I have spent over a month trying every combination possible and reflashing without ever being able to do even a simple test print from the damn machine.

    This is my second MPCNC build. My first MPCNC was a dedicated router using an Arduino GRBL controller that never cut accurately. My first MPCNC was so bad that I just started saving up for a Shapeoko from Carbide 3d. I finally gave up on it and recycled the conduit and motors into this build after it just took up room in my shop for years. Instead of buying a router (which I now regret even more), I decided to give the MPCNC one more try and used the money to remodel my entire shop + build new tools including this MPCNC based 3D printer.

    My first build and now this one is why I originally mentioned lighting it on fire and pushing it out of shop in a blaze of glory. I have never had a functioning MPCNC in my shop.

    If anyone has any idea of what to try now, then I am all ears!!! HELP!!!



    Ok, take a breath. This sucks. Something is really wrong here. Software is dumb. It’s not magic and if you revert your changes, it will be exactly the same. So something else is wrong here.

    The MPCNC is a good starter cnc machine, and I can’t really help you get accuracy out of your first machine now.

    As a 3D printer, it is advanced. You need to have a good deal of fixing experience to get it working. There is only so much I can do from here. Your fingers, eyes, ears, and keyboard are not available to me.

    It’s also not fair to blame the platform. The platforn is just listeneing to where the steppers move it. The ramps, marlin, and your changes are not part of the platform.

    To be fair, I think you’re doing a good job describing what’s going on, but I only have the info you’ve given me and it sounds like either your ramps, arduino, bltouch, or marlin install are broken. The Marlin we can look at, but some piece of hardware may be broken. I suspect it’s the 3Dtouch.

    What I would do from here is start from a much simpler place. I would start from scratch with Marlin from Ryan. Something from the release pages, for the mpcnc, with the mk8 extruder. I would even start with single endstops. Get some sure footing where you can check the parts and features one at a time and save and take copious notes and pictures as you’re going along.

    You should be prepared to need some new parts. I am very suspicious of your bltouch.

    1 user thanked author for this post.

    Michael McDaniel

    Thanks, Jeffeb3. Apologies for ranting. My builds seemed to be cursed software wise.

    I really want the MPCNC to work (it is just too cool not to get working). This project has now become a major bottleneck for every other project I have going on and I don’t know what else to do with it. I am seriously behind schedule now. So not trashing the platform – just my luck with getting the hardware actually running. The ghost of my first build are screaming in my head now that this big beast has gone crazy after being so close at one point.

    I am going to just start over now with electronics since I have a new Mega + RAMPS 1.4 board installed.
    1). Take a breath.
    2). Put down the lighter & gasoline (totally joking)
    3). Triple check my wiring again
    3). Double check the physical limit switches with a meter
    4). Start over with a clean Marlin 2.x build from Ryan (RAMPS 32step dual end stop)
    5). Get G28 XY working
    6). Test G28 Z
    7a). IF G28 Z test works —> attempt auto leveling of bed
    7b). IF G28 Z test doesn’t work —> order a new BL Touch for Amazon

    1 user thanked author for this post.
Viewing 25 posts - 1 through 25 (of 25 total)

You must be logged in to reply to this topic.