Bed mesh compensation
-
My Core-XY has a bed of 330 x 330 mm driven by two independent Z leadscrews. These are set up so I can compensate the two screws to align the bed in the horizontal plane. This part works as expected. When I run the bed mesh compensation I get a topology map indicating a pretty uneven surface. So far so good. When I start a print it seems the Z screws doesn't move when the nozzle passes over the beds different zones where I know there are bumps and valleys resulting in mostly nozzle dragging too close over the surface and filament grinds as a result. I touch the coupling with my fingers to try to sense any movement but nope. Still as a brick.
Am I missing something here?
Bed.g (used for the levelling of the 2 z screws):
[[language]] ; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool on Thu Dec 14 2017 23:00:02 GMT+0100 (Västeuropa, normaltid) ; Clear any bed transform M561 ; Home all axes G28 G1 Z15 F6500 ; Move platform down to ensure probe rod don't strike anything G1 X0 Y162 ; Move to the approximate middle ; Probe the bed at 2 points G30 P0 X0 Y162 H0 Z-99999 G30 P1 X305 Y162 H0 Z-99999 S ; MOve back home fast G1 X0 Y0 Z5 F6500 G28 ; Do homing
Config.g:
[[language]] ; Configuration file for Duet WiFi (firmware version 1.17 to 1.19) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Thu Dec 14 2017 23:00:02 GMT+0100 (Västeuropa, normaltid) ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin ; Mode and axis travel M667 S1 ; Select CoreXY mode M208 X0 Y0 Z-0.6 S1 ; Set axis minima M208 X325 Y325 Z380 S0 ; Set axis maxima ; Endstops, Z-probe and bed mesh grid M574 X1 Y1 Z1 S0 ; Set active low endstops M558 P1 X0 Y0 Z1 H5 F140 T8000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds G31 P500 X0 Y0 Z2.15 ; Set Z probe trigger value, offset and trigger height ; M307 H3 A-1 C-1 D-1 ; Decomission H3 and use it as a GPIO with Z-probe servo control ; M280 P3 S2050 I1 ; Make sure Z-probe is up and out of the way -move up ; G4 P500 ; M280 P3 S2000 I1 ; Make sure Z-probe is up and out of the way -go back a little to avoid servo buzz M557 X15:323 Y15:312 S40 ; Define mesh grid ; Drives M569 P0 S0 ; Drive 0 goes backwards (X) M569 P1 S0 ; Drive 1 goes backwards (Y) M569 P2 S1 ; Drive 2 goes forwards (Z1) M569 P3 S0 ; Drive 3 goes backwards (E0) M569 P4 S1 ; Drive 4 goes forwards (Z2) M584 X0 Y1 Z2:4 E3 ; Two Z motors connected to driver outputs 2 and 4 M671 X421:-111.5 Y162:162 S5 ; leadscrews at mid left, and mid right M350 X32 Y32 Z32 E32 I1 ; Configure microstepping with interpolation M92 X160 Y160 Z800 E1946.472 ; Set steps per mm M566 X500 Y500 Z10 E1800 ; Set maximum instantaneous speed changes (mm/min) M203 X9000 Y9000 Z700 E6000 ; Set maximum speeds (mm/min) M201 X2000 Y2000 Z50 E2400 ; Set accelerations (mm/s^2) M906 X1000 Y1000 Z650 E400 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Heaters ; M304 H0 P649.2 I2.550 D1569.0 ; Use PID on bed heater using these process parameters ; M301 H1 P11.6 I0.124 D41.4 ; Use PID on hotend using these process parameters M305 P0 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 0 M143 H0 S120 ; Set temperature limit for heater 0 to 120C M305 P1 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S270 ; Set temperature limit for heater 1 to 270C ; 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 ; Network M550 PX5S ; Set machine name ;M587 S"SSID" P"passwd" ; Configure access point. You can delete this line once connected M552 S1 ; Enable network M586 P0 S1 ; Enable HTTP M586 P1 S1 ; Enable FTP M586 P2 S0 ; Disable Telnet ; Fans M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off ;M106 P1 S1 I0 F500 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off ;M106 P2 S1 I0 F500 H-1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off ; Read in bed compensation, override etc. M501 ; Read in EEPROM Parameters G29 S1 ; Read in the bed compensation table T0 ; Select default tool
-
Can you accentuate the effect by placing a piece of card on the bed, then grid probing it, then trying again? Or print a full bed test spiral. Sometimes the amount of movement is too small to see.
-
Run M122 to check that mesh bed compensation is actually in use, in case there is an incompatibility between the saved height map that you are loading and the current machine parameters.
-
Run M122 to check that mesh bed compensation is actually in use, in case there is an incompatibility between the saved height map that you are loading and the current machine parameters.
This is what I found
[[language]] === Move === MaxReps: 15, StepErrors: 0, FreeDm: 240, MinFreeDm 141, MaxWait: 4288295883ms, Underruns: 0, 0 Scheduled moves: 0, completed moves: 0 Bed compensation in use: none Bed probe heights: 0.100 0.246 0.000 0.000 0.000
No bed compensation. I think I found the cause. If I run the levelling (G32) script after startup the mesh compensation is gone because of
[[language]] ; Clear any bed transform M561 ```in the bed.g macro, right? Appending G29 S1 as the last command in the bed.g file should probably fix it.
-
Run M122 to check that mesh bed compensation is actually in use, in case there is an incompatibility between the saved height map that you are loading and the current machine parameters.
This is what I found
[[language]] === Move === MaxReps: 15, StepErrors: 0, FreeDm: 240, MinFreeDm 141, MaxWait: 4288295883ms, Underruns: 0, 0 Scheduled moves: 0, completed moves: 0 Bed compensation in use: none Bed probe heights: 0.100 0.246 0.000 0.000 0.000
No bed compensation. I think I found the cause. If I run the levelling (G32) script after startup the mesh compensation is gone because of
[[language]] ; Clear any bed transform M561 ```in the bed.g macro, right? Appending G29 S1 as the last command in the bed.g file should probably fix it.
Yes, that should fix it.
-
Yes, fixed.