Hang printer - Print stops with mesh leveling
-
@shinomori Tobben said this on the hangprinter discord:
"
The failing test is here: https://github.com/Duet3D/RepRapFirmware/blob/3.4-dev/src/GCodes/GCodes4.cpp#L644It looks like Hangprinterkinematics.h/cpp don't implement the function IsReachable()
The very old RRF version I had on my previous prototype had that function implemented. But is seems it has fallen though the cracks in my latest RRF work. Making a pull request now"
He sent me this fw file. Where it is working and print continues with mesh enabled. Duet3Firmware_MB6HC.bin
Thanks for help guys .
How would I know when those fixes are in the main branch? I'm not really git fluent yet.
-
@shinomori said in Hang printer - Print stops with mesh leveling:
How would I know when those fixes are in the main branch? I'm not really git fluent yet.
If the pull request makes it into 3.4 it would be in the release notes. there may also be beta versions with it to test.
-
@shinomori unfortunately the PR referenced has a lot of other changes for Hangprinter that are very invasive and will need substantial refactoring before I can accept them. However, it may be possible to implement the change that fix this particular issue independently.
-
@dc42 I understand. The current fw that I was sent has the mesh leveling working so I am ok for now. Just want to keep and eye out for whenever the official fw has the fix so i can jump to that one or avoid it if it is missing. Thanks!
-
@shinomori it appears that the "fix" was just a hack to disable the checking of probe point coordinates. So we still don't know why it was failing.
Does the height map file produced by running G29 to probe the bed depend on which RRF you are running (i.e the one that fails, or the one with the "fix" in it)? If so, please attach both height map files.
Also, please post your G31 settings. The config.g file you posted doesn't include a G31 command. Perhaps the G31 command is in the config-override.g file?
-
@dc42
On the current version of RRF Running G29 resulted in nothing but errors. I haven't gotten a mesh since updating from 3.0 to 3.3. The .bin Tobben sent allowed me to get a mesh and run a print using G29 S1 in the gcode. I am not certain any compensation actually happened as it was a small print, but it finished the print and on 3.0 it wouldn't even finish the first line.G31 was here:
; Z-Probe
M558 P0 H5 F120 T6000; disable Z probe but set dive height, probe speed and travel speed
G31 P500 X0 Y0 Z0
;M557 R100 S50
M557 X-100:100 Y-100:100 S100 ; define mesh gridI would prefer to use the default FW, but this one is working at the moment. Tobben took some time out of his vacation to get me that fix so I really appreciate it and not surprised it was just a hacky fix.
I don't have a comparison from the old heightmap on 3.0 since the plywood we are trying to print on has warped and shifted since capturing the older one.(also I think some of my settings were wrong so it was capturing bad numbers)
-
@shinomori ok, I won't be able to do a proper fix for this issue then. I you try to probe the whole reachable circular area, it is likely to try to probe unreachable points too.
-
@dc42 I tried doing a mock delta config. With everything else the same. The behavior there was if the point was out of the build area it threw this same error, but it probed all within the area. With the hangprinter config. Even the small -100 too 100 probe had all errors. even at 0,0. I even tried telling it the print area was -10000 to 10000 on all axis(including u) and it still didn't like it.
This was the config that was working when I was last at the printer I could try with stock RR3.3 *.bin again with this one. This is based on Tobben's v4 with some changes to match my setup:
; Communication and general
G21 ; Work in millimetres
G91 ; Send relative coordinates...
M83 ; ...but relative extruder moves
M550 P"duet3" ; set printer name; Kinematics
;G4 S1 ; Wait 1 second because expansion boards might not be ready to receive CAN signal yet.
;M584 X43.0 Y42.0 Z41.0 U40.0 P4 ; map ABCD-axes to CAN addresses, and set four visible axes. Please excuse that ABCD motors are called XYZU here.
;M584 E0:1:2:3:4:5 ; Regard all built in stepper drivers as extruder drives
M669 K6 ; "This is a Hangprinter"
M669 P2000.0 ; Printable radius (unused by Hangprinters for now)
M669 S200 ; Segments per second; Output of auto calibration script for Hangprinter
M669 A0.0:-2265.0:0.0 B1725.0:1100.0:0.0 C-1740.0:1120.0:0.0 D0.0:0.0:2666.0
M666 Q0.035619 R55:55:55:55
; Explanation:
; ; M669 defines the positions of the anchors, expressed as X:Y:Z distances between a line's pivot points, when the machine is homed.
; ; M666 sets Q=spool buildup, R=spool radii (incl buildup, when homed)M208 Z1500.00 ; set maximum Z somewhere below to D anchor. See M669 ... D<number>
M208 S1 Z-10.0 ; set minimum Z; The following values must also be in the auto calibration script for Hangprinter (if you plan to use it)
M666 U1:1:1:1; Mechanical advantages on ABCD
M666 O1:1:1:1 ; Number of lines per spool
M666 L10:10:10:10 ; Motor gear teeth of ABCD axes
M666 H100100:100 ; Spool gear teeth of ABCD axes; Uncomment M564 S0 if you don't want G0/G1 moves to be be limited to a software defined volume
M564 S0; Drives
M666 J200:200:200:200 ; Full steps per ABCD motor revolution (match with ODrives...)M569 P0 S0 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes forwards
M569 P3 S1 ; Drive 3 goes forwards
M569 P4 S0 ; Drive 4 goes forwards
;M569 P5 S1 ; Drive 5 goes forwards
;M569 P43.0 S1 ; Drive 43.0 (A) goes forwards
;M569 P42.0 S1 ; Drive 42.0 (B) goes forwards
;M569 P41.0 S0 ; Drive 41.0 (C) goes backwards
;M569 P40.0 S0 ; Drive 40.0 (D) goes backwards
M584 X0.0 Y0.1 Z0.2 E0.3 U0.4 ; set drive mapping
;M350 X16 Y16 Z16 E16 U16 I1 ; configure microstepping with interpolation
M92 X92.5 Y92.5 Z92.5 U91.00 ; set steps per mm; Speed
M201 X1000 Y1000 Z1000 E2500 ; Accelerations (mm/s^2)
M203 X6000 Y6000 Z6000 E600 ; Maximum speeds (mm/min)
M566 X900 Y900 Z900 E900 ; Maximum instant speed changes mm/minute; Currents
M906 X1000 Y1000 Z1000 E800 U1000 I60 ; set motor currents (mA) and motor idle factor in per cent; Endstops
M574 X0 Y0 Z0 ; set endstop configuration (no endstops); Z-Probe
M558 P0 H5 F120 T6000; disable Z probe but set dive height, probe speed and travel speed
G31 P500 X0 Y0 Z0
;M557 R100 S50
M557 X-100:100 Y-100:100 S100 ; define mesh grid; Thermistors and heaters
M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1
M950 H0 C"out1" T0 ; create nozzle heater output on out1 and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for nozzle heater and set PWM limit
;M307 H0 A1271.9 C432.5 D8.2 V24 ; Set heater parameters (for Super Volcano 80W. You probably want to tune this yourself with M303.)
M143 H0 S280 ; set temp limit for nozzle heater to 280C
M570 S60 ; Hot end may be a little slow to heat up so allow it 180 seconds; Fans
M950 F0 C"out7" Q500
M106 P0 S0 H0 ; set fan 0 value. Thermostatic control is turned off
;M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
;M106 P1 S0 H0 ; set fan 1 value. Thermostatic control is turned off; Find "temp1" and "out4" pins in the wiring diagram:
; https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Wiring_Diagram; Tool definitions
M563 P0 S"Extruder" D0.3 H0 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; Miscellaneous
M92 E396 ; Set extruder steps per mm
;M911 S10 R11 P"M913 X0 Y0 Z0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
M501 ; load saved parameters from non-volatile memory
T0 ; Select tool 0 -
@shinomori said in Hang printer - Print stops with mesh leveling:
M208 Z1500.00 ; set maximum Z somewhere below to D anchor. See M669 ... D<number>
M208 S1 Z-10.0 ; set minimum ZTry this:
M208 X-200:200 Y-200:200 Z-10:1500
Feel free to replace 200 with more appropriate limits. I am assuming that X0 Y0 is roughly the centre of the bed.
-
@dc42 Running DuetPi from a few weeks ago.
Stock Duet3Firmware_MB6HC.bin
m115
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.3 ELECTRONICS: Duet 3 MB6HC v0.6 or 1.0 FIRMWARE_DATE: 2021-06-15 21:45:56Above config.g with this change:
;M208 Z1500.00 ; set maximum Z somewhere below to D anchor. See M669 ... D<number>
;M208 S1 Z-10.0 ; set minimum Z
M208 X-800:800 Y-800:800 Z-10:1500I tighten the lines with individual axis moves and position head at center then.
G92 X0 Y0 Z0 E0 U0
G90
G30 (probes successfully then moves up to z=5)
G1 Z0
G29(no motion at all just the following error codes in console)8/3/2021, 2:44:48 PM Warning: Skipping grid point X=100.0, Y=100.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=0.0, Y=100.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=-100.0, Y=100.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=-100.0, Y=0.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=0.0, Y=0.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM g29
Error: Too few points probed
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=100.0, Y=0.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=100.0, Y=-100.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=0.0, Y=-100.0 because Z probe cannot reach it
8/3/2021, 2:44:48 PM Warning: Skipping grid point X=-100.0, Y=-100.0 because Z probe cannot reach it -
@shinomori You may want to give the latest firmware and duetpi updates a try, I think G29 may be working now.
-
@shinomori please upgrade to 3.4.0rc2 and test whether G29 is now working.