Duet3D / RepRapFirmware

OO C++ RepRap Firmware
GNU General Public License v3.0
941 stars 534 forks source link

[FeatureRequest]: Add "suppress message" G30 probe option #915

Open Braintoe opened 1 year ago

Braintoe commented 1 year ago

Is your feature request related to a problem? Please describe.

IDEX machines are rather cumbersome to calibrate without some support skript. While RepRepFirmware brings all the features needed to create such a skript which can then display comprehensive leveling instructions (e.g. an ASCII bar graph-like representation, see here in the Duet forum what I mean) with conditional gcode, the G30 probe function itself prevents such a custom message by displaying a message for every single probe move, regardless which option was chosen. If continuous probing is done, this means the display (PanelDue or Web) constantly flickers between the G30 message and the user message.

Additionally, this behaviour is not described in the Gcode dictionary. the text there states that only a G30 S-1 move creates a message.

Describe the solution you propose.

There are two options to solve this:

Describe alternatives you've considered

Workarounds considered:

That's about it. I am open for suggestions ;-)

Provide any additional context or information.

Ex. Photos, mockups, etc.

Braintoe commented 1 year ago

(Edit: completely forgot - in any case, update the documentation of G30 that others who might try this on similar Marlin-based printers don't only find out after they bought the Duet...)

dc42 commented 1 year ago

@Braintoe please clarify:

  1. Which particular form of the G30 command are you referring to? AFAIR a plain G30 command with no parameters does not result in a message; but G30 S-1 does.
  2. Please provide an example of the sort of script you want to use, where the messages produced by G30 commands in that script are undesirable.
Braintoe commented 1 year ago

@dc42 I tested G30 S-2, G30 S-3 and G30 - all created a message of some sorts: the first two ones created a notification, the last one complained about someting (the amount of adjustment screws?). What I actually want, is a G30 S-1 witout a message that I can use in a conditional gcode script, but I can save and reset the changes that G30 S-2 and G30 S-3 make if needed.

Below are the scripts I want to use. the first one

  1. probes z several times at the first bed level adjustment screw, then updates z max and the current position.
  2. After that, it continuously probes z on the other two adjustment screws and notifies the user with messages on the PanelDue how to turn the adustment screws on the bed (due to the constraints of the PanelDue I made it an ASCII art bar graph resembling a classic radio scale which works nicely). When the script is finished, the bed is leveled and the z distance to hotend 1 is correct. The problem and the reason why I am asking for the G30 change is that these messages are interrupted by the G30 system messages.... The first file is the original code with german comments which is partially tested by now (tested until the "TODO" line, and the message generation is tested by replacing the G30 codes with varying dummy data. The second one is an automated translation into english for your convenience. I did my best to correct the variable names in the translation (and will probably never use Deepl to translate such code again), but please do not expect it to work...

Basically the same type of script is also used to z-level hotend 2 of the IDEX printer against hotend 1 - hotend 1 does a z probe which is definded as reference, then hotend 2 continuously probes at the same spot, and the user sees the same messages and can trim the z level of the right hotend by turning an adjustment screw. In case you would like to have that one as well, please do not hesitate to ask.

Afterwards, just an XY calibration needs to be done which is done by using the wonderful M675 gcode in a conductive cavity with both hotends and calculating the XY offset of hotend 2 from those measurements. auto_bedleveling_english_translation.g.txt

(Edit: updated german bedlevling skript to the latest version. I accidentially deleted some "set" commands last night. Except from the unwanted G30 popups, that one works as intended now. auto_bedleveling_german_comments.g.txt