Correction of heightmap is not really working
-
Hi,
I'm just about to make breakfast. Give me 30 minutes or so.
Have you had a chance to verify that all is working with:
- homeall.g
- homex.g
- homey.g
- homez.g
- bed.g
- mesh.g
Frederick
-
@fcwilt hello frederick,
no problem, take your time.
-
@icy_snake All files are fine, i tested them single command.
-
Well if those files are all working you are almost done.
What do you want to work on today?
Frederick
-
-
@icy_snake also a macro to setup the z?
-
@icy_snake said in Correction of heightmap is not really working:
@fcwilt the config_probe.g
which has only the following lines:
; config_probe.g
; config the probe and call the other files.g
;M950 S0 C"duex.pwm5"
M558 P9 C"zprobe.in" H5 F120 T6000 A5 R0.7
G31 P500 X-18 Y24 Z3.025 ; z value is offsetor i am wrong??
That is all you need. As mentioned by calling that file with M98 in bed.g, mesh.g, etc. you are sure the probe is configured with the most recent values. No need to reboot or restart to get config.g processed.
Frederick
-
@icy_snake said in Correction of heightmap is not really working:
@icy_snake also a macro to setup the z?
I was under the impression you had determined a good value for the Z parameter in G31.
As mentioned normal that value is "set and forget" unless your hardware changes.
I suppose I could code a macro to determine that value but as you know it is going to involve setting the physical Z position to some known value to serve as a reference.
Would you like to have such a macro?
Frederick
-
@fcwilt yes lets do a macro. so whenever i change my bed from glass to aluminium i can run a new setup
-
@icy_snake said in Correction of heightmap is not really working:
@fcwilt yes lets do a macro. so whenever i change my bed from glass to aluminium i can run a new setup
Is there are reason to think the correct value for each would be different every time you changed the bed material?
Frederick
-
@fcwilt said in Correction of heightmap is not really working:
o think the correc
yes, because the thickness of the buildplates are different.
also another question do i need the
G31 P500 x-18 y24 Z3.005
in the config.g and also in the config_probe.g??
-
@icy_snake said in Correction of heightmap is not really working:
yes, because the thickness of the buildplates are different.
I understand that but if the correct value for G31 is always the same for each buildplate you could just have a macro which sets the new value as opposed to determining the value each time.
G31 P500 x-18 y24 Z3.005
in the config.g and also in the config_probe.g??
What you should do is remove all three of the probe configuration commands from config.g and replace them with the M98 P"probe_config.g" command. That way the probe will be configured after a reboot or restart. Not essential but it insures the probe is ready to go if you were to issue a command like G30 from the DWC.
Frederick
-
@fcwilt ok
so i need only one macro to set the z, correct?
-
@icy_snake said in Correction of heightmap is not really working:
@fcwilt ok
so i need only one macro to set the z, correct?
If the value for each buildplate is constant you can eliminate editing of the probe_config.g file by using a global variable to hold the G31 Z Trigger Height value.
Then you can have one macro for each buildplate to set the variable to the correct value for that buildplate.
How does that sound?
Frederick
-
@fcwilt Yes that would be prefect
-
@icy_snake could you write that for me, please?
-
@icy_snake said in Correction of heightmap is not really working:
@fcwilt Yes that would be prefect
OK I will code that.
In the meantime here is the macro for measuring the Z probe trigger height - if you ever need it.
M300 S666 P666 ; beeo M291 S3 R"Test Z Probe Trigger Height" P"Press OK to continue, or CANCEL to abort" G28 ; home all G29 S2 ; cancel mesh bed compensation M290 R0 S0 ; cancel baby stepping G90 ; absolute movements ; this complicated looking command computes the X and Y parameters needed to move the probe to the center of the bed G1 X{((move.axes[0].max + move.axes[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axes[1].max + move.axes[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800 M300 S1111 P666 ; beep M564 H1 S0 ; ignore axis limits M291 S2 R"Test Z Probe Trigger Height - Step 1" P"Place a paper sheet under the nozzle and raise the bed until slight friction can be noticed" Z1 ; G92 Z0 ; the nozzle should now be just touching the bed so set the logical Z position to match the physical Z position M300 S666 P666 ; beep M291 S2 R"Test Z Probe Trigger Height - Step 2" P"Please remove the paper sheet and wait for the bed-probing to begin" ; G1 Z5 F200 ; insure Z position will allow for probing G30 S-1 ; probe the bed and report the Z probe trigger height M564 S1 H1 ; respect axis limits M291 S2 R"Test Z Probe Trigger Height - Step 3" P"Copy the reported height value on the G-Code console and paste it into the probe_config.g file"
-
Add this near the start of your config.g:
global g_probe_z_trigger = 1.8 ; default - set as appropriate for the Z probe
Just for reference this is what the start of my config.g file showing the section where I set all my global variables:
; **************************************************************************************************** ; prologue ; **************************************************************************************************** M111 S0 ; debug off M550 P"MF1" ; machine name ;M551 P"xxxxxx" ; machine password M555 P2 ; set output to look like Marlin M575 P0 B57600 S2 ; communication parameters for USB serial M575 P1 B115200 S1 ; communication parameters for PanelDue M552 S1 ; enable (S1) networking (WiFi) M586 S1 P1 ;T0 ; enable (S1) FTP (P1) Disable TLS (T0) M586 S1 P2 ;T0 ; enable (S1) Telnet (P2) Disable TLS (T0) G21 ; dimensions in mm G90 ; for X,Y,Z use absolute coordinate values M83 ; for E0,E1,etc use relative coordinate values ; **************************************************************************************************** ; mode control variables ; **************************************************************************************************** global g_z_home = 5 ; can be used to always move Z to known height global g_z_datum_set = false ; can be used to prevent unneeded setting of Z=0 datum global g_map_mode = "300 point" ; determines which kind of height map is created/loaded global g_probe_mode = "two consecutive" ; determines if z proving used consecutive or averaging global g_level_mode = "3 point" ; determines if 3 or 4 points are used for leveling global g_print_beg_prime = 10 ; default - set desired in filament config.g global g_print_beg_retract = 0 ; default - set desired in filament config.g global g_print_end_retract = 0 ; default - set desired in filament config.g global g_print_end_mode = "heat off" ; determines if heaters are turned off when print is done global g_probe_z_trigger = 1.8 ; default - set as appropriate for the Z probe
In your probe_config.g file update your G31 command to replace the value after the Z parameter with the variable reference shown below:
G31 P25 X0 Y24.5 Z{global.g_probe_z_trigger} ; set Z probe trigger value, offset and trigger height (larger value is closer)
Create the macros to set the global variable to the needed values. Name them as you desire. Here is an example:
set global.g_probe_z_trigger = 1.8 ; set the variable M98 P"probe_config.g" ; configure the probe using the new value ; I put this G31 here just to show the current settings - it is optional ; You can provide visual feedback some other way, say, using an M291 command G31
-
@fcwilt Whowww, many thanks Frederick,
perfect support, you helped me alot, thanks again.
I´m often in the USA for business. Maybe there will be a day that we could have some drinks.
Best Regards
Dieter -
@icy_snake I´m already home today, here it´s evening.
I will add tomorrow the new code. I let you know if i could get it running.
Good evening
Dieter