You are of course right and I should really rather do it that way...
I'll keep it as is for the sake of consistency with my Marlin machines where I don't trust myself to always remember to apply M290 again after clearing the eeprom
Cheers!
You are of course right and I should really rather do it that way...
I'll keep it as is for the sake of consistency with my Marlin machines where I don't trust myself to always remember to apply M290 again after clearing the eeprom
Cheers!
About the 0 trigger height:
That isn't really true, the correct value would be 0.84
I know its a bit weird, but since the bed isn't ideal, I actually prefer the Duet to think that the nozzle is basically on the bed when in reality it is floating ~1mm over it so I never run the risk of damaging the sheet should I command some move and forget to raise Z first.
The offset is then compensated for in the slicer...
Thank you so much!
I feel really stupid now...
The Dive height was exactly what I was looking for - setting it to a generous 10 makes the printer behave exactly like it should/did before.
Somehow the zero got lost during copy'n pasting between old and new config.g - guess even BeyondCompare can't help with bad eyesight
Again, many thanks!
That would be 10.000 as commanded via G1 H2 Z10 F6000.
Mesh grid is defined as M557 X00:200 Y10:200 S20 so I assume that the first probing point would be X:0, Y:10, Z:1 and its quite possible that my bed is angled/warped enough to trigger the probe before it reaches there.
This is why I am looking for a solution where the probe would stay at a safe distance to the bed while traveling between mesh points.
It's an inductive Prusa PINDA knock-off.
The Z position at that point is reportet as 1.000 and visually correct.
M114
X:150.000 Y:110.000 Z:1.000 E:0.000 E0:-0.0 Count 12000 8800 400 Machine 150.000 110.000 1.000 Bed comp 0.000
I tried moving the printhead up with G1 H2 Z10 F6000 before running G29 and the printer moves towards XY(Z?) 0 which I guess would be the first probing point for the mesh before reporting ...
Error: Probe already triggered before probing move started
...and halting at:
M114
X:42.000 Y:8.000 Z:1.000 E:0.000 E0:-0.0 Count 3360 640 400 Machine 42.000 8.000 1.000 Bed comp 0.000
What I think I am missing is something like Marlin's Z_CLEARANCE_BETWEEN_PROBES offset by which the probe/printhead would raise itself between mesh points - I sadly can't see or remember how or why this worked with my old .g config files in the 2.x version before
Ahoi,
I just upgraded from 2.x to 3.3 and now I am wondering how to setup a Z lift for the G29 command.
Somehow this worked differently before, I remember the printhead diving down for each probe point, but now I get a 'Probe already triggered at start of probing move' error which makes sense since G29 requires the axis to be homed and so the probe is already triggered after finding Z.
I'm sure I missed something important when diff'ing my old config files against the new ones from the config tool but I can't figure out what =/
This is my current 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.1 on Sun Aug 29 2021 15:53:02 GMT+0200 (Central European Summer Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Ender 3" ; set printer name
; Network
M552 S1 ; enable network
M587 ; Configure access point. You can delete this line once connected
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
; Drives
M569 P0 S0 ; physical drive 0 goes backwards
M569 P1 S0 ; physical drive 1 goes backwards
M569 P2 S1 ; physical drive 2 goes forwards
M569 P3 S0 ; physical drive 3 goes backwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M591 P2 C"e0_stop" S1 ; filament monitor connected to E0_stop
M92 X80.00 Y80.00 Z400.00 E140.00 ; set steps per mm
M566 X1200.00 Y1200.00 Z24.00 E300.00 ; Set maximum instantaneous speed changes (mm/min)
M203 X30000.00 Y30000.00 Z300.00 E3600.00 ; Set maximum speeds (mm/min)
M201 X800.00 Y800.00 Z100.00 E5000.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 Z-1 S1 ; set axis minima
M208 X220 Y220 Z250 S0 ; set axis maxima
; Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for high end on Z
; Z-Probe
M558 P5 C"^zprobe.in" H1 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds
G31 P500 X-42 Y2 Z0.0 ; set Z probe trigger value, offset and trigger height
M557 X00:200 Y10:200 S20 ; Define mesh grid
; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 C0 R4700 ; 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 S70 ; set temperature limit for heater 0 to 120C
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 C0 R4700 ; 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 S260 ; 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 S0.3 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
M915 E S10 F0 R1 ; stall detection for extruder (S-value == offset, F1 == filtered, R1 == log - don't pause)
M302 P1 ; allow cold extrusion
Cheers!
I replaced the spring steel bed plate with a thicker one and the issue disappeared!
Thank you so much for your suggestions!
I moved the Z homing point to the bed's center and set the trigger height.
Sadly, it didn't make any difference (aside from moving Z down by the probe's measured offset) .
Curious - why wouldn't the resulting heightmap be accurate without that calibration?
Cheers
Thanks a lot for the explaination of G32 - now I get it.
My inductive probe is a clone of what Prusa calls the PINDA... I think. Using it on this printer and an Ender 2 with Marlin - it seems to give good repeatability (if I keep an eye on temperature):
I have been using G29 to probe a new mesh over the last dozen test prints - before and after:
0_1563564496740_heightmap (1).csv
0_1563564536487_heightmap (2).csv
I also set M557 X20:200 Y30:190 S10 to increase resolution but another test print shows the same falloff:
I don't think it's a density issue since I tried with half the grid spacing and the amount of offset visible in the print doesn't match the probe points anyway.
M122 tells me that mesh compensation is in use and I can see Z adjusting when I command X or Y moves.
I tried to print your test pattern (thanks for taking the time so create/select one that matches my build plate dimensions!) and well... :
It looks better than it is - since I tuned my Z-offset in the middle of the bed, some of the lines are partly floating / I could see them "fall" from the nozzle onto the bed:
Since my Z-offset makes no sense (I have to step the nozzle down to -0.6 till it catches a piece of paper but setting that offset in the slicer makes it damage the bed - about -0.26 seems to work) and bed compensation is not working I am afraid to bring the nozze down further... just bought a new spring steel plate and managed to put on a bubble-free PEI sheet
My slicer's (Prusa Slicer 2) start GCode:
*M203 X30000.00 Y30000.00 Z300.00 E1500.00 ; Set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z100.00 E5000.00 ; Set accelerations (mm/s^2)
M566 X600.00 Y600.00 Z18.00 E300.00 ; Set maximum instantaneous speed changes (mm/min)
M83;
;G32;
G28;
G29 S0; S1 to load heightmap from file / S0 for mesh update + save to file
;M376 H2;
G1 X5 Y20 Z2 F5000.0 ; move to start-line position
G1 X5 Y20 Z0.0 F5000.0 ; move to start-line position -0.25
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G92 E0 ; reset extruder
G1 X5 Y20 Z0.2 F5000.0 ; move to start-line position
G1 X5 Y133.0 Z0.2 F1500.0 E10 ; draw 1st line
;G1 E-4.08000 F3600.00000; retract
G1 X5 Y200.0 Z0.2 F6000.0 ; finish 1st line
G1 Z1.0 F3000 ; move z up little to prevent scratching of surface
G1 X20 Y180.0 Z-0.0 F9000.0 ; zig
G1 X35 Y200.0 Z-0.0 F9000.0 ; zag
;G1 X5 Y200.0 Z-0.0 F1500.0 E15 ;
G92 E0 ; reset extruder*
M122 output:
*=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 2.03beta2 running on Duet WiFi 1.02 or later
Board ID: 08DGM-9T6BU-FG3SN-6J1DL-3SJ6M-18WVG
Used output buffers: 1 of 20 (17 max)
=== RTOS ===
Static ram: 25532
Dynamic ram: 91736 of which 0 recycled
Exception stack ram used: 396
Never used ram: 13408
Tasks: NETWORK(ready,544) HEAT(blocked,1236) MAIN(running,3816) IDLE(ready,196)
Owned mutexes:
=== Platform ===
Last reset 00:49:09 ago, cause: software
Last software reset at 2019-07-19 19:12, reason: User, spinning module GCodes, available RAM 13428 bytes (slot 3)
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
Error status: 0
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest block write time: 0.0ms, max retries 0
MCU temperature: min 24.6, current 24.8, max 24.9
Supply voltage: min 24.2, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
Driver 0: standstill, SG min/max not available
Driver 1: standstill, SG min/max not available
Driver 2: standstill, SG min/max not available
Driver 3: standstill, SG min/max not available
Driver 4: standstill, SG min/max not available
Date/time: 2019-07-19 20:01:11
Cache data hit count 4294967295
Slowest loop: 1.11ms; fastest: 0.08ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0
=== Move ===
Hiccups: 0, StepErrors: 0, LaErrors: 0, FreeDm: 160, MinFreeDm: 160, MaxWait: 0ms, Underruns: 0, 0
Scheduled moves: 222, completed moves: 222
Bed compensation in use: mesh
Bed probe heights: 0.000 0.000 0.000 0.000 0.000
=== Heat ===
Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
=== GCodes ===
Segments left: 0
Stack records: 2 allocated, 1 in use
Movement lock held by null
http is idle in state(s) 0 0
telnet is idle in state(s) 0
file is idle in state(s) 0
serial is idle in state(s) 0
aux is idle in state(s) 0
daemon is idle in state(s) 0
queue is idle in state(s) 0
autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 180.81ms; fastest: 0.08ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
HTTP sessions: 1 of 8
Homing files:
0_1563559220212_homeall.g
0_1563559227657_homez.g
PS: Sorry for any typos, I won't be able to edit them since the forum thinks my posts are spam
(Ender 3 - Duet Wifi - 2.03beta2 (2019-02-16b1) / Wifi 2.12)
Hi,
I am experiencing a small issue with ABl, first layer adhesion seems to taper off radially from the bed center and this doesn't match with my mesh at all:
I am using G29 S0; in my slicer's start code and tried adding G32 with 5 probe points before but with the same result (I still don't really understand if G32 is another implementation of G29 or just a 'wrapper' for the bed.g file).
Resulting first layer:
... and final Print:
Mesh looks consistent over multiple G29 runs and I don't think the bed's PEI surface is to blame / non uniform...
Any ideas are much apreciated - many thanks in advance!
Cheers
@dc42 Thank you for that amazingly quick answer - awesome support
I think this would be a really nice future security feature, I don't feel comfortable messing with adjusting motor current on the fly, but will keep that suggestion in mind - thanks a lot!
Cheers
Hi,
I just witnessed my probe failing (i think...not exactly sure what happened there) and the nozzle crashing while Z-homing - this got me thinking...:
Is it possible to use the TMC driver's feedback as a backup for a case such as this?
Cheers