Ender 3 RRF v1.1 setting up BLtouch
-
@re_tour G91 set's RRF in realtive coordinates mode so you only need to do that once AFAIK. G90 sets it back to absolute coordinates mode.
So it's like:
G91 G1 z-5 G1 z-.2 G1 Z-.1 ... until you're happy then look at the Z offset in DWC (or some gcode command I don't remember right now) and remember it G90
Take it down until the nozzle touches the paper and you can feel the friction some when moving the paper. You may need to correct this when printing later but then you can baby step it up and down until it looks fine.
I think you do almost the same in Marlin and Klipper. Maybe there's some automated method you can use in RRF but I don't know about it.
-
@gixxerfast Okay, I have a new problem: despite my Z being at 0, there's still about 50-60mm space between the bed and the extruder tip.
-
@re_tour Can you take a screen dump of DWC Dashboard.
and also add your latest config.g and homez.g
-
@gixxerfast
Dashboard:
config.g:
; Configuration file for SKR-RFF-E3-v1.1 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.1-LPC-STM32+2 on Tue Dec 28 2021 01:07:55 GMT+0100 ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Ender3" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes backwards using TMC2209 driver timings M569 P1 S0 ; physical drive 1 goes backwards using TMC2209 driver timings M569 P2 S1 ; physical drive 2 goes forwards using TMC2209 driver timings M569 P3 S1 ; physical drive 3 goes forwards using TMC2209 driver timings 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 E93.00 ; set steps per mm M566 X1200.00 Y1200.00 Z60.00 E360.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z1800.00 E6000.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z100.00 E5000.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E1000 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 X235 Y235 Z260 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 S1 P"zstop" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop ; Z-Probe M950 S0 C"servo0" ; create servo pin 0 for BLTouch M558 P9 C"^probe" H5 F300:120 A3 T6000 ; set Z probe type to bltouch and the dive height + speeds,the F300:120 first speed 300 second 120 G31 P500 X117.5 Y117.5 Z0 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bed" T0 ; create bed heater output on bed and map it to sensor 0 M307 H0 B0 R0.365 C296.6 D3.97 S1.00 V24.0 ; 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 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4092 ; 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 R2.845 C121.4:119.4 D5.71 S1.00 V24.0 ; disable bang-bang mode for heater and set PWM limit M143 H1 S245 ; set temperature limit for heater 1 to 245C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 C"Part Cooling Fan" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 C"Hotend Fan" S0.01 H1 T45 ; set fan 1 name and 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 M918 P1 E4 E1000000
homez.g:
; homez.g ; called to home the Z axis ; do nothing if XY is not homed yet if !move.axes[0].homed || !move.axes[1].homed echo "XY are not homed yet. Aborting" abort ;end if G91 G1 H2 Z5 F6000 G90 G1 X130 Y160 F6000 G30 K0 Z-99999 ; Probe the Z pin at the back G1 Z10 F9000
-
@re_tour
OK, a few things. I assume you want to replace any old z endstop switch with the probe. Then you need to remove this:M574 Z1 S1 P"zstop" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop
Also I don think you want to set your Z offset in the G32 to 0 (zero). It should reflect the distance between the probe (when triggered) and the nozzle.
-
@gixxerfast
I took out this line from config.g:M574 Z1 S1 P"zstop" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop
So to calibrate offset I need to extend the probe with the M280 P0 S10 and watch when the probe touches the bed and then write the value of Z into config?
Sorry, this offset thing is a bit unclear to me. -
@re_tour No, you home z and then you try to lower it to zero. If it's not at zero. you lower it some more manually until "the paper thing". Then you see what actual offset yo have by looking at the z coordinate in, for example, DWC. Then adjust your z offset value in G31 using this value.
Be careful here, it's the other way around the way many thinks of this. A large offset will try to move the nozzle closer to the bed and a small will keep it away.
Anyhow, I'm not very good at this so there is probably a write up about this in the duet documentation.
-
@gixxerfast Gotcha.
Okay so now I set the offset in config.g to this:
G31 P500 X117.5 Y117.5 Z5 ; set Z probe trigger value, offset and trigger height
Then I started lowering the nozzle to do the paper scraper test thingy. Right now I think that the height of the nozzle is optimal. On the dashboard the value of Z at this time is 1.45
So now I have to add that or subtract that from the offset which I wrote in config.g?
-
@re_tour Try adding it (I always mess upp here). Just be close to the breaker
-
@re_tour Then again my offset is Z4.370 and I think my probe is as close to the bed as it could really be
-
@gixxerfast Stupid question I know, but how will I know that my offset is correct?
-
@re_tour Same way, just lower slowly to zero and see if your paper feels right.
Then when printing you will probably see that you're to close and you will want to lift it a bit. But all do it differently I think. I just go for a lot of paper friction, it's easier to adjust every corner.
Also, on the Ender. Don't put too much work into this cause you will do the bed screws anyway with the paper method I guess. Then when it's fairly flat (ish) you'll do a bed mesh.
-
@gixxerfast Wait, so if I set up the offset correctly, how do I get from here to be able to do the bed mesh?
-
@re_tour
You have something like this in your config.g:;mesh_min: 30, 15 ;mesh_max: 190, 220 ;probe_count: 5 M557 X30:190 Y15:220 P5 ; define mesh grid
Then you have a file called mesh.g in your /sys directory with something like this in it:
G29 S2 ; move to the center of the mesh with the PROBE (mind affset in Y is 25 above noozle) G90 var xoffset = 37.1 var yoffset = 9.25 var xpos = {110 - var.xoffset} var ypos = {117.5 - var.yoffset} G1 X{var.xpos} Y{var.ypos} Z15 F6000 echo "Setting Probe Offset now" G30 K0 G1 Z15 F3000 G29 S0
The offsets of course depends on where you have your probe mounted.
-
@re_tour Home all, then mesh.
G28
G29or
G28
G32 ; call bed.gIn bedg.g I have:
; bed.g ; called to perform automatic bed compensation via G32 M561 ; clear any bed transform if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed G28 M290 R0 S0 ; clear baby stepping G29 S1 ; load heightmap.csv if result > 1 ; if no heightmap.csv, make one G29 S0
-
@gixxerfast
Okay, looks like subtraction is the way to go when calibrating offset
Offset is now correct and set to Z3.55.the part you mentioned in config.g looks like this for me:
; Z-Probe M950 S0 C"servo0" ; create servo pin 0 for BLTouch M558 P9 C"^probe" H5 F300:120 A3 T6000 ; set Z probe type to bltouch and the dive height + speeds,the F300:120 first speed 300 second 120 G31 P500 X117.5 Y117.5 Z3.55 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid
But, I don't have a mesh.g in my sys. Do I have to make that for myself or it will autamatically be generated once I run the process?
-
@stephen6309 I have this in bed.g:
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.1-LPC-STM32+2 on Tue Dec 28 2021 01:07:55 GMT+0100 (közép-európai téli idő) M561 ; clear any bed transform G29 ; probe the bed and enable compensation
-
@re_tour Great!! I always get that the other way around.
If you're happy with your mesh grid go for it
You will have to make the file yourself.
-
@re_tour G32 and bed.g is for gantry/bed leveling. G29 and mesh.g is for the bed mesh.
In earlier vesrions of RRF I think mesh-g didn't exist so therefore a lot of people still uses bed.g with the G32.
Anyhow, the Ender can't level gantry or bed automatically since it only has one z-motor
-
@gixxerfast Oh right, so I can only use the bed mesh anyways.
Okay so I modified the config.g a little bit:
M557 X30:190 Y30:190 P5 ; define mesh grid
and copied your mesh.g, in which I presume I'll have to measure the distances with a ruler or something?