Struggling in setting up the bed compensation



  • All,
    I am facing an issue. I have adjusted my bed with a caliper and some jig and it appears to be level from left to right. I use a Mini differential IR sensor.
    I have this build surface stick on a glass
    [https://www.amazon.co.uk/gp/product/B07JMT8C9R/ref=ppx_yo_dt_b_asin_title_o04_s02?ie=UTF8&psc=1](link url)

    When I run a G32, my bed look to have the center well above the left and right.
    I created a macro that measure left and right and that gives me the left and right coordinates

    G28                         ; home
    G30 P0 X20 Y150 H0 Z-99999    ; probe near a leadscrew
    G30 P1 X165 Y150 H0 Z-99999 S-1 ; probe near a leadscrew
    M84
    
    G28                         ; home
    G30 P0 X20 Y150 H0 Z-99999    ; probe near a leadscrew
    G30 P1 X165 Y150 H0 Z-99999 S-1 ; probe near a leadscrew
    M84
    

    This gives me

    12/16/2020, 7:05:05 PM	M98 P"0:/macros/LEADSCREW"
    G32 bed probe heights: -0.193 -0.174, mean -0.183, deviation from mean 0.010
    12/16/2020, 7:01:26 PM	M999
    G32 bed probe heights: -0.258 -0.233, mean -0.246, deviation from mean 0.013
    

    The heat map looks as follow

    RepRapFirmware height map file v2, min error -0.371, max error 0.133, mean -0.155, deviation 0.220
    xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum
    20.00,170.00,20.00,270.00,-1.00,150.00,250.00,2,2
     -0.371, -0.366
      0.133, -0.017
    

    I can't manage to tweak it. Even, if I manage to get something better, it will fail in next 30 minutes with no print.

    Antoine



  • I forgot my settings are as follow
    config

    ; Configuration file for p3STEEL
    
    ; Communication and general
    M111 S0                             	; Debug off
    M550 pp3steel		; Machine name and Netbios name (can be anything you like)
    M552 S1				; Enable WiFi
    
    ; misc settings
    M555 P2                           	; Set output to look like Marlin
    M575 P1 B57600 S1			; Comms parameters for PanelDue
    
    ; setting for all axis
    G21                                 	; Work in millimeters
    G90                                	; Send absolute coordinates...
    M83                                 	; ...but relative extruder moves
    
    ; Axis and motor configuration
    M569 P0 S0				; Drive 0 goes forwards (x)
    M569 P1 S1				; Drive 1 goes forwards (Y)
    M569 P2 S1				; Drive 2 goes forwards (z)
    M569 P3 S0				; Drive 3 goes forwards (e1)
    M569 P4 S1				; Drive 4 goes forwards (E2)
    
    ; microstepping and homing switch config
    M350 X16 Y16 Z16 E16 I1             ; set 16x microstepping with interpolation
    
    
    M574 X1 S1 P"!xstop"   ; X min active high endstop switch
    M574 Y1 S1 P"!ystop"   ; Y min active high endstop switch
    M574 Z1 S1 P"zstop"   ; Z min active high endstop switch
    
    
    ; Motor current and acceleration
    M906 X1000 Y1200 Z1200 E1200 I30		; Set motor currents (mA) and increase idle current to 60%
    M84 S60 ; Set idle timeout
    
    M201 X3000 Y3000 Z15 E3600		; Accelerations (mm/s^2) 
    M203 X6000 Y6000 Z100 E1200		; feedrate  (mm/min)
    M566 X1800 Y1800 Z180 E300		; Maximum instant speed changes mm/minute
    M210 X5000 Y5000 Z60  			; set hming feedrate
    
    ; steps per mm
    M92 X79.01 Y76.04 Z3298.92  ; Set axis steps/mm
    M92 E415:415                          ; set extruder 0 and 1 steps/mm
    
    
    
    ; Thermistors
    M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 ; define bed temperature sensor
    M308 S1 P"e0_temp" Y"thermistor" T100000 B4725 C7.06e-8 ; define E0 temperature sensor
    M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0
    M950 H1 C"e0_heat" T1 ; heater 1 uses the e0_heat pin and sensor 1
    M950 F0 C"fan0"  ; Fan 0
    M140 H0 ; the bed heater is heater 0
    
    
    M143 H1 S270 ; Set maximum heater temperature to 270C
    M143 H0 S115 ; Set maximum heater temperature to 270C
    
    
    
    ; Tool definitions
    M563 P0 D0 H1                       	; Define tool 0 old
    M571 P"e0heat *" S1.0
    G10 P0 S0 R0                        	; Set tool 0 operating and standby temperatures
    
    
    
    ; Z probe and compensation definition
    M558 P1 C"^zprobe.in"  X0 Y0 Z1 H5 F500 T3000    ; smart IR Z probe, used for homing Z axis only, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min
    G31 P500 X15 Y3 Z0.40        ; set threshold and offsets (we were at 0.50 BEFORE ADJUSTMENT)
    
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0                   	; Axis compensation here
    
    
    M206 X0 Y0 Z0
    M208 X0 Y0 Z0 S1 				; set minimum Z
    ; max travel and origin
    M208 X215 Y310 Z200 
    
    ;
    T0					; select first hot end
    
    M570 H1 P20 T30 
    
    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory
    

    bed

    G28 X0 Y0     ; Home All
    G28 Z0        ; Home All
    M561                         ; clear any existing bed transform
    M557 X20:170 Y20:270 P2:2
    M376 H3   ;taper off compensation after 3mm
    G29
    
    G1 X10 Y10 F5000               ; move the head to the corner (optional)
    

  • Moderator

    Can you post your homing files as well?

    Also post the results of M122 and M98 P"config.g" please.



  • @Phaedrux said in Struggling in setting up the bed compensation:

    M122

    Hello
    So
    M122

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.0 or 1.01
    Board ID: 08DAM-999TL-MQ4S4-6J1DG-3S46N-TPHRY
    Used output buffers: 3 of 24 (12 max)
    === RTOS ===
    Static ram: 27980
    Dynamic ram: 93788 of which 60 recycled
    Exception stack ram used: 584
    Never used ram: 8660
    Tasks: NETWORK(ready,708) HEAT(blocked,1224) MAIN(running,1904) IDLE(ready,80)
    Owned mutexes: WiFi(NETWORK)
    === Platform ===
    Last reset 03:48:29 ago, cause: software
    Last software reset at 2020-12-16 19:01, reason: User, spinning module GCodes, available RAM 8708 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 31.6, current 36.0, max 40.1
    Supply voltage: min 13.3, current 13.9, max 14.1, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: ok, SG min/max 0/1023
    Driver 1: ok, SG min/max 0/1023
    Driver 2: ok, SG min/max 155/959
    Driver 3: ok, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-12-16 22:49:56
    Cache data hit count 4294967295
    Slowest loop: 87.70ms; fastest: 0.12ms
    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 1.5ms, write time 9.6ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 165, MinFreeDm: 85, MaxWait: 5148849ms
    Bed compensation in use: mesh, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 3102, completed moves: 3063, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: 3
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 0 is on, I-accum = 0.0
    Heater 1 is on, I-accum = 0.4
    === GCodes ===
    Segments left: 1
    Movement lock held by null
    HTTP is idle in state(s) 0
    Telnet is idle in state(s) 0
    File is doing "G1 X111.801 Y162.049 E0.0048" 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 46.35ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    HTTP sessions: 1 of 8
    - WiFi -
    Network state is active
    WiFi module is connected to access point 
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.23
    WiFi MAC address 60:01:94:09:bc:4e
    WiFi Vcc 3.44, reset reason Unknown
    WiFi flash size 4194304, free heap 23568
    WiFi IP address 10.0.0.19
    WiFi signal strength -62dBm, reconnections 0, sleep mode modem
    Socket states: 0 0 0 0 0 0 0 0
    

    M98 P"config.g", I think that shows already some issues. i'll look into that.

    Warning: M210: Command is not supported
    Error: in file macro line 44 column 10: M92: array too long, max length = 1
    Error: Unknown pin name 'e0heat*'
    16/12/2020 à 22:51:22	Error: Heater 2 not found
    Error: Heater 3 not found
    Error: Heater 4 not found
    Error: Heater 5 not found
    Error: Heater 6 not found
    Error: Heater 7 not found
    

    and last the home file.

    G91                ; relative mode
    G1 Z1 F200  H2       ; raise head 1mm
    G1 X-240 Y-340 F2000 H1  ; move up to 240mm in the -X and -Y directions until the homing switches are triggered
    G1 X4 Y4 F1200      ; move slowly 6mm in +X and +Y directions
    G1 X-5 Y-5 F1000 H1    ; move up to 10mm in the -X and -Y directions until the homing switches are triggered
    G90                ; back to absolute mode
    G1 X105 Y155 F3000
    G30                ; lower head, stop when probe triggered and set Z to trigger height
    


  • I corrected the config.g now looking as follow, but still getting some errors unrelated to my issues.

    ; Configuration file for p3STEEL
    
    ; Communication and general
    M111 S0                             	; Debug off
    M550 pp3steel		; Machine name and Netbios name (can be anything you like)
    M552 S1				; Enable WiFi
    
    ; misc settings
    M555 P2                           	; Set output to look like Marlin
    M575 P1 B57600 S1			; Comms parameters for PanelDue
    
    ; setting for all axis
    G21                                 	; Work in millimeters
    G90                                	; Send absolute coordinates...
    M83                                 	; ...but relative extruder moves
    
    ; Axis and motor configuration
    M569 P0 S0				; Drive 0 goes forwards (x)
    M569 P1 S1				; Drive 1 goes forwards (Y)
    M569 P2 S1				; Drive 2 goes forwards (z)
    M569 P3 S0				; Drive 3 goes forwards (e1)
    M569 P4 S1				; Drive 4 goes forwards (E2)
    
    ; microstepping and homing switch config
    M350 X16 Y16 Z16 E16 I1             ; set 16x microstepping with interpolation
    
    
    M574 X1 S1 P"!xstop"   ; X min active high endstop switch
    M574 Y1 S1 P"!ystop"   ; Y min active high endstop switch
    M574 Z1 S1 P"zstop"   ; Z min active high endstop switch
    
    
    ; Motor current and acceleration
    M906 X1000 Y1200 Z1200 E1200 I30		; Set motor currents (mA) and increase idle current to 60%
    M84 S60 ; Set idle timeout
    
    M201 X3000 Y3000 Z15 E3600		; Accelerations (mm/s^2) 
    M203 X6000 Y6000 Z100 E1200		; feedrate  (mm/min)
    M566 X1800 Y1800 Z180 E300		; Maximum instant speed changes mm/minute
    ; M210 X5000 Y5000 Z60  			; set hming feedrate
    
    ; steps per mm
    M92 X79.01 Y76.04 Z3298.92  ; Set axis steps/mm
    ; M92 E415:415                          ; set extruder 0 and 1 steps/mm
    M92 E415
    
    
    
    ; Thermistors
    M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 ; define bed temperature sensor
    M308 S1 P"e0_temp" Y"thermistor" T100000 B4725 C7.06e-8 ; define E0 temperature sensor
    M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0
    M950 H1 C"e0_heat" T1 ; heater 1 uses the e0_heat pin and sensor 1
    M950 F0 C"fan0"  ; Fan 0
    M140 H0 ; the bed heater is heater 0
    
    
    M143 H1 S270 ; Set maximum heater temperature to 270C
    M143 H0 S115 ; Set maximum heater temperature to 270C
    
    
    
    ; Tool definitions
    M563 P0 D0 H1                       	; Define tool 0 old
    M571 P"e0_heat *" S1.0
    G10 P0 S0 R0                        	; Set tool 0 operating and standby temperatures
    
    
    
    ; Z probe and compensation definition
    M558 P1 C"^zprobe.in"  X0 Y0 Z1 H5 F500 T3000    ; smart IR Z probe, used for homing Z axis only, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min
    G31 P500 X15 Y3 Z0.40        ; set threshold and offsets (we were at 0.50 BEFORE ADJUSTMENT)
    
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0                   	; Axis compensation here
    
    
    M206 X0 Y0 Z0
    M208 X0 Y0 Z0 S1 				; set minimum Z
    ; max travel and origin
    M208 X215 Y310 Z200 
    
    ;
    T0					; select first hot end
    
    M570 H1 P20 T30 
    
    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory
    

    diagnostic
    ```
    M98 P"config.g"
    Error: Unknown pin name 'e0heat*'
    Error: Heater 2 not found
    Error: Heater 3 not found
    Error: Heater 4 not found
    Error: Heater 5 not found
    Error: Heater 6 not found
    Error: Heater 7 not found


  • Moderator

    What do you have in config-override.g? I think that is probably where the heater not found is coming from.

    @antoine-voiry said in Struggling in setting up the bed compensation:

    Error: Unknown pin name 'e0heat*'

    Are you still getting that error? It looks like you've changed the pin name?

    @antoine-voiry said in Struggling in setting up the bed compensation:

    I can't manage to tweak it. Even, if I manage to get something better, it will fail in next 30 minutes with no print.

    What do you mean by fail in the next 30 minutes with no print?

    @antoine-voiry said in Struggling in setting up the bed compensation:

                                                                                                                                G28 X0 Y0     ; Home All                                                                                                                                                                            G28 Z0        ; Home All
    

    You posted homeall, but your bed.g actually called homex homey and homez separately, so please post those files as well.

    What do you have in your slicer start gcode?



  • Thanks so much!

    The bed probing will be fine, and then I keep the printer on with no print and another bed level will be completely off.

    I am still getting the e0heat error. In the config override, I only have the PID tune, I can post the file if needed.
    I would not be surprised if I have some odd things in the config, I have been tweaking this config for at least 5 years.

    Here is home x

    G91                ; relative mode
    G1 Z1 F600 H2     ; lift Z relative to current position
    G1 X-240 F2000 H1  ; move up to 240mm in the -X direction, stopping if the homing switch is triggered
    G1 X4 F1000         ; move slowly 4mm in the +X direction
    G1 X-5 F1000 H1         ; move slowly 10mm in the -X direction, stopping at the homing switch
    G1 Z1 F200  H2      ; lower the head again
    G90                ; back to absolute mode
    

    home y

    G91                ; relative mode
    G1 Z0.5 F200 H2     ; lift Z relative to current position
    G1 Y-320 F3000 H1  ; move up to 240mm in the -X direction, stopping if the homing switch is triggered
    G1 Y4 F600         ; move slowly 4mm in the +X direction
    G1 Y-5 F600 H1         ; move slowly 10mm in the -X direction, stopping at the homing switch
    G1 Z-0.5 F200 H2       ; lower the head again
    G90                ; back to absolute mode
    

    home z

    G91                ; relative mode
    G1 Z5 F200 H2        ; raise head 4mm to ensure it is above the Z probe trigger height
    G90                ; back to absolute mode
    G1 X100 Y150 F3000 ; put head over the centre of the bed, or wherever you want to probe
    G30                ; lower head, stop when probe triggered and set Z to trigger height
    

    Example start GCODE

    G90
    M83
    M106 S0
    M140 S65
    M190 S65
    ; probe bed
    M300 s1500 p500 ; BIP probe starting
    G32 ;probe bed
    M300 s1500 p500 ; BIP probe ending
    ; probe bed end
    ; set temperature
    M109 S215
    ; wipe extruder sequence
    G1 X15 Y10 Z0.2  F3000 ; avoid binder clips
    G1 X130 E12 F500 ; prime line
    G1 X145 F100 ; slow wipe
    G92 E0                  ;zero the extruded length
    ; process P3STEE PLA1.75
    ; layer 1, Z = 0.240
    T0
    G1 E-1.4000 F2100
    ; feature skirt
    

  • Moderator

    Couple things I notice

    Your positioning of the probe before sending the G30 is different between homeall and homez. They should match.

    In your bed.g you specify a taper height of 3mm. That may be pretty tight and can lead to les compensation then expected when printing. Try setting M376 H0 to disable taper entirely and see if it makes a difference.

    Also, in our bed.g move the M561 to the start of the file before the homing calls.

    The first time you start a print, it's homing, and then doing the bed mesh. The second time you start a print, the mesh is still active, then you are homing, and then you are canceling the mesh and then creating a new mesh.

    I think by having the mesh active the second time you home you're throwing off your second mesh creation.



  • Hello
    i am trying that.
    Antoine



  • I'd like to piggyback on this conversation for a moment, if you will humor me. I'm currently using mesh compensation and having pretty good results, but because of two binder clips (front left and back right) I'm missing probing of a couple of strips, leading to I think some very unfortunate interpolation in those regions.

    I'd like to add some individual probe points in to cover these regions, but @Phaedrux 's comment about having the mesh active has me thinking that this isn't as simple as I would like.

    Specifically I'd like to (a) cover the majority of the plate with G29, and (b) fill in a few additional spots, presumably with G30. Am I thinking about this the right way, and should I do the G30s first so that the map isn't in place, or am I overthinking it?

    Thanks!


  • Moderator

    @paralepsis Please start a separate thread.


Log in to reply