Configuring Mesg bed leveling
-
M115 FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.4.4 ELECTRONICS: Duet Ethernet 1.02 or later FIRMWARE_DATE: 2022-10-20 16:17:41
I am running the latest firmware but I can't seem to get the Mesh bed leveling to work. It keeps starting at X = 0 despite the following M557
M557 X40:235 Y0:190 S10 whole config.g ; Configuration file for Duet WiFi (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun Jul 23 2023 20:00:34 GMT+0100 (British Summer Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"prusa" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; 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 X100.00 Y100.00 Z400.00 E161.3 ; set steps per mm M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z1000.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y20.00 Z400.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 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 X250 Y190 Z210 S0 ; set axis maxima ; Endstops M574 X1 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M558 P1 C"zprobe.in" H10 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X230 Y9 Z4.9 ; set Z probe trigger value, offset and trigger height M557 X40:235 Y0:190 S10 ; 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 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M307 H0 R0.268 K0.283:0.000 D13.25 E1.35 S1.00 B0 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 B4138 ; 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 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; 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 T0
I need it to start at X 40because at X=0 the ir height sensor doesn't line up with the bed. It over hangs slightly. hence it doesn't trigger and smashes into the bed.
so how am i supposed to set this up? I dont have an override config.g file
-
@ageis
I get these message in the console.Doesn't make sense to me because x =40 and y100 is perfectly valid coordinate.
G29
Warning: Skipping grid point X=40.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=50.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=60.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=70.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=80.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=90.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=100.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=110.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=120.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=130.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=140.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=150.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=160.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=170.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=180.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=190.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=200.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=210.0, Y=100.0 because Z probe cannot reach it
Warning: Skipping grid point X=220.0, Y=100.0 because Z probe cannot reach it -
In your G31 you are declaring that the probe is offset from the nozzle by 230 on the X axis.
This seems highly unlikely.
Frederick
-
@fcwilt
ok i hsave fixed that. By measuring the distence between the nozzle tip and the ir sensor board. I have corrected the configuration; Configuration file for Duet WiFi (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun Jul 23 2023 20:00:34 GMT+0100 (British Summer Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"prusa" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; 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 X100.00 Y100.00 Z400.00 E161.3 ; set steps per mm M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z1000.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y20.00 Z400.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 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 X250 Y190 Z210 S0 ; set axis maxima ; Endstops M574 X1 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M558 P1 C"zprobe.in" H10 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X22 Y10 Z4.8 ; set Z probe trigger value, offset and trigger height M557 X40:235 Y0:190 S10 ; 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 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M307 H0 R0.268 K0.283:0.000 D13.25 E1.35 S1.00 B0 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 B4138 ; 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 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; 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 T0
I re aligned the x axis to ensure it runs parallel. By moving it to the very top then forcing to go a little further.
I run a successful bed probe session but the resultant height map causes the nozzle to be too low on the left edge of the bed then too high when you go towards the middle of the bed.
To ensure proper setup I clear any mesh bed leveling using M561 on the first line of the gcode file. Then it sets temperate for the bed and the hotend. then home all axis thenit loads the height map using G29 S1
This has been driving me insane and makes me want to give up on 3d printing.
-
What style of printer is this?
Have you manually leveled the bed first? -
@Phaedrux
I have tried to manually level it. The prusa I3 style of printers don't have tumb screws underneath the bed you adjust like the A8 for example.It has a center frame that slots into the Y axis then secured using nuts on either side of the frame so it stands upright. That is a pain to adjust, you need three hands, one to lift the printer in the air, another to hold the the y axis in the position you require then another to tighten the nut in place. See the picture at the bottom, it has two rounded out slots, thats where the Y axis slots into.
I don't understand why the bed is tilted in the y direction though. I am getting the feeling I didn't build it properly in the first place. And the mesh bed compensation isn't able to fix my mistakes because it's just too much of a cock up for the algorithum to average out. Am assuming thats what it basically does.
https://help.prusa3d.com/wp-content/uploads/prusuki/prusuki-images/SvmklVUoQTkNqTZR.jpg
-
@ageis
Does anyone not have any idea why am experiencing such difficulty? I have tried leveling the bed manually but it appears to not make a difference.I have also increased the number of probe points. That hasn't helped. The spring metal sheet appears to have high spots and low spots. Because one side of my print is so low there isn't any filament extruded. But the rest is ok.
-
It may be that your probe is tilted and therefore giving different trigger results at different points. You can test for this by measuring the trigger height at different points on the bed.
Set Z0 by touching the nozzle to the bed manually and sending G92 Z0. Then raising the Z by 10mm or so, and doing a G30 S-1 to measure the trigger height. Record the result and move to another point on the bed and re-measure.
-
@Phaedrux
Thanks alot. I didn't know a tilted probe will cause such issues. I thought as long as it screwed in tight it will be ok. I have changed the mount slightly to give it a bigger surface area to mount on. Therefore pushing it towards the left.It does work much better but I still get spots where the layer height is lower. It goes so low there isn't any filament coming out. I can see that it goes lower.
Why is this?
-
@Phaedrux said in Configuring Mesg bed leveling:
Set Z0 by touching the nozzle to the bed manually and sending G92 Z0. Then raising the Z by 10mm or so, and doing a G30 S-1 to measure the trigger height. Record the result and move to another point on the bed and re-measure.
Did you try this to find out if the trigger height is staying constant or if it's changing in XY?
-
@Phaedrux
I didn't try it before because I knew the probe was tilted. But I have tried it now.I usually home my Z axis roughly in the middle of the bed. There it reads 10.745mm. I then did another reading to the left of it and to the right of it.
The one on the left gave me a reading of 10.373. The one on the right gave me 9.980.So there quite alot of deviation. But one thing I did notice was, the probe appears to trigger at two different heights. I start at an aribitary height then scroll down it triggers the led comes on. The nozzle is at least 10mm away from the bed. Scrolling further down the led goes off then it eventually comes on again. This time it's looks to be only a few mm away from the bed. Is this normal or is there something wrong?
So does this mean my attempt at leveling the bed manually leaves more to be desired?
My excuse is the prusa i3 is fiddly to manually level. On the anet and ultimaker you have bed screws you can adjust. I also blame it on the uneven floor am working on.
-
What kind of probe is this exactly?
-
It's the duet ir sensor. Has anyone used it successfully with pei spring steel sheet?
Can you recommend a probe that is known to work with the spring metal steel sheets.
My printer is driving me absolutely crazy. It clogs up with evey print because the layer height isn't right. I'll just had a print job, do nothing for most of the print job because it is clogged.
-
@ageis said in Configuring Mesh bed leveling:
Can you recommend a probe that is known to work with the spring metal steel sheets.
It depends on the how the sheet is held to the bed.
I have one printer that has a large piece of magnetic material that covers the entire bed.
I have another which has a number of typical "rare-earth" magnets, arranged in a pattern, embedded in the bed itself.
They both work fine with inductive sensors (at least the ones I use) .
But the magnets embedded in bed create one bogus reading at each magnet location when creating the height map.
While it may not be sensible I edit the height map and locate the bogus values that are surrounded by seemingly correct values and make the bogus value "blend" with the surrounding values.
And there are "BLTouch" type probes that work fine and don't appear to be affected by the magnets.
Frederick
-
It's similar to your second printer. It uses magnets embedded into the bed itself. It also has screws at the top which match holes on the steel sheet
What type of inductive sensor do you use?
Npn or pnp?Would the prusa pinda probe still work?
If I use the PINDA probe I then don't need to find a different mounting solution.
-
@ageis said in Configuring Mesg bed leveling:
; Z-Probe
M558 P1For the IR probe you should probably change the P1 to P8.
If you're still having problems after that try putting a piece of plain white paper on the bed surface and try again. Sometimes the reflectivity of the bed surface can have an impact, like white logos or text. Also make sure there is no bright sunlight or other source of IR light that could be interfering.
-
@ageis said in Configuring Mesg bed leveling:
It's similar to your second printer. It uses magnets embedded into the bed itself. It also has screws at the top which match holes on the steel sheet
What type of inductive sensor do you use?
Npn or pnp?Would the prusa pinda probe still work?
If I use the PINDA probe I then don't need to find a different mounting solution.
I use NPN NC (normally closed), though I have tested others (NPN NO, PNP NC, PNP NO). I have also tested capacitive units but never found a fast one.
I think it is important to have a sensor with a switching frequency specification that is fairly high, as long as you don't compromise on other important specs.
This site has a good selection and good specs - check the range of switching frequencies - from 100 Hz to 7000 Hz.
I think the PINDA would be a suitable choice although I don't recall testing one.
Frederick