BL touch g29 without endstops

Hi all ! Stoked about my new lowrider, thanks Ryan and everyone, this is just mindblowing.

I’m in the final stage of getting it up and running and I’m having a little issue with z probing.

I plugged my BL touch, changed the firmware, started playin, probe retracting and extending, probing z, all good. using ENDSTOPPULLUPS from Marlin makes g28 x y work even without endstops.

Then I tried the actual probing with g29, and the probing had a weird pattern, not going back along x. I soon realized that ENDSTOPPULLUPS was the issue, preventing the machine to go back in any axis during g29. Basically with the classical 3x3 probing on a 600x600 machine, it would go:

x = 50, y=50, all good ; x = 300, y=50, all good; x = 550, y=50, all good ; x=550, y =300, all good

and then stay in that place because x needed to go negative (x=300, y =300) and the ENDSTOPPULLUPS was activating x endstop. Weirdly the verbose of g29 actually says that coordinates are decreasing, and the process actually shifts the coordinates of the machine.

So I have two choices :
find a way to home without physical endstops
find a way to get rid of this issue.

I tried all I could find on the web in the firmware : software_endstops, plugs, trying to disable mandatory homing, whatever… no chance.

I eventually validated the issue by plugging wires on endstops connectors on Ramps, triggering it for g28, and untriggering for g29, and it works perfectly.

Does anybody have a less ugly solution for me ? I’m thinking there MUST be a simple hack to home to the current position without endstops or pullups…

thanks a lot ! I’m preparing a full report and feedback for the build

EDIT: The goal is to probe the stock of wood before cutting, in cases where stock height deviates several mms.

Lowrider with bltouch? Your tooling will not be consistent enough to use a bltouch? Or do you mean a 3d printer?

1 Like

Not sure what you mean by “home to the current position” or what G29 probing in a 3 x 3 pattern will get you on a LowRider. You don’t need endstops, you just need to adjust your homing process.

3D printers rely heavily on endstops because the slicer places the workpiece within the physical envelope of the printer. With CNC routing/milling, the workpiece is placed by the operator, then the origin is set on the workpiece, and all moves from then on are (generally) relative to that assigned workpiece (rather than machine) origin.

G92 is the command used to set the current position, and is commonly used in the form “G92 X0 Y0 Z0” once the tool has been jogged to the desired zero location.

1 Like

I realize I should have given a bit more context for that issue, sorry for that.

So my goal is to engrave raw wood that is always badly warped (good ol’ pine tree from south west france).
I’ve been doing it on my MPCNC 600x600 without bed probing. Then I moved to my friend’s ooznest cnc 1200x1200 running modified reprap firmware. When you reach these sizes, a 1mm height deviation on your stock is really the least you get, mostly 2 or 3mm. In order to engrave accurately, we started using manual mesh bed compensation, which proved to be quite successful.

The process was the following : start the machine, G92 X0 Y0 Z0 on the stock xmin ymin and zmax (stock top), launch manual stock probing (piece of paper on router bit in all required mesh positions) without any homing, and finally launching cut. The router would follow quite accurately any curve on the wood, so the process was quite interesting.

I wanted to move on with my own machine and an automated process, and the 20$ BL Touch looked exactly like what we needed. I thought this manual process could be replaced easily with the BL touch, but I might be wrong. I might need to think this process differently, but I’m rather stuck right now… Any idea to probe a crappy warped raw stock is more than welcome !

So you could use a Spoilboard bit. Flatten it first. Not sure if that helps or not. But the bltouch may work. You would need to most likely adjust z after to the tool yiu use, and i am not sure that would work. I am also not sure how large of a grid that the firmware can map.

On my machine, the probe pattern sort of sprials out from the center, it doesn’t go along a straight line front to back or side to side.

Have you set the offset distance between the probe and the tool in your firmware? You also need to set the reachable areas that it can probe, otherwise I get complaints that points can’t be probed.

The process I use to generate the mesh (on my 3D printer) is based on the description from the Marlin firmware documentation.

;--- Setup and initial probing commands ---
M502            ; Reset settings to configuration defaults...
M500            ; ...and Save to EEPROM. Use this on a new install.
M501            ; Read back in the saved EEPROM.

M190 S65        ; Not required, but having the printer at temperature helps accuracy
M104 S210       ; Not required, but having the printer at temperature helps accuracy

G28             ; Home XYZ.
G29 P1          ; Do automated probing of the bed.
G29 P2 B T      ; Manual probing of locations USUALLY NOT NEEDED!!!!
G29 P3 T        ; Repeat until all mesh points are filled in.

G29 T           ; View the Z compensation values.
G29 S1          ; Save UBL mesh points to EEPROM.
G29 F 10.0      ; Set Fade Height for correction at 10.0 mm.
G29 A           ; Activate the UBL System.
M500            ; Save current setup. WARNING: UBL will be active at power up, before any [`G28`](/docs/gcode/G028.html).

For your situation, temperature won’t matter, and you’ll probably execute the probing more frequently than I do. And you’re using G92 instead of G28 for “homing.” It will be tricky generating the mesh for different size workpieces, as the number of probe points that generate the grid is set in firmware, and you’re probably redefining origin based on workpiece rather than machine space.

The number of spots probed is set in the firmware, and I need 2 rounds of G29 P3 to get all my edges filled in due to the location of my probe (can’t probe the whole physical bed due to probe being offset to the right side of the nozzle).

I’m guessing you’d want a new mesh for each workpiece, and no mesh active if you’re using known flat stock, so you probably don’t want to do the M500 with UBL activated.

Thanks guys.

Flattening the board is an option but I’d loose the rough aspect of the wood.

Tom that’s exactly the process I do, and I still get these weird patterns because I don’t have endstops.

I’m kind of realizing that my approach is not usual ! I was sure everyone was doing mesh bed compensation on stock with their lowriders… How can you possibly get straight stock on 2.5m length ! haha

thanks I’ll get back to you if anything arises

From the sound of it, this might be the best option. G28 and G92 are not equivalent, as evidenced by the blinking question marks that remain with G92 and only stop blinking with G28. If Marlin has hardcoded a dependence on endstops and machine coordinates, theres probably not much you can do.

But manual triggering of endstops to keep Marlin happy doesn’t sound too bad.

You asked for an alternative thats less ugly, and I only have a hack that is more ugly: use a spare gpio and route it back to the xmin/ymin inputs. Then with M42 you can trigger the endstops by gpio voltage on xmin/ymin. So you would trigger with M42, do G28, and then un-trigger with another M42 command, and then G29. Personally I think a physical button is cleaner but M42 should achieve the same thing if you wanted it to be hands-free.

We surface our waste boards.

I do through cuts by over cutting. I split engravings and pockets into smaller jobs and set My Z near the work. I haven’t attempted a large engraving. I don’t think it will be great without a lot of compensation.

I did a big pocket engraving once on an old cabinet door. By the end, the board had bowed up so the bit was cutting deeper. I had it clamped by the frame and was carving in the panel. That kind of stuff happens sometimes.

You can “manually” build a mesh with the proper sequence of gcode commands, so you could probably work up a macro to build a mesh using a touch probe that’s custom to the size of your work piece, but you’re still going to have the issue of machine versus work coordinates.

I’ll suggest a third option to add to your original “two choices.” Why not go ahead and add physical end stops? It’s a well-travelled path and not particularly expensive, then you’d have a solid, repeatable machine coordinate system within which to build your mesh. Since mesh levelling was developed with 3d printers in mind, where end stops are ubiquitous, if you want to use that feature the end stops may be a pre-requisite.

Yes at some point I think avoiding endstops will be more complex that adding them ! Thanks

By the way I realize Ooznest is based on Reprap firmware, which does not have this hard requirement for homing. Has anybody adapted the reprap firmware to MPCNC ? I’ve tried genuine Marlin and instantly realized how much different it is from MPCNC, especially acceleration etc…

Thanks all !

I run my Primo and my LR3 on duet 2 Wifi boards, with RepRap Firmware.

I have a mesh defined for the LowRider, but have not actuallly done all of the probing, because I’ve never had the table clear enough :rofl: I do, however have endstops on it, I also use soft stops, so that the machine should never dig more than a couple mm into the spoilboard, and should never crash into hard limits. I use workspace coordinates for jobs.

Edit: I have also installed RepRap Firmware on an SKR Pro 1.2

I have a little 3d printed adapter so I can stick those little foam pressure discs on the bottom of my bit. I probe the area I am cutting then set the Z height manually at the center of the board or with a metal probing corner. I found probing necessary for really accurate cuts where even 1mm across a sheet can make a difference (engraving, rabbets). It’s pretty impossible to get some stock clamped perfectly flat without a vacuum table so it helps with that too.

I have a little writeup here with some pics:

Ok all good now with the switches to turn on off between g28 and g29, I can then probe a full panel to +/- 5mm and get pretty much no deviation for engraving.

Stoke mode at about 200%, moving on from boring panels to surfboards ! I’ll do a quick feedback on the build when I find the time.

That thing is amazing. I’d love to buy parts from V1 if that was distributed in France !