Mesh Compensation not working (left side higher than right)
-
Here is my heightmap.
When I try and do a print with Mesh compensation enabled or not the left side is always higher than the right. I know that it is trying as I have seen the motors move, but it doesn't seem like it has any noticeable affect.
Here is my Config.g
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 03 2021 11:42:17 GMT-0500 (Central Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"HyperCube" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S1 ; enable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes forwards M569 P1 S0 ; physical drive 1 goes forwards M569 P2 S0 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E409.00 ; set steps per mm M566 X900.00 Y900.00 Z99.60 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z600.00 E3000.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z200.00 E10000.00 ; set accelerations (mm/s^2) M906 X950 Y950 Z950 E950 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X271 Y290 Z280 S0 ; set axis maxima ; Endstops M574 X1 S3 F0 R0 ; Set active High endstops (S1=SENSORED) (X-MIN(1)) (S3=SENSORLESS) M574 Y0 S3 F0 R0 ; Set active High endstops (S1=SENSORED) (Y-MIN(1)) (S3=SENSORLESS) M574 X1 Y1 S3 ; Set endstops controlled by motor load detection M574 Z1 S2 ; configure sensorless endstop for low end on Y and X M915 X Y S7 R0 F0 ; Z-Probe M950 S0 C"exp.heater7" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H3 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-2 Y-38 Z1.25 ; set Z probe trigger value, offset and trigger height M557 X15:250 Y15:250 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans ;M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency ;M106 C"PartCoolingFan" P0 S0 H-1 B1 ; set fan 0 value. Thermostatic control is turned off ;M950 F1 C"fan1" Q500 ;HOTEND FAN create fan 1 on pin fan1 and set its frequency ;M106 C"HotendFAN" P1 H1 T45 ; set fan 1 value. Thermostatic control is turned on M950 F0 C"fan0" Q500 M106 P0 S0 H-1 B1 M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F1 ; 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 ; Custom settings are not defined M671 X50:250:250:50 Y250:250:50:50 P0.5 ; point1 (50,250), point2 (250,250), point3 (250,50), point4 (50,50) ; Miscellaneous M501 ; load saved parameters from non-volatile memory M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
Let me know if you need anything else. I have never felt so dumb in my life trying to figure this thing out.
-
Please post the results of M122 and M98 P"config.g"
Also please post your homing files, bed.g, mesh.g, and your slicer start gcode. -
@phaedrux Here are the things you requested. Though I do not see a mesh.g file.
M122
M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.3 (2021-06-15 21:44:54) running on Duet WiFi 1.02 or later Board ID: 08DGM-917DA-G4MS8-6JTD2-3SJ6T-T9VB8 Used output buffers: 3 of 24 (11 max) === RTOS === Static ram: 23876 Dynamic ram: 75240 of which 12 recycled Never used RAM 15288, free system stack 184 words Tasks: NETWORK(ready,10.2%,251) HEAT(delaying,0.0%,314) Move(notifyWait,0.1%,364) MAIN(running,86.3%,461) IDLE(ready,3.4%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:00:27 ago, cause: power up Last software reset at 2022-02-19 20:13, reason: User, GCodes spinning, available RAM 15288, slot 2 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 Step timer max interval 0 MCU temperature: min 17.4, current 20.0, max 20.3 Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 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 Driver 6: position 0 Driver 7: position 0 Driver 8: position 0 Driver 9: position 0 Driver 10: position 0 Driver 11: position 0 Date/time: 2022-02-20 17:19:19 Cache data hit count 1031252570 Slowest loop: 4.70ms; fastest: 0.17ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 1.5ms, write time 0.0ms, 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: 183.36ms; fastest: 0.00ms Responder states: HTTP(2) HTTP(2) 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.22 WiFi MAC address bc:dd:c2:89:9f:4c WiFi Vcc 3.36, reset reason Turned on by main processor WiFi flash sizeSocket states: 4 2 0 0 0 0 0 0
M98 P"config.g"
HTTP is enabled on port 80 FTP is enabled on port 21 TELNET is enabled on port 23
homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 03 2021 11:42:18 GMT-0500 (Central Daylight Time) M561 M400 M913 X70 Y70 ; drop motor current to 70% M400 G91; relative positioning G1 H2 Z10 F12000 ; lift Z relative to current position G1 H1 X-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F12000 ; go back a few mm G1 H1 X-320.5 F7000 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 M913 X100 Y100 ; return current to 100% M400 M400 M913 X70 Y70 ; drop motor current to 70% M400 G91; relative positioning G1 H2 Z10 F12000 ; lift Z relative to current position G1 H1 Y-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass) G1 H2 Y5 F12000 ; go back a few mm G1 H1 Y-320.5 F7000 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 M913 X100 Y100 ; return current to 100% M400 ; BLTouch prep so we don't catch the probe pin on the edge of the bed ; M280 P7 S160 I1 ; Alarm Release and Push-Pin UP just in case it's in alarm and deployed M402 ; Retract probe just in case it's down ; Drop the bed for travel ; G91 ; Relative positioning G1 Z5 F200 H2 ; Lower bed 5mm to ensure it is below the trigger height ; Move probe into position ; G90 ; absolute positioning G1 X145 Y145 F4000 ; Move x and Y axis over to bed center so probe is on top of bed ; Set lower speeds for homing ; M566 Z5 ; Set maximum instantaneous speed changes (mm/min) (Jerk) M203 Z400 ; Set maximum speeds (mm/min) M201 Z100 ; Set maximum accelerations (mm/s^2) ; Probe the bed ; M558 A1 F350 ; Set single probing at faster feed rate G30 ; Do a single probe to home our Z axis M558 A10 F100 ; Set tripple probing at slower feed rate G30 ; Probe again to get a more accurate position ; Set normal speeds again ; M566 Z60 ; Set maximum instantaneous speed changes (mm/min) (Jerk) M203 Z600 ; Set maximum speeds (mm/min) M201 Z600 ; Set maximum accelerations (mm/s^2) ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z3 F100 ; lift Z relative to current position ;G90 ; absolute positioning
Bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 03 2021 11:42:17 GMT-0500 (Central Daylight Time) M561 ; clear any bed transform G29 ; probe the bed and enable compensation
Start G-code
M107 ;start with the fan off G28 ;auto home M109 S235; G1 X0 Y20 Z0.2 F3000 ; get ready to prime G92 E0 ; reset extrusion distance G1 Z1.0 F3000 ; move z up little to prevent scratching of surface G1 X2 Y20 Z0.3 F5000.0 ; move to start-line position G1 X5 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line G1 X5 Y200.0 Z0.3 F5000.0 ; move to side a little G1 X5 Y20 Z0.3 F1500.0 E30 ; draw 2nd line ; G1 E27 F3000 ; retract filament 3mm G92 E0 ; reset extruder ; done purging extruder G1 Z1.0 F3000 ; move z up little to prevent scratching of surface G29 S1;
-
A couple things to check.
Make sure your axis directions are correct.
-X should move left, +X should move right
-Y should move to the front of the bed, +Y to the back.Double check your probe offsets keeping those directions in mind. Your current offset says the probe is 2mm to the left of the nozzle and 38mm in front of it. Is that right?
Also check the probe trigger height using G30 S-1 at different points on the bed. Ideally it should be consistently the same everywhere on the bed. See if you notice it changing at different points. This could explain incorrect positioning.
If those are all correct, please do a first layer test print once with the mesh enabled and once with it disabled using a test file like this.
bedlevel_nozzle_0.4_200x200-0.3-0.8.stl
@thepfeiffenator said in Mesh Compensation not working (left side higher than right):
bed compensation in use: none
Your M122 shows that the mesh isn't enabled, but based on your gcode it would only be enabled at the start of the print, which is fine. But you can send M122 during a print to make sure it shows "bed compensation in use: mesh"
-
So I probed in 5 points around the bed via G30 S-1.
Center: Stopped at height 1.253 mm
Rear Left: Stopped at height 1.072 mm
Rear Right: Stopped at height 0.885 mm
Front Right: Stopped at height 1.138 mm
Front Left: Stopped at height 1.065 mm
So they are definitely different. I use a BL Touch, do you think I have a defective one? Or do you know what might cause my deviations?
-
@phaedrux So I did some more investigating and found that my bed is level to my x axis, but here is my new height map, which causes it to compensate incorrectly by moving the bed up when it is in fact level on either side.
-
@thepfeiffenator said in Mesh Compensation not working (left side higher than right):
So I probed in 5 points around the bed via G30 S-1.
Center: Stopped at height 1.253 mm
Rear Left: Stopped at height 1.072 mm
Rear Right: Stopped at height 0.885 mm
Front Right: Stopped at height 1.138 mm
Front Left: Stopped at height 1.065 mm
So they are definitely different. I use a BL Touch, do you think I have a defective one? Or do you know what might cause my deviations?
Are you thinking they should all be similar? They would only be similar if all the points you probed were at the same Z height.
Frederick
-
Perhaps I should have been more specific on the use of G30 S-1.
You should use this method as described for setting the offset in G31.
Resetting Z0 using G92 Z0 at each location you wish to test at before sending G30 S-1
-
@phaedrux Oh yeah, the trigger height is correct in the center of the bed, but on the sides it is not.
-
There could be something out of square with the frame, or the printhead is tilting a bit.
If you do that G92 Z0 G30 S-1 test in a row along the bed moving towards where it gets out does it slowly increase as it goes?