RepRapFirmware 3.0beta 11 released
-
Ok, I see. Thanks!
-
I also have the homing issue G0/G1: insufficient axes homed.
But it does not happen all the time. It can home fine, then it does not. I can't find a pattern, it can happens at different stages...
I'm using a Duet2Wifi.
Here are my congif.g and all homing files:
; Configuration file for Duet WiFi ; executed by the firmware on start-up ; 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 M667 S1 ; Select CoreXY mode ; Drives M208 X-60:302 Y-100:305 Z0:320 U-1000:1000 ; Set axis limits M584 X0 Y1 Z2 E5 U6 ; Remap axes M569 P0 S1 ; Drive 0 goes forwards M569 P1 S1 ; Drive 1 goes forwards M569 P2 S0 ; Drive 2 goes reverse M569 P5 S0 ; Drive 5 goes reverse M569 P6 S1 ; Drive 6 goes forward M350 X16 Y16 Z16 E16 U16 I1 ; Configure microstepping with interpolation M92 X66.667 Y66.667 Z1417.323 E530 U140 ; Set steps per mm M203 X30000 Y30000 Z1200 E3600 U3600 ; Set maximum speeds (mm/min) M201 X1000 Y1000 Z100 E3000 U3000 ; Set accelerations (mm/s^2) M566 X900 Y900 Z60 E600 U600 ; Set maximum instantaneous speed changes (mm/min) M906 X1750 Y1750 Z1750 E750 U1250 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set motors idle timeout ; Endstops (must be defined after any M584 command) M574 X2 S1 P"xstop" ; X min active high endstop switch M574 Y2 S1 P"ystop" ; Y min active high endstop switch M574 Z1 S1 P"zstop" ; Z min active high endstop switch ; Sensors M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 R4700 ; bed temperature sensor uses 'bedtemp' pin M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8 R4700 ; E0 temperature sensor uses 'deux.e2temp' pin ; Heaters M950 H0 C"bedheat" T0 ; heater 0 uses the 'bedheat' pin and sensor 0 M143 H0 S120 ; Set maximum heater 0 temperature to 120°C (not yet supported) M307 H0 A105.6 C627.9 D1.5 B0 ; Auto-tune values for heater 0 M950 H1 C"duex.e2heat" T1 ; heater 1 uses the 'duex.e2heat' pin and sensor 1 M143 H1 S280 ; Set maximum heater 1 temperature to 280C (not yet supported) ; Fans M950 F0 C"e0heat" Q100000 ; Fan 0 connected to 'e0heat' pin, PWM at 100KHz M106 P0 C"Part cooling" ; Part cooling fan uses fan 0 M950 F1 C"e1heat" Q100000 ; Fan 1 connected to 'e1heat' pin, PWM at 100KHz M106 P1 C"Water pump" T45 H1 X0.25 ; Thermostatic fan uses fan 1, monitor heater 1, max PWM 25% (6V out of 24V) M950 F2 C"duex.fan3" Q100 ; Fan 2 connected to 'duex.fan3' pin, PWM at 100Hz M106 P2 C"Leds" ; Leds uses fan 2 ; Servos M950 S0 C"fan0" ; Servo 0 connected to 'fan0' pin ; Tools M563 P0 D0 H1 F1 S"Manual" ; Define tool 0 using Drive 0, Heater 1 and Fan 1 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R190 S190 ; Set initial tool 0 active and standby temperatures M207 S1.5 F2400 ; Set retraction length (G10/G11) M572 D0 S0.08 ; Pressure advance ; Network M550 PDuetWifi ; Set machine name M551 Pxxxxxx ; Set password M552 S1 ; Enable network ; Access point is configured manually via M587 by the user M586 P0 S1 ; Enable HTTP M586 P1 S1 ; Enable FTP M586 P2 S0 ; Disable Telnet ; Misc M912 P0 S-13 ; Calibrate CPU temp. M106 P2 S0.1 ; Turn leds on 10% ; Custom settings are not configured
; homeall.g ; called to home all axes M98 P0:/sys/homexy.g M98 P0:/sys/homez.g M98 P0:/sys/homeu.g
; homexy.g ; called to home the X and Y axis G91 ; relative positioning G1 Z1 F1200 H2 ; lift Z G1 X325 Y325 F1800 H1 ; course home X or Y G1 X325 H1 ; course home X G1 Y325 H1 ; course home Y G1 X-5 Y-5 F6000 ; move away from the endstops G1 X325 F300 H1 ; fine home X G1 Y325 H1 ; fine home Y G1 Z-1 F1200 H2 ; lower Z G90 ; absolute positioning
; homez.g ; called to home the Z axis G91 ; relative positioning G1 Z-325 F600 H1 ; course home Z G1 Z5 F1200 ; move away from the endstop G1 Z-325 F120 H1 ; Fine home Z G90 ; absolute positioning
; homeu.g ; called to home the U axis G92 U0
Thanks for you help.
-
@fma You need to put your M584 before M667 and M208. Look at the order dependencies here https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping. Also, it probably won't make any difference but M667 is deprecated and you should really be using M669 instead of M667.
-
Ok, thanks. I applied all these corrections, but I still have the issue.
I tried to removed the U axis: not better.
-
@fma Then I guess what's needed is some way of reproducing the problem - it's always difficult to diagnose when there is an element of "randomness" involved.
Unfortunately, I'm unable to help much more because I can't home my printer at all. Some of my end stops are on expansion boards and RRF 3 firmware doesn't yet work for homing with end stops on expansion boards.
-
@fma said in RepRapFirmware 3.0beta 11 released:
M208 X-60:302 Y-100:305 Z0:320 U-1000:1000
I would propose as reason:
M208 X-60:302 Y-100:305 Z0:320 U-1000:1000
means X maximum distance is 362, Y is 405, but you home only 325 each in
G1 X325 Y325 F1800 H1
, so depending on your current position you reach one of the endstops or not, assumed, 0 position is not defined after turning the printer on. I would change to
G1 X500 Y500 F1800 H1
and the followong two also to be sure they reach the endstops.. -
This post is deleted! -
If G1 X325 Y325 F1800 H1 reaches X immediately, M208 defines X/Y position as 302/305, but in reality Y may be at -100. So it will not reach the endstop with the following Y move, even when the first line reached an endstop. So better 500 for the following two lines also.
-
The min values are wrong; I didn't noticed it because I home on max values. Anyway, total travel for X and Y is < 325mm, so the endstops are always reached (I'm using relative positionning). And in my tests, I'm close to the max positions, so carriage travels only a few mm before hitting the endstops.
And it was working fine with 2.02/2.03 firmwares; I just changed the S param to H param in the G1 moves.
-
I confirm it is totally random.
Say I'm on the max position, both endstops X/Y activated. If I hit the homing button several times, I can see the machine homing X then fail, or Y, the fail, or none, or successfully home all axis.
But I find a workaround: I changed
G1 X-5 Y-5 F6000 ; move away from the endstops
to
G1 X-5 Y-5 F6000 H2 ; move away from the endstops
and it now works fine. If it can helps to find the problem...
-
This may or may not be related, I didn't completely follow all above... if it helps:
I have noticed that RepRap 3 on Duet 3 hardware gets "stuck" if the endstop is already triggered (physically) when a G28 is issued. Stuck meaning it won't successfully show as homed, and therefore won't G0/G1 (to move off the switch). Just won't move at all.
I've had to either manually back it off (forcing the steppers) or add something like an M564 (to allow unhomed movement) and a G0 back off of a millimeter or two (and then turn M564 back to normal), or similar, to my home... files. Of course, this back off would be problematic if the axis happened to be a physical max when the home... file was invoked.
Anyway, one of those two things is required to get that axis to move again. Not even a reboot will help.
-
I though it was the case here, but even when I was not on the endstops, the problem occured (again, not all the time). And I was able to successfully homed even when starting from endstops position.
With the H2 param added on the mov away, it works all the time.
-
@fma said in RepRapFirmware 3.0beta 11 released:
I was able to successfully homed even when starting from endstops position.
Interesting. Mine fails every time when already triggered.
Board: Duet 3 version v0.6 (MB6HC)
Firmware: RepRapFirmware for Duet 3 v0.6 3.0beta11 (2019-10-22b1) -
I'm using a Duet2...
-
@fma said in RepRapFirmware 3.0beta 11 released:
I'm using a Duet2...
Aha! Yes, I am on 3 HW (and of course SW). Therefore, my data point not relevant at all.
-
One other thing to try is adding M400's to your homing scripts to make sure that
moves finish before the start of the next move or the macro finishes. -
Ok, but the problem occurs inside the homexy.g macro. I will try to add M400 before moving back...
-
@fma said in RepRapFirmware 3.0beta 11 released:
Ok, but the problem occurs inside the homexy.g macro. I will try to add M400 before moving back...
Yeah I understand that. The issue I was having (and still do to some extent) was that the moves to home both axes weren't actually finishing before the macro execution ended. When macro ends, it resets state so it was doing that before the moves completed and left things in a very weird and unpredictable state. The M400's inside the homing files helped (but haven't sovled the issue completely).
-
I tried to add M400, but it didn't help...