BLtouch ignores M280 commands
-
Hello! I have installed a duet 2 Maestro onto my homemade coreXY machine and have added a BLTouch sensor to it.
I am currently on RepRap firmware 3.0 and have used the configuration tool to set up my printer settings.
My current wiring for the probe is as follows:
BLTouch --- Duet 2 Maestro
White --- Z probe in
Brown / Black --- GND
Orange --- Z probe MOD
Red --- 3v *- when I use 5V, the probe will run its test at startup (extend and retract the pin twice) but then the red light will stay on.
- when I use 3v, the probe runs the startup sequence but the light turns off.
My Z probe settings are as follows in the config.g file:
; Z-Probe M950 S0 C"^!zprobe.mod" ; create servo pin 0 for BLTouch M558 P9 C"zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid
When I send the command M280 P0 S10, which I have read is the deploy command, the probe does nothing. The board says that the command sent properly, but nothing happens. This is the same with M280 P0 S90.
The probe also does absolutely nothing when I home the Z axis. I have to E-Stop before the bed just blindly crashes into the tool head.
I have tried switching between the 3v and 5v pins on the zprobe header. I have tried inverting the m558 code using I1, and I have tried changing the S value on M950. I am unsure of what to do next.
Any help is greatly appreciated. I'm so close to having a functional printer!
-
ALSO since it may be relevant, this is my config.g file as a whole:
-
First, please upgrade your firmware to 3.1.1
Try this instead:
M558 P9 C"^zprobe.in" H5 F120 T6000 M950 S0 C"zprobe.mod"
Then test your M280 commands to deploy and retract. Then test M401 and M402 they should work as well.
The probe also does absolutely nothing when I home the Z axis. I have to E-Stop before the bed just blindly crashes into the tool head.
Well yes, the M280 commands must work first otherwise it can't control the pin.
I have tried inverting the m558 code using I1, and I have tried changing the S value on M950. I am unsure of what to do next.
I1 doesn't work in RRF3, that's what the ! does, but you don't need to invert anything. The S value in M950 is the servo number. 0 is the first one. The M280 command P0 needs to match that number.
From your config.g..
M350 X128 Y128 Z2 E16:16 I1 ; configure microstepping with interpolation M92 X293.40 Y2934.00 Z40.00 E415.00:415.00 ; set steps per mm
3 things.
Just use x16 with interpolation. Using high microstepping values can lead to some issues.
x2 microstepping on the Z axis is pretty weird too. Why?
Your X and Y steps per mm look very mismatched. Double check that.
And finally
G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height
You need to measure the X Y offset of the bltouch from the nozzle. You should also use P25. And you need to measure the trigger height.
https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe
-
Alright, I have BLTouch working now and responding to Gcode. I honestly feel pretty silly for why this didn't work.
As soon as I actually installed 3.1.1 the sensor started working properly. I had messed up the file names on my computer and didn't realize that I was actually just reinstalling 3.0 over and over.
Also, for the weird steps per mm and microstepping values, my x and y values are way off in that file. I have since fixed them and lowered the microstepping.
Z axis: I am using a low microstepping on my Z axis as my print bed assembly is pretty heavy, and I have read online that high microstepping can decrease motor torque. I will experiment more with it but so far the Z axis has been working quite well as configured.
Thank you so much for the input. I am so excited to finally have this machine up and running.
-
That's a bit of a misunderstanding of how torque in a stepper is created. While it's true that a single micro step will have less torque than a full step, it doesn't account for the fact that the same number of microsteps needed to reach a full step will have the same torque as the full step. It's the angular difference between positions that creates the torque. a smaller angle will have a smaller amount of difference and so less torque. Once the difference is the same, so is the torque.
Case in point, since the maestro driver support x256 interpolation which you have enabled, the drivers are generating 256 pulses for the motors anyway. The only difference is that you're only generating 2 pulses from the controller to the drivers and artificially lowering your steps per mm.
-
Thank you for the explanation. I'll probably switch all my drivers to x16 like you said now that you mention the interpolation being on anyways.