Mesh grid don't work



  • Hello guys i have Duet2 Ethernet with duex5 board.
    and i have problems with mesh grid.
    when i start print bed won't move enough to enable same thicknes for first layer

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v2.0.4 on Sat Oct 12 2019 15:44:24 GMT+0200 (Srednjeevropski poletni čas)
    
    M561 ; Disable any Mesh Bed Compensation
    G30 P0 X20 Y99 Z-99999 		; Probe near Front Left leadscrew
    G30 P1 X210 Y380 Z-99999 	; Probe near Rear Middle leadscrew
    G30 P2 X400 Y99 Z-99999 S3 	; Probe near Front Right leadscrew
    G29 S1   ; Enable Mesh Bed Compensation
    
    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.0.4 on Sat Oct 12 2019 15:44:24 GMT+0200 (Srednjeevropski poletni čas)
    
    ; General preferences
    G90                                     ; send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    
    M98 P"Turn_printer_on"					; force the PS_ON line to 0V/GND; causing a voltage over relay, thus enabling it. 
    					; With the relay active, it close the circuit of the Live wire, taking over to supply the Power Supply.
     
    M550 P"3D Monstrum"              		; set printer name
    
    M667 S1                                 ; select CoreXY mode
    
    ; Network
    M552 S1				; IP address
    
    ; Debugging
    M111 S0                                 ; Debug off
    M929 P"eventlog.txt" S1                 ; Start logging to file eventlog.txt
    
    ; Drives
    
    ;X and Y motors
    M569 P5 S0                              ; Drive 5 direction | Y Stepper
    M569 P6 S0								; Drive 6 direction | Y Stepper
    
    ;Z motors
    M569 P7 S0                              ; Drive 7 direction | Front Right Z
    M569 P8 S0                              ; Drive 8 direction | Back Z
    M569 P9 S0                              ; Drive 9 direction | Front Left Z
    
    ;Extruders
    M569 P1 S0 	D2                            ; Drive 1 direction | Extruder0
    M569 P2 S0  D2                            ; Drive 2 direction | Extruder1
    M569 P3 S0  D2                            ; Drive 3 direction | Extruder2
    M569 P4 S0  D2                            ; Drive 4 direction | Extruder3
    
    ; Toolchanger actuator
    M569 P0 S1										; Drive 0 direction | Toolchanger Actuator
    
    M584 X6 Y5 Z9:8:7 U0 E1:2:3:4                   ; set drive mapping
    M671 X-28:172:458 Y146:402:146 S15 				; leadscrews at front left, rear middle and front right
    
    M350 X16 Y16 Z16 E16 U4 I1                 		; configure microstepping with interpolation
    M92  X80.00 Y80.00 Z1600 E2811					; set steps per mm
    M92  U30.578                             		; Steps/deg for U from (200 * 4 * 13.76)/360
    M203 X6000.00 Y6000.00 Z300.00 E1200.00 U9000 	; set maximum speeds (mm/min)
    M566 X900.00 Y900.00 Z12.00 E40 U65 	   		; set maximum instantaneous speed changes (mm/min)
    M201 X800 Y800 Z60 E120 U800          			; set accelerations (mm/s^2)
    M906 X1500 Y1500 Z900 E800 U1000					; set motor currents (mA) U je bil 670
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                        	; set axis minima
    M208 X420 Y360 Z460 S0                  	; set axis maxima
    M208 U0:180                                ; Set Elastic Lock (U axis) max rotation angle
    
    ; Endstops
    M574 X1 S1 P"xstop"                   ; X min active high endstop switch
    M574 Y1 S1 P"ystop"                  ; Y min active high endstop switch
    M574 Z2 S1 P"duex.e2stop"                        ; Z min active high endstop switch
    M574 U1 S1 P"e0stop"                        ; U min active high endstop switch
    ;M558 P2 C"duex.e2stop" H0 F10                    ; Z min active high endstop switch TAMV Tool Alingment Z touch plate
                                
    ; Z-Probe
    M950 S0 C"duex.pwm5"                         ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F100 T2000           ; set Z probe type to bltouch and the dive height + speeds
    G31 P25 X24.333 Y39.003 Z4.323                            ; set Z probe trigger value, offset and trigger height
    
    ; Heaters
    ; Bed Heater
    M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 A"Bed Heater"         			; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                                                                   ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S110                                                                            ; set temperature limit for heater 0 to 110C
    M140 H0 R35																				; map heated bed to heater 0
    
    ; Tool1 Heater
    M308 S1 P"duex.e2temp" Y"thermistor" T100000 B3950 A"Tool 1 Heater"                    	; configure sensor 1 as thermistor on pin duex.e2temp
    M950 H1 C"duex.e2heat" T1                                                               ; create nozzle heater output on duex.e2heat and map it to sensor 1
    M143 H1 S280                                                                            ; set temperature limit for heater 1 to 280C
    
    ; Tool2 Heater
    M308 S2 P"duex.e3temp" Y"thermistor" T100000 B3950 A"Tool 2 Heater"                     ; configure sensor 2 as thermistor on pin duex.e3temp
    M950 H2 C"duex.e3heat" T2                                                               ; create nozzle heater output on duex.e3heat and map it to sensor 2
    M143 H2 S280                                                                            ; set temperature limit for heater 2 to 280C    
    
    ; Tool3 Heater
    M308 S3 P"duex.e4temp" Y"thermistor" T100000 B3950 A"Tool 3 Heater"                     ; configure sensor 3 as thermistor on pin duex.e4temp
    M950 H3 C"duex.e4heat" T3                                                               ; create nozzle heater output on duex.e4heat and map it to sensor 3
    M143 H3 S280                                                                            ; set temperature limit for heater 3 to 280C                             
    
    ; Tool4 Heater
    M308 S4 P"duex.e5temp" Y"thermistor" T100000 B3950 A"Tool 4 Heater"                     ; configure sensor 4 as thermistor on pin duex.e5temp
    M950 H4 C"duex.e5heat" T4                                                               ; create nozzle heater output on duex.e5heat and map it to sensor 4
    M143 H4 S280                                                                            ; set temperature limit for heater 4 to 280C
     
                                                                                                       
    ; Tool definitions
    M563 P0 S"TOOL1" D1 H1 F0					; Define tool 1
    ;G10 P0 Z-3.75                   			; Set tool 1 offset from the bed
    G10 P0 R20 S30                				; Set tool 1 operating and standby temperatures(-273 = "off")
    ;M572 D0 S0.1				    			; Set pressure advance on Extruder Drive 0
    
    M563 P1 S"TOOL2" D0 H2 F0					; Define tool 2
    G10 P1 Z-0.1377         						; Set tool 2 offset from the bed with tool-0 as a reference.
    G10 P1 R20 S30                				; Set tool 2 operating and standby temperatures(-273 = "off") 
    ;M572 D1 S0.1				    			; Set pressure advance on Extruder Drive 1,
    
    M563 P2 S"TOOL3" D2 H3 F0					; Define tool 3
    ;G10 P2 Z-3.75                   			; Set tool 3 offset from the bed
    G10 P2 R20 S30         						; Set tool 3 operating and standby temperatures(-273 = "off")
    ;M572 D2 S0.1				    			; Set pressure advance on Extruder Drive 2
    
    M563 P3 S"TOOL 4" D3 H4 F0    				; Define tool 4
    ;G10 P3 Z-3.75                    			; Set tool 4 offset from the bed
    G10 P3 R20 S30		 						; Set tool 4 operating and standby temperatures(-273 = "off")
    ;M572 D3 S0.1				    			; Set pressure advance on Extruder Drive 3
    
    ;Water temp
    M308 S5 P"e0temp" Y"thermistor" T10000 B10000 A"Water temp."                  ;configure sensor 5 as thermistor on pin e1temp
    
    ; Mesh  grid
    M557 X30:390 Y80:380 S60:60           
                                                              
    ; Water colling NOCTUA FAN'S
    M950 F1 C"!duex.fan7+exp.pb6" Q25000 							; fan 0 is a 4-wire PWM fan so invert it, use high PWM frequency, tacho connected to PB6 on expansion connector
    M106 P1 H5 I1 T21:23.5 L125 S1                                    ; set fan 0 value. Thermostatic control is turned on
    
    ; Water colling PUMP
    M950 F2 C"!Fan0" Q25000 										; fan 2 is a 4-wire PWM fan so invert it, use high PWM frequency, tacho connected to PB6 on expansion connector
    M106 P2 H5 I1 T10:40 L255                                       ; set fan 2 value. Thermostatic control is turned on
    
    ; Solenoid valve
    M950 P3 C"duex.fan3"                                        	; create fan 3 on pin duex.fan3 and open valve for air on tool1
    M950 P4 C"duex.fan4"                                         	; create fan 4 on pin duex.fan4 and open valve for air on tool2
    M950 P5 C"duex.fan5"                                        	; create fan 5 on pin duex.fan5 and open valve for air on tool3
    M950 P6 C"duex.fan6"                                       		; create fan 6 on pin duex.fan6 and open valve for air on tool4
    
    ; Part cooling fan
    M950 F0 C"e1heat" Q100; Fan 0 is connected to heater 1 pin, PWM at 100Hz                                                                         		
    M106 P0 S0
    
    ;LED LIGHT SYSTEM
    M950 P7 C"e0heat"
    M42 P7 S0
    
    ;LED LIGHT CAMERA NOZZLE ALINGMENT
    M950 P8 C"Fan2"
    M42 P8 S0
    
    ;COOLLING ARIPUMP 
    M950 P9 C"Fan1"
    M42 P9 S0
    
    ; Machine Thermistors
    M308 S7 P"duex.e2_temp" Y"pt1000" R4700         ; E2 temperature sensor
    M308 S8 Y"drivers" A"DRIVERS"                   ; sensor 4 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S9 Y"mcu-temp" A"MCU"                      ; sensor 5 as thermistor on pin e1temp for left stepper
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    T-1                                      			; select first tool
    
    

    in prusa i have just G29 S1 P"heightmap.csv"; Mesh bed to enable mesh grid compsation

    Please help i don't have any more idea

    And photo of first layer 20210221_101155.jpg
    Greatings Matej



  • @matej1006
    AFAIK bed.g is for Delta printers only.
    To create a heightmap you have to define a mesh grid with M557 in config.g and then run it once with G29. After that you can recall it with G29 S1.



  • @o_lampe bed.g is ran when G32 is called.
    So for printers with independent Z motors, the bed.g is where the the appropriate probe points go to do this.

    @matej1006 G29 is cancelled out whenever G28 is called.
    You can check if compensation is active during a print as part of the output of M122



  • @matej1006 said in Mesh grid don't work:

    Please help i don't have any more idea

    You have to enable the compensation by adding a line for

    M376
    

    in the config.g
    Please set the the H-option to your prevered value.
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M376_Set_bed_compensation_taper



  • Okay awesome yeah i missed that. what height i must use



  • @jay_s_uk i have first g28 and then G29

    M561 ; Disable any Mesh Bed Compensation
    G90 G1 X201 Y200 F10000 ; Move to the center of the bed
    M558 F500 ; Set the probing speed
    G30
    M558 F50 ; Set a slower probing speed
    G30
    G32                         ; Run 3-point bed calibration defined in bed.g
    G1 X0 Y0 F10000
    


  • @DIY-O-Sphere this doesn't set mesh levelling by itself
    lets say you are printing a 40mm high part.
    Without this set, mesh levelling would be applied throughout the whole height of the part. Therefore, Z would still be adjusted for the last layer.
    M376 sets how high in the part mesh levelling should be applied for.
    So with M376 H10, the mesh levelling would only be applied to the first 10mm and then after that it would be accounted for.
    You could have M376 H10 in config.g for example but mesh levelling won't be applied unless G29 (or G29 S1) is sent.



  • @matej1006 can you confirm that it is turned on during a print?
    Post the output of M122 if you're not sure



  • M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2 running on Duet Ethernet 1.02 or later + DueX5
    Board ID: 08DLM-996RU-N8PS0-6J1FD-3S06L-1BT3P
    Used output buffers: 3 of 24 (24 max)
    === RTOS ===
    Static ram: 23460
    Dynamic ram: 71608 of which 36 recycled
    Never used RAM 16976, free system stack 213 words
    Tasks: NETWORK(ready,169) HEAT(blocked,311) DUEX(blocked,35) MAIN(running,448) IDLE(ready,19)
    Owned mutexes:
    === Platform ===
    Last reset 00:00:07 ago, cause: software
    Last software reset at 2021-02-21 14:22, reason: User, GCodes spinning, available RAM 16976, slot 0
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
    Error status: 0x00
    Aux0 errors 0,0,0
    MCU temperature: min 18.6, current 19.1, max 19.4
    Supply voltage: min 24.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: position 0, standstill, SG min/max not available
    Driver 1: position 0, standstill, SG min/max not available
    Driver 2: position 0, standstill, SG min/max not available
    Driver 3: position 0, standstill, SG min/max not available
    Driver 4: position 0, standstill, SG min/max not available
    Driver 5: position 0, standstill, SG min/max not available
    Driver 6: position 0, standstill, SG min/max not available
    Driver 7: position 0, standstill, SG min/max not available
    Driver 8: position 0, standstill, SG min/max not available
    Driver 9: position 0, standstill, SG min/max not available
    Driver 10: position 0
    Driver 11: position 0
    Date/time: 2021-02-21 14:22:23
    Cache data hit count 9209468
    Slowest loop: 9.65ms; fastest: 0.20ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 9
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest read time 2.7ms, write time 5.7ms, max retries 0
    === Move ===
    DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
    === AuxDDARing ===
    Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP is idle in state(s) 0
    Telnet is idle in state(s) 0
    File is idle in state(s) 0
    USB is idle in state(s) 0
    Aux is idle in state(s) 0
    Trigger is idle in state(s) 0
    Queue is idle in state(s) 0
    LCD is idle in state(s) 0
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 10.78ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    HTTP sessions: 2 of 8
    Interface state active, link 100Mbps full duplex
    === DueX ===
    Read count 1, 7.91 reads/min
    
    


  • @matej1006 said in Mesh grid don't work:

    === Move === DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000

    Its showing as being in use, which is a good start.
    I don't see an M557 as part of your config.g (this sets up the mesh to be used for G29). Do you know what probe spacing etc you used?
    Did you run G29 when the bed was hot or cold?
    Can you post an image of your height map?



  • @jay_s_uk
    i probe with hot bed f85f216d-333c-4b77-8632-6c6d2aaab2cb-image.png
    here is height map
    M557 is 125 line i config.g file



  • if thats levelling on 3 points before hand, it suggests you have issues with you rails being higher at the back left and lower on the back right.
    thats a lot to compensate.
    you can also go tighter with your mesh as the duet can handle up to 441 mesh points. 60mm between points is quite sparse.



  • yes i do G32 before i do G29
    i will do 20mm now or 10mm ?



  • can i have i bed.g M561 disable any mah compesation or no?



  • @matej1006 disabling mesh levelling in bed.g in normal.
    If you use the drop down compensation menu to define the mesh, it will tell you if you have too many points



  • @matej1006 said in Mesh grid don't work:

    yes i do G32 before i do G29

    You only need a G28 before G29...
    But you can use G32 to get measured values for the adjustment. The result is saved in the console. It makes it easy to adjust the bed with the leveling srews.



  • @jay_s_uk where is that drop down compensation menu i can not find it?



  • @DIY-O-Sphere he does need to do it before as he has independent z levelling





  • @jay_s_uk said in Mesh grid don't work:

    levelling won't be applied unless G29 (or G29 S1) is sent.

    You are right....
    I would recomement to add "G29 S1" in homez.g.
    That's the way I have set it up....



  • ow this drop down menu ok sorry

    my homez.g

    if !move.axes[3].homed
      M291 R"Cannot Home Z" P"U axis must be homed before Z to prevent damage to tool. Press OK to home U or Cancel to abort" S3
      G28 U
    
    ; RRF3 does not permit Z homing without x&y being homed first. Popup window for convenience.
    if !move.axes[0].homed || !move.axes[1].homed
      M291 R"Cannot Home Z" P"X&Y Axes must be homed before Z for probing. Press OK to home X&Y or Cancel to abort" S3
      G28 Y X
    
    if state.currentTool != -1
      M84 U
      M291 R"Cannot Home Z" P"Tool must be deselected before homing. U has been unlocked, please manually dock tool and press OK to continue or Cancel to abort" S3
      G28 U
    
    M561 ; Disable any Mesh Bed Compensation
    G90 G1 X201 Y200 F10000 ; Move to the center of the bed
    M558 F500 ; Set the probing speed
    G30
    M558 F50 ; Set a slower probing speed
    G30
    G32                         ; Run 3-point bed calibration defined in bed.g
    G1 X0 Y0 F10000
    G29 S1 P"heightmap.csv"			; Mesh bed
    
    


  • @jay_s_uk dee6dda0-6391-4288-ad44-b41fc48f8055-image.png new bed with 20 spacing



  • @matej1006 still looks like you have some hardware issues to correct.
    you may be asking a bit too much of mesh levelling



  • Hi,

    Late to the party - sorry about that.

    There are number of incorrect statements that have been made here but let's leave those for now.

    As mentioned you should work on getting the bed much more level before enabling mesh bed compensation.

    You can create a 4 point mesh just to see the overall levelness of the bed.

    I would suspect that your left and right rails are not in the same plane.

    Frederick


  • Moderator

    @jay_s_uk said in Mesh grid don't work:

    === Move === DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000

    Its showing as being in use, which is a good start.

    Actually it's saying bed compensation in use: none. meaning nothing was applied when that M122 was sent. If it said bed compensation in use: mesh, that would mean it's active.


Log in to reply