Correction of heightmap is not really working
-
@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 -
@icy_snake said in Correction of heightmap is not really working:
I´m often in the USA for business. Maybe there will be a day that we could have some drinks.
Best Regards
DieterThat would be grand but I am located in South West Virginia. The closet city is Roanoke to give you a reference.
-
The trigger height for the BLTouch should stay the same between different build plates since it physically touches the build plate and the offset between the bltouch trigger point and the nozzle remains constant. That's one of the main benefits of a BLTouch.
-
-
@fcwilt hahah yes it was and it is and will be in the future.
thx all for the perfect help here.
Dieter
-
Morning.
Once you have verified that everything we have done on so far is working we can move on to the last piece of the puzzle - your "start" code - the code that is executed at the start of a print to get everything set as needed for a successful print.
Frederick
-
@fcwilt Good morning frederick,
here is my start gcode in ideamaker.
It works, need to do anything after i hit the start button:
<G28 ; Home M566 E3000 ; max speed change M572 D0 S0.07 ; pressure calibration value 0.01 bis 0.12 G92 E0 ; Reset the extruder G0 Z20 ; Z down bei 20 G0 X0 Y0 F6000 ; Go to left front G92 E0 G1 E50 F350 ; Extrude 50mm speed 350,time to clean head G92 E0 G0 X100 Y10 F9000 ; Move quickly to X100 Y10, cut the string automaticly G0 Z0.3 ; Lower Z to 0.3 G1 F1000 X200 E3 ; print line to x200 speed 1000 G92 E0 G1 F800 E-0.3 ; retract -0.3mm M117 Printing..the..new..model.>
Here is my End Gcode:
<G1 F800 E-1.0 ;retract filament 1.0mm to prevent oozing M104 S0 T0 ; turn off hotend 1 M104 S0 t1 ; turn off hotend 1 G90 ; use absolute coordinates G28 X0 Y0 ; Move to Home without Z M221 D0 S100 ; extrusion Factor back to 100 M106 S0 T0 ; turn off fan 1 M106 S0 T1 ; turn off fan 2 M84 ; Switch off all Motors M117 Ready..with..the..new..model--have fun!>
Let me know what you think.
-
I gather most of that code is for priming the extruder?
I don't see any code to:
- set heater temp
- set bed temp
- load height map
Where is that being done?
Frederick
-
@fcwilt Ok thats what you mean
heater temp i set i my ideamaker
bed temp i ned to set manually at an extra hardware, cannot be set via software
load heightmap i do not know to load it before printing??
G29 S1
do i need to reload always the heightmap before printing?
Dieter
-
-
@icy_snake Load the heightmap after the G28. You do have to load the heightmap.
Basic example, this runs the mesh everytime:
G28
G29 ; add S1 just to load the current oneI use this mesh.g , it makes the heightmap if it doesn't exist and makes sure the printer has been homed before the G29 S0, just call it with G29.
M561 ; clear any bed transform G29 S1 ; load heightmap.csv if result > 1 ; make if it doesn't exist if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; check if homed G28 G29 S0 ; create heightmap.csv
-
@icy_snake said in Correction of heightmap is not really working:
heater temp i set i my ideamaker
bed temp i ned to set manually at an extra hardware, cannot be set via software
load heightmap i do not know to load it before printing??
G29 S1
do i need to reload always the heightmap before printing?
Dieter
Where does the heater temp setting code appear? Is what you posted code generated by IdeaMaker?
As to the height map remember you need to do the following to load it correctly. I load it in my start code.
G1 Xaaa Ybbb ; where aaa and bbb put the probe at the center of the bed G30 ; probe the bed to set the Z=0 Datum G29 S1 ; load the height map
You may recall that in the mesh.g file the Z=0 datum is also set before creating the height map.
Frederick
-
@fcwilt
now you confuse me ???my mesh.g
<G29 S2 ; cancel mesh bed compensation M290 R0 S0 ; cancel baby stepping G90 ; absolute moves ; --- set Z=0 datum which is needed for creating a heightmap G1 Z5 F99999 ; insure Z starting position is high enough to avoid probing errors G1 X300 Y300 ; move probe to center of bed - set values aaa and bbb as appropriate G30 ; do single probe which sets Z to trigger height of Z probe M557 X20:600 Y20:600 S58 ; define mesh grid 420 point = S29, 210 = S58 G29 S0 ; probe bed and create height map
my bed.g
< ; bed.g ; called to perform automatic bed compensation via G32 ; ;M98 P"config_probe.g" ; insure probe is using most recent configuration values G29 S2 ; cancel mesh bed compensation M290 R0 S0 ; cancel baby stepping G90 ; absolute moves G1 Z5 F99999 ; insure Z starting position is high enough to avoid probing errors ; M671: Define positions pf manual bed levelling screws or Z leadscrews ; Xnn:nn:nn... list of between 2 and 4 X coordinates of the leadscrews that drive the Z axis or the bed levelling screws ; Ynn:nn:nn... list of between 2 and 4 Y coordinates of the leadscrews that drive the Z axis or the bed levelling screws ; Snn maximum correction allowed for each leadscrew in mm (optional, default 1.0) ; Pnnn pitch of the bed levelling screws (not used when bed levelling using independently-driven leadscrews). Defaults to 0.5mm which is correct for M3 bed levelling screws ; Fnn fudge factor, default 1.0 M671 X-189:-189:645:645 Y645:-64:-64:645 S10 ; Anticlockwise ; --- level bed --- while true ; run leveling pass G30 P0 X2 Y2 Z-99999 ; Probe near a leadscrew G30 P1 X600 Y2 Z-99999 ; Probe near a leadscrew G30 P2 X600 Y600 Z-99999 ; Probe near a leadscrew G30 P3 X2 Y600 Z-99999 S4 ; Probe near a leadscrew if move.calibration.initial.deviation < 0.02 break ; check pass limit - abort if pass limit reached if iterations = 5 M291 P"Bed Leveling Aborted" R"Pass Limit Reached" abort "Bed Leveling Aborted - Pass Limit Reached" ; --- finish up --- ; --- set Z=0 datum which can be affected by leveling --- G1 X300 Y300 ; move probe to center of bed - set values aaa and bbb as appropriate G30 ; do single probe which sets Z to trigger height of Z probe
My Z Macro
<; Z-setup Macro ; setup Z distance M300 S666 P666 ; beeo M291 S3 R"Measure Z 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 ; beeo 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"
my config_probe.g
< ; 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 Z{global.g_probe_z_trigger} ; set Z probe trigger value, offset and trigger height (larger value is closer)
my config.g
; General preferences_________________________________________________________ G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M111 S0 ; Debug off M555 P2 ; Set output to look like Marlin M575 P0 B57600 S2 ; communication parameters for USB serial M575 P1 B57600 S1 ; Set auxiliary serial port baud rate and require checksum (for PanelDue) ; Network_____________________________________________________________________ M550 P"Big 60X V3.4 15.02.2022" ; set printer name ; History ; removed U 15.02.2022 ; ; M552 S1 ; enable network M552 P192.168.10.169 ; My IP Address M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; add probe file M98 P"probe_config.g" G31 ; Global settings global g_probe_z_trigger = 2.91 ; Z-Probe M558 P9 C"zprobe.in" H5 F120 T6000 A1 R0.7 M950 S0 C"duex.pwm5" M556 S50 X0 Y0 Z0 M376 H10
now it´s not loading the value ??
-
@icy_snake said in Correction of heightmap is not really working:
There are a few errors in your config file - see below:
global g_probe_z_trigger = 2.91 ; this must proceed the M98 below so the variable is set for probe_config.g to use M98 P"probe_config.g" ; remove these - they appear in probe_config.g M558 P9 C"zprobe.in" H5 F120 T6000 A1 R0.7 M950 S0 C"duex.pwm5"
-
Is what you posted your entire config.g file?
There seems to be many missing commands.
Frederick
-
@fcwilt
Here is my complete config file<; General preferences_________________________________________________________ G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M111 S0 ; Debug off M555 P2 ; Set output to look like Marlin M575 P0 B57600 S2 ; communication parameters for USB serial M575 P1 B57600 S1 ; Set auxiliary serial port baud rate and require checksum (for PanelDue) ; Network_____________________________________________________________________ M550 P"Big 60X V3.4 15.02.2022" ; set printer name ; History ; removed U 15.02.2022 ; ; M552 S1 ; enable network M552 P192.168.10.169 ; My IP Address M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; add probe file M98 P"probe_config.g" M556 S50 X0 Y0 Z0 ; set orthogonal axis compensation parameters woher kommt der test wie wurde der Winkel bestimmt Unklar! M376 H10 ; stop z-leveling after 10 layers ; Drives_________________________________________________________________________ ;Main board______________________________________________________________________ M569 P0 S1 ; Physical drive 0 . X1 M569 P1 S0 ; Physical drive 1 . X2 M569 P2 R-1 ; Physical drive 2 . Canceled M569 P3 S1 ; Physical drive 3 . Main Extruder M569 P4 S0 ; Physical drive 4 . Secondary Extruder ;Duex5 board_____________________________________________________________________ M569 P5 S0 ; Physical drive 5 . Y M569 P6 S0 ; Physical drive 6 . Z1 (0,1000) M569 P7 S0 ; Physical drive 7 . Z2 (0,0) M569 P8 S0 ; Physical drive 8 . Z3 (1000,0) M569 P9 S0 ; Physical drive 9 . Z4 (1000,1000) ;Settings_________________________________________________________ M584 X0:1 Y5 Z6:7:8:9 E3:4 P3 ; Driver mapping M671 X-189:-189:645:645 Y645:-64:-64:645 S10 ; Anticlockwise ;___________________________________________________________________ M350 X16 Y16 I1 ; Configure microstepping with interpolation M350 Z16 E16:16 I0 ; Configure microstepping without interpolation M92 X100.00 Y100.00 Z1969.60 E416.21:416.21 ; Set steps per mm changed to fit my values 100mm messen und eintragen M566 X240 Y360 Z30.00 E120.00:120.00 P1 ; Set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z200.00 E1200.00:1200.00 ; Set maximum speeds (mm/min) M201 X1000 Y1000 Z120.00 E250.00:250.00 ; Set accelerations (mm/s^2) M204 P500 ; Set print and travel accelerations (mm/s^2) M906 X1800 Y1800.00 E1000.00:1000.00 I40 ; Set motor currents (mA) and motor idle factor in per cent M906 Z1800.00 I50 ; Set motor currents (mA) and motor idle factor in per cent M84 S100 X Y E0 E1 ; Set idle timeout - one minute ; Axis Limits M208 X0 Y0 Z-1 S1 ; set axis minima M208 X600 Y600 Z630 S0 ; my print area, changed to hight 630 do changes ; Endstops M574 X1 S1 P"xstop + e0stop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y2 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop ; Height (mm) over which to taper off the bed compensation 10, 30 ; Heaters___________________________________________________________ M140 H-1 ; disable heated bed (overrides default heater mapping) ;E0_________________________________________________________________ M308 S0 P"spi.cs1" Y"rtd-max31865" M950 H0 C"e0heat" T0 ; create nozzle heater output on e0heat and map it to sensor 0 M307 H0 B0 R3.818 C129.1:116.6 D3.00 S1.00 V23.9 ;New TAKOTO mit Wärmeleitpaste M143 H0 S300 ; set temperature limit for heater 0 to 300° ;E1_________________________________________________________________ M308 S1 P"spi.cs2" Y"rtd-max31865" M950 H1 C"e1heat" T1 ; create nozzle heater output on e1heat and map it to sensor 1 M307 H1 B0 R3.746 C151.8:132.3 D3.63 S1.00 V23.9 ; NEW TAKOTO M143 H1 S300 ; set temperature limit for heater 1 to 300° ; Fans______________________________________________________________ M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"duex.fan7" Q500 ; create LED on pin fan2 and set its frequency M106 P2 S0 H-1 ; Disable fan channel for LED M950 F3 C"duex.fan5" Q500 ; create fan 3 on pin fan1 and set its frequency M106 P3 S255 H0 T45 ; set fan 3 value. Thermostatic control is turned on M950 F4 C"duex.fan6" Q500 ; create fan 4 on pin fan1 and set its frequency M106 P4 S255 H1 T45 ; set fan 4 value. Thermostatic control is turned on ; Tools______________________________________________________________ ;T0_________________________________________________________________ M563 P0 S"E0 Primary" D0 H0 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S210 ; set initial tool 0 active and standby temperatures to 0C ;T1_________________________________________________________________ M563 P1 S"E1 Secondary" D1 H1 F1 ; define tool 1 G10 P1 X0 Y49 Z0 ; set tool 1 axis offsets G10 P1 R0 S210 ; set initial tool 1 active and standby temperatures to 0C ; Automatic power saving____________________________________________ M911 S22.5 R29.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss. Power Failure Pause ; Custom settings__________________________________________________ M950 J0 C"exp.e2stop" ; create Input Pin 0 on pin E2 to for M581 Command. M581 T1 P0 S0 R1 ; Regular filament sensor for E0 As External Trigger M950 J1 C"exp.e3stop" ; create Input Pin 1 on pin E3 to for M581 Command. M581 T1 P1 S0 R1 ; Regular filament sensor for E1 As External Trigger M950 J2 C"exp.e4stop" ; create Input Pin 2 on pin E4 to for M581 Command.