problem with irregular bltouch mesh



  • forgive me for the bad english done by google.
    I have a corexy that I build, a 300x300 table with 2 4mm pitch spindles and 4 10mm rods with lm10. Duet 2 wifi firmware 3
    I've been following the forum for a long time and I'm familiar with the reprap but I have a problem with bl touch that I can't solve, please help me.
    I can use my machine normally when the piece is small but when it occupies the entire table I have problems.
    I do the readings with a bltouch every 50mm in x and y, I have a precise mesh, I redo the measurements and I get the same results, when I print a large piece, I notice that at times the filament gets too tight on the table and in others barely group because the beak is high.
    I also follow the movements of 2 spindles looking at the mesh generated in the DWC, and it seems that the movements of the motors correspond to the irregularities in the table, but on the impression this does not seem to happen.
    So, I have a whole mesh reading system working perfectly, but it’s not as efficient on the whole table. I do not know what to do, I have checked several times all the mechanical system of the machine and everything is ok, I would like to know from you if there is something I can check.

    M569 P0 S0 F3                                     ; physical drive 0 goes forwards	
    M569 P1 S0 F3                                     ; physical drive 1 goes forwards	
    M569 P2 S1 F3                                     ; physical drive 2 goes backwards	
    M569 P3 S1 F3                                        ; physical drive 3 goes backwards
    M569 P4 S1                                     ; physical drive 4 goes backwards	
    M584 X0 Y1 Z2:3 E4                                 ; set drive mapping
    M350 X16 Y16 Z16:16 E16 I1             	            ; Micropassos cem interpolação
    M92 X80.00 Y80.00 Z800.00:800.00 E416,5           ; set steps per mm
    M566 X400.00 Y400.00 Z60.00:60.00 E2000.00 P1            ; set maximum instantaneous speed changes (mm/min) JERK
    M203 X12000.00 Y12000.00 Z720.00:720.00 E2100.00   ; set maximum speeds (mm/min)
    M201 X2300.00 Y2300.00 Z240.00:240.00 E9000.00       ; set accelerations (mm/s^2)
    ;M204 P2600 T2000  							       ; set accelerations travel (mm/s^2)
    M906 X1150 Y1150 Z1150:1150 E700 I30               ; set motor currents (mA) and motor idle factor in per cent
    M84 S20                                            ; Set idle timeout
                                    ; Z-Probe
    M950 S0 C"exp.heater3"                             ; criar servo / gpio 0 no aquecedor de 3 pinos no conector de expansão
    M558 P9 C"^zprobe.in" R0.2 H2.8 F60 T10800                ; BLTouch conectado ao pino de entrada da sonda Z
    G31 P500 X-4.5 Y25 Z0.55                           ; deslocamento da sonda com o bico
    M557 X20:280 Y30:290 S50                           ; define mesh grid
                                      ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B3950     ; 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
    M307 H0 A180.2 C510.1 D2.9 S0.70 V12.8 B0          ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            ; map heated bed to heater 0
    M143 H0 S115                                       ; set temperature limit for heater 0
    M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C0.0000000706      ; configuração conforme recomendação do duet3d
    M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 A651.7 C191.8 D6.3 S1.00 V12.7 B0          ; disable bang-bang mode for heater  and set PWM limit
    M143 H1 S250                                       ; seta o limite de temperatura para o extrusor
                                     ; Axis Limits
    M208 X-3 Y0 Z0 S1                                  ; set axis minima
    M208 X300 Y300 Z345 S0                             ; set axis maxima
                                      ; Endstops
    M574 X1 S1 P"xstop"                                ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop"                                ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S1 P"zstop+e1stop"
    

    currently when i have to print on the whole table i follow the entire first layer and keep changing the extrusion factor to compensate for the difference in height.
    again i reaffirm some items: bltouch with repeatability in readings ok, z axis adjusted and nothing is screwing or heavy. the x and y axes are also ok they are not going down. not what I can try to do.



  • Hi,

    Please post your heightmap.csv file.

    Thanks.

    Frederick



  • I now send photos of a test that I do, there are some squares inside each other, with 0.4mm space between them, the largest square is 280mm, line height is 0.3mm, the motors compensate according to the mesh generated by bltouch but in practice the layer is irregular.

    WhatsApp Image 2020-09-30 at 17.33.15.jpeg WhatsApp Image 2020-09-30 at 17.33.15 (2).jpeg WhatsApp Image 2020-09-30 at 17.33.15 (1).jpeg



  • @fcwilt

    RepRapFirmware height map file v2 generated at 2020-09-30 16:08, min error -0.121, max error 0.077, mean -0.034, deviation 0.048
    xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum
    15.00,285.00,25.00,295.00,-1.00,45.00,45.00,7,7
    0.007, -0.064, -0.099, -0.105, -0.106, -0.070, -0.015
    -0.006, -0.064, -0.111, -0.105, -0.056, -0.029, 0.005
    0.005, -0.038, -0.045, -0.073, -0.076, -0.048, 0.020
    0.045, 0.017, -0.021, -0.036, -0.039, -0.034, 0.025
    0.030, -0.015, -0.033, -0.040, -0.028, 0.010, 0.077
    0.040, 0.006, -0.025, -0.058, -0.059, -0.014, 0.050
    0.000, -0.065, -0.096, -0.121, -0.119, -0.076, -0.011

    89058bdf-4e61-44c8-84c1-deb7e8b89fcf-image.png



  • Thanks.

    Try printing a test from 50 to 250 on both X and Y.

    That should put it away from the edges which are the highest parts.

    Frederick



  • @fcwilt
    print centered 200mm squares
    edge x50,y50
    WhatsApp Image 2020-09-30 at 18.20.44.jpeg

    edge x200,y50
    WhatsApp Image 2020-09-30 at 18.20.55.jpeg



  • Thanks.

    It looks a bit better.

    Did you create the height map with the bed heated to a typical temperature you would commonly use?

    If not try re-creating the height map with the bed heated.

    Frederick



  • @fcwilt
    yes, i have 3 height maps created for each material i use, at different temperatures, and i update them almost every day


  • Moderator

    Are you sure your probe offsets are correct?

    -X to the left of the nozzle, +X to the right
    -Y to the front of the nozzle, +Y to the back



  • @Phaedrux yes this is correct, thanks for the tip. I've really looked at a lot, the reprap code is not so complicated now for me but I still don't know what may be happening. can speed, acceleration or jerk on the z axis influence?


  • Moderator

    @RODOKAS said in problem with irregular bltouch mesh:

    M574 Z1 S1 P"zstop+e1stop"

    Are you doing independent lead screw leveling as well?

    @RODOKAS said in problem with irregular bltouch mesh:

    M350 X16 Y16 Z16:16 E16 I1 ; Micropassos cem interpolação M92 X80.00 Y80.00 Z800.00:800.00 E416,5 ; set steps per mm M566 X400.00 Y400.00 Z60.00:60.00 E2000.00 P1 ; set maximum instantaneous speed changes (mm/min) JERK M203 X12000.00 Y12000.00 Z720.00:720.00 E2100.00 ; set maximum speeds (mm/min) M201 X2300.00 Y2300.00 Z240.00:240.00 E9000.00 ; set accelerations (mm/s^2) ;M204 P2600 T2000 ; set accelerations travel (mm/s^2) M906 X1150 Y1150 Z1150:1150 E700 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S20 ; Set idle timeout

    Where you have double Z values you shouldn't. The Z axis is a single axis, so remove the double values. Ex: Z1150:1150

    E416,5

    Your E steps per mm has a comma instead of a period.

    Can you send M98 P"config.g" and post the results?

    Also post your homeall and your slicer start gcode.



  • @Phaedrux
    my steps are really wrong, thanks!
    should I remove all double settings for the second z?
    yes, I do the leveling by optical endstop on each axis then I do it again by bltouch.

    I made corrections

    M98 P"config.g"
    HTTP is enabled on port 80
    FTP is enabled on port 21
    TELNET is disabled
    Warning: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 205C
    Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 676C
    Warning: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 205C
    Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 676C

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri Jun 05 2020 16:15:12 GMT-0300 (Horário Padrão de Brasília)
    
    G91                     ; relative positioning
    G1 H2 Z2 F900         ; lift Z relative to current position
    G1 H1 X-305 Y-315 F6000 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X-305             ; home X axis
    G1 H1 Y-315             ; home Y axis
    G1 X3 Y3 F6000          ; go back a few mm
    G1 H1 X-305 F600        ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y-315             ; then move slowly to Y axis endstop
    G90                     ; absolute positioning
    G1 X5 Y5 F6000      ; go to first bed probe point and home Z
    

    start script
    G28 ;
    ; Filament gcode
    G29 S1 P"ABS.CSV"; Carrega malha para ABS
    G1 X5 Y1 Z0.2 F9000;
    G92 E0; Reset no extrusor
    G1 E20 F1000.0 ; comeca a limpeza
    G1 X7.0 F100
    G1 X80.0 E23 F2000.0 ; Termina de fazer a limpeza
    G92 E0;
    M572 D0 S0.05; avanco de pressao reprap
    ;M593 F40; aceleracao dinamica reprap
    ;M376 H5; altura para diminuir a compensacao da mesa

    prusa slicer


  • Moderator

    @RODOKAS said in problem with irregular bltouch mesh:

    should I remove all double settings for the second z?

    Yes. It's not really a second Z. There is only 1 Z axis, even if made up of multiple motors. If you want to control the motors separately, you'd need to create an entirely separate axis like U and then you'd have settings for that axis. In fact, before RRF3 you would have needed to do that to do the dual endstop leveling and home each axis separately and then recombine into a single Z axis.

    I should have asked for your bed.g as well.



  • @Phaedrux

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri Jun 05 2020 16:15:10 GMT-0300 (Horário Padrão de Brasília)
    M561 ; clear any bed transform
    

    Thanks!



  • @Phaedrux
    this is the macro I use to read and create the mesh for ABS

    ;macro /macros/__prepare_ABS.g  prepare the machine after a cold start for ABS printing
    T0			; define tool
    M190 S95	; Set the bed temperature at 95°C and wait for it
    G28			; home
    G29	S2		; Limpa a malha
    G29 S0      ; executa leitura da cama
    G29 S3 P"ABS.csv"    ; salva a leitura como ABS
    G29 S1 P"ABS.csv"    ; carrega a malha ABS
    G1 X5 Y5 F7200
    M500;
    


  • @RODOKAS said in problem with irregular bltouch mesh:

    this is the macro I use to read and create the mesh for ABS

    ;macro /macros/__prepare_ABS.g  prepare the machine after a cold start for ABS printing
    T0			; define tool
    M190 S95	; Set the bed temperature at 95°C and wait for it
    G28			; home
    G29	S2		; Limpa a malha
    G29 S0      ; executa leitura da cama
    G29 S3 P"ABS.csv"    ; salva a leitura como ABS
    G29 S1 P"ABS.csv"    ; carrega a malha ABS
    G1 X5 Y5 F7200
    M500;
    

    Hi,

    • It doesn't seem as if your homing macro is setting the Z=0 datum using G30
    • As I recall you don't need to use G29 S2 right before using G29 S0 - it won't cause problems if you leave it
    • You don't need to use G29 S1 to load the just created height map, the map is still active
    • What is the point of the M500?

    Frederick



  • I was curious about the m561 in my beg.g and took it out to test it, did the mesh in abs again and restarted the machine to make sure, I did the same print test as before and the result was the same.


  • Moderator

    Your homeall doesn't have a z homing component, so please post homez as well.

    Where are you doing the Z axis leveling? In homez?

    Could you post all of your files in a single post? That would make it much easier to see what's going on without having to scroll around all over the place. The only way we can see what's going on is be looking at the gcode.



  • @Phaedrux you are right, i will put all gcodes here.

    ;config.g
    ; Configuration file for Duet WiFi (firmware version 3)
                     ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"3DPRINT"                                    ; set printer name
    M669 K1                                            ; select CoreXY mode
                            ; Network
    M552 S1                                            ; enable network
    ;M552 S2     									;Habilitar ponto de acesso
    M586 P0 S1                                         ; enable HTTP
    M586 P1 S1                                         ; enable FTP
    M586 P2 S0                                         ; desabilitado Telnet
                              ; Drives
    M569 P0 S0 F3                                     ; physical drive 0 goes forwards	
    M569 P1 S0 F3                                     ; physical drive 1 goes forwards	
    M569 P2 S1 F3                                     ; physical drive 2 goes backwards	
    M569 P3 S1 F3                                        ; physical drive 3 goes backwards
    M569 P4 S1                                     ; physical drive 4 goes backwards	
    M584 X0 Y1 Z2:3 E4                                 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1             	            ; Micropassos cem interpolação
    M92 X80.00 Y80.00 Z800.00 E416.5           ; set steps per mm
    M566 X400.00 Y400.00 Z60.00 E2000.00 P1            ; set maximum instantaneous speed changes (mm/min) JERK
    M203 X12000.00 Y12000.00 Z720.00 E2100.00   ; set maximum speeds (mm/min)
    M201 X2300.00 Y2300.00 Z240.00 E9000.00       ; set accelerations (mm/s^2)
    ;M204 P2600 T2000  							       ; set accelerations travel (mm/s^2)
    M906 X1150 Y1150 Z1150 E700 I30               ; set motor currents (mA) and motor idle factor in per cent
    M84 S20                                            ; Set idle timeout
                                    ; Z-Probe
    M98 P"0:/macros/configuracao_sonda"
                                      ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B3950     ; 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
    M307 H0 A180.2 C510.1 D2.9 S0.75 V12.8 B0          ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            ; map heated bed to heater 0
    M143 H0 S115                                       ; set temperature limit for heater 0
    ;M308 S1 P"e0temp" Y"thermistor" T100000 B4267     ; configuração conforme opção 5 do marlin
    M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C0.0000000706      ; configuração conforme recomendação do duet3d
    M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
    ;M307 H1 B1										   ; ativa o modo bang bang
    M307 H1 A651.7 C191.8 D6.3 S1.00 V12.7 B0          ; disable bang-bang mode for heater  and set PWM limit
    M143 H1 S250                                       ; seta o limite de temperatura para o extrusor
                                      ; Fans
    M950 F0 C"fan0" Q500                               ; create fan 0 on pin fan0 and set its frequency
    M106 P0 C"fan0" S0 H-1                             ; set fan 0 name and value. Thermostatic control is turned on
    ;M950 F1 C"fan1" Q500                              ; create fan 0 on pin fan0 and set its frequency
    ;M106 P1 C"PLACA" S1 H1 T40                        ; set fan 0 name and value. Thermostatic control is turned on
    M950 F2 C"fan2" Q200                               ; create fan 2 on pin fan2 and set its frequency
    M106 P2 C"FONTE" S0.8 H1 T180                        ; set fan 2 name and value. Thermostatic control is turned off
    M950 F1 C"e1heat" Q500                             ; create fan 1 on pin HEATER2 and set its frequency
    M106 P1 C"HOTEND" S1 H1 T60                        ; set fan 1 name and value. Thermostatic control is turned off
                                     ; Axis Limits
    M208 X-3 Y0 Z0 S1                                  ; set axis minima
    M208 X300 Y300 Z345 S0                             ; set axis maxima
                                      ; Endstops
    M574 X1 S1 P"xstop"                                ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop"                                ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S1 P"zstop+e1stop"
                                      ; Tools
    M563 P0 D0 H1                                 ; define tool 0
    G10 P0 X0 Y0 Z0                                    ; set tool 0 axis offsets
    G10 P0 R0 S0                                       ; set initial tool 0 active and standby temperatures to 0C
                                  ; Miscellaneous
    M911 S11 R11.5 P"M913 X0 Y0 G91 M83 G1 Z1 E-2 F1000" ; set voltage thresholds and actions to run on power loss
    
    M501
    
    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri Jun 05 2020 16:15:12 GMT-0300 (Horário Padrão de Brasília)
    
    G91                     ; relative positioning
    G1 H2 Z2 F900         ; lift Z relative to current position
    G1 H1 X-305 Y-315 F6000 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X-305             ; home X axis
    G1 H1 Y-315             ; home Y axis
    G1 X3 Y3 F6000          ; go back a few mm
    G1 H1 X-305 F600        ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y-315             ; then move slowly to Y axis endstop
    G90                     ; absolute positioning
    G1 X5 Y5 F6000      ; go to first bed probe point and home Z
    
    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri Jun 05 2020 16:15:12 GMT-0300 (Horário Padrão de Brasília)
    G91               ; relative positioning
    G1 H1 Z-350 F900  ; move Z down until the endstop is triggered
    G1 Z3 F900
    G1 H1 Z-5 F150
    G92 Z0            ; set Z position to axis minimum (you may want to adjust this)
    G1 H1 Z3 F900
    G1 Z2.9
    G30
    
    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri Jun 05 2020 16:15:10 GMT-0300 (Horário Padrão de Brasília)
    ;M561 ; clear any bed transform
    
    ;macro /macros/__prepare_ABS.g  prepare the machine after a cold start for ABS printing
    T0			; define tool
    M140 S95 	; Set the bed temperature and don't wait for it
    M190 S95	; Set the bed temperature at 95°C and wait for it
    G28			; home
    G29	S2		; Limpa a malha
    G29 S0      ; executa leitura da cama
    G29 S3 P"ABS.csv"    ; salva a leitura como ABS
    G29 S1 P"ABS.csv"    ; carrega a malha ABS
    G1 X5 Y5 F7200
    M500;
    

    I really don't know if the M500 makes a difference at the end of the ABS macro


  • Moderator

    @RODOKAS said in problem with irregular bltouch mesh:

    I really don't know if the M500 makes a difference at the end of the ABS macro

    It doesn't do anything in this case because there hasn't been anything calculated or measured to save to config-override.g.


  • Moderator

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri Jun 05 2020 16:15:12 GMT-0300 (Horário Padrão de Brasília)
    G91               ; relative positioning
    G1 H1 Z-350 F900  ; move Z down until the endstop is triggered
    G1 Z3 F900
    G1 H1 Z-5 F150
    G92 Z0            ; set Z position to axis minimum (you may want to adjust this)
    G1 H1 Z3 F900
    G1 Z2.9
    G30
    

    Your homez could be improved. The endstop leveling proceeds correctly, but then it gets a bit odd.

    Remove this part

    G92 Z0            ; set Z position to axis minimum (you may want to adjust this)
    G1 H1 Z3 F900
    G1 Z2.9
    G30
    

    And replace it with

    G1 Z3  ; raise for clearance
    G1 X150 Y150 ; move to center
    G30 ; probe the bed
    

    Probing the center of the bed is important for setting Z0 since you are adjusting the tilt of the bed. You want to measure the center of that tilt.

    You're also only using the endstops for tilt correction. You aren't using the probe anywhere. This is fine as long as the endstop positions are accurate to remove any tilt.

    See here for how you would use the probe to correct for tilt.
    https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
    This would normally be done in G32/bed.g

    Can you please post this macro s well: M98 P"0:/macros/configuracao_sonda"

    Then in your prepare_abs macro to generate the heightmap you would have G28 to home the bed, G32 to level the tilt with the probe, and then G29 to create a heightmap of the bed surface.



  • @Phaedrux
    I'm sorry I forgot that I leave the probe configuration in a macro

    M950 S0 C"exp.heater3"                             ; criar servo / gpio 0 no aquecedor de 3 pinos no conector de expansão
    M558 P9 C"^zprobe.in" R0.2 H2.8 F60 T10800                ; BLTouch conectado ao pino de entrada da sonda Z
    G31 P500 X-4.5 Y25 Z0.55                           ; deslocamento da sonda com o bico
    M557 X20:280 Y30:290 S50                           ; define mesh grid
    

    if my z-axis is a little unbalanced, it can hit, so I don’t think it’s safe to probe the center of the bed and then probe the bed close to the engines, maybe if I did all that I mentioned after using the endstop I already have it would make it safer.
    I will try this change and then put the result.

    would my new abs mesh macro look like this?

    ;macro /macros/__prepare_ABS.g  prepare the machine after a cold start for ABS printing
    T0			; define tool
    M190 S95	; Set the bed temperature at 95°C and wait for it
    G28			; home
    G29 S0      ; executa leitura da cama
    G29 S3 P"ABS.csv"    ; salva a leitura como ABS
    G1 X5 Y5 F7200;
    

  • Moderator

    @RODOKAS said in problem with irregular bltouch mesh:

    would my new abs mesh macro look like this?

    Yes that looks cleaner.

    @RODOKAS said in problem with irregular bltouch mesh:

    if my z-axis is a little unbalanced, it can hit, so I don’t think it’s safe to probe the center of the bed and then probe the bed close to the engines, maybe if I did all that I mentioned after using the endstop I already have it would make it safer.

    I think it would be ok because your first homing pass is with the endstops which should remove most of the tilt even if it's not perfect and establishes an approximate Z0 point. Probing the center to get a finer measurement and then a probe based tilt correction to get it dialed in before creating the heightmap should give good results.



  • @Phaedrux I don't know if I expressed myself correctly, I would prefer to continue with the optical endstop that I have for the 2 engines, then probe the center of the table, and then afterwards set the z0 for each engine again using the bltouch next to each spindle. would it be possible?
    I can't imagine how it would be, the link to teach to use either the probe or the endstop, but not the two systems.


  • Moderator

    The way I have described uses both. The endstops are used for the first pass just as they are now, but then the probe is used afterwards.

    The homez you already posted uses both the endstops and then the probe. The only change I've suggested is probing the center of the bed after the endstops are done, and then doing the tilt correction again with the probe as described in that independant leveling link.


Log in to reply