Solved 1HCL probing problem with ***video***
-
; Configuration file for Duet 3 (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 02 2022 11:44:56 GMT+0200 (Ora legale dell’Europa centrale); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name; Wait for expansion boards to star
G4 S1; Fans
M950 F0 C"!out4+out4.tach" Q25000 ; fan 0 con tach. + pwm freq 25kHz
M106 P0 S0 ; fan al minimo; Input ports
M950 J5 C"io5.in"
M950 J6 C"io6.in"
M950 J7 C"io7.in"
M950 J8 C"io8.in"; Output ports
M950 P5 C"io5.out" Q0
M950 P6 C"io6.out" Q0
M950 P7 C"io7.out" Q0
M950 P8 C"io8.out" Q0; Drives
M569 P1.0 D0 S0 ; asse Z - accensione in Open Loop per evitare caduta durante il tuning
M569 P2.0 D0 S0
M569 P3.0 D0 S0
M569 P4.0 D0 S0
M569 P5 D0 S0 T0:0:0:0; asse Z fantasma sulla mainboard per errore G30
M569 P1 S0 T2:2:0:0 ; asse Y
M569 P0 S0 ; asse X
M569 P10.1 S1 ; extruder motor
;M917 Z0 ;riduzione di corrente a motore fermo per asse
M584 X0 Y1 Z1.0:2.0:3.0:4.0:5 E10.1 ;mappa driver per ogni asse
M350 Z16 I1 ; configure microstepping with interpolation
M92 X200 Y200 Z320 E224.6 ; set steps per mm
M566 X10000 Y10000 Z100.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X60000 Y60000 Z5000 E9000 ; set maximum speeds (mm/min)
M201 X1000 Y1000 Z200 E250.00 ; set accelerations (mm/s^2)
M906 Z6000 E2500 ; set motor currents (mA)
M84 S0 ; Disable motor idle current reduction; Brakes
M569.7 P1.0 C"out1"
M569.7 P2.0 C"out1"
M569.7 P3.0 C"out1"
M569.7 P4.0 C"out1"; accensione assi
M17 Z E
G4 S2 ; attesa per essere sicuri che la Z sia eccitata; Z Encoders
M569.1 P1.0 T2 C5 R100 I8000 D0.1 E1.0:3.0; PID asse Z
M569.1 P2.0 T2 C5 R100 I8000 D0.1 E1.0:3.0
M569.1 P3.0 T2 C5 R100 I8000 D0.1 E1.0:3.0
M569.1 P4.0 T2 C5 R100 I8000 D0.1 E1.0:3.0; Drives
M569 P1.0 D4 S0 ; asse Z - accensione in Closed Loop
M569 P2.0 D4 S0
M569 P3.0 D4 S0
M569 P4.0 D4 S0; Tuning
;polarity and zeroing asse Z
M569.6 P1.0 V1
M569.6 P2.0 V1
M569.6 P3.0 V1
M569.6 P4.0 V1; Axis Limits
M208 X0:1000 Y0:1000 Z0:1500; Endstops
M574 Z1 S1 P"1.io0.in+2.io0.in+3.io0.in+4.io0.in"; Bed plate Heaters
M308 S0 A"Dietro DX" P"temp0" Y"pt1000" ; configure sensor as thermistor on pin
M308 S1 A"Dietro SX" P"temp1" Y"pt1000"
M308 S2 A"Avanti SX" P"temp2" Y"pt1000"
M308 S3 A"Avanti DX" P"temp3" Y"pt1000"
M950 H1 C"out0" T0 ; create bed heater output and map it to sensor
M950 H2 C"out1" T1
M950 H3 C"out2" T2
M950 H4 C"out8" T3
M307 H1 R0.040 K0.060:0.000 D23.41 E1.35 S1.00 B0 ; PID
M307 H2 R0.040 K0.060:0.000 D23.41 E1.35 S1.00 B0
M307 H3 R0.040 K0.060:0.000 D23.41 E1.35 S1.00 B0
M307 H4 R0.040 K0.060:0.000 D23.41 E1.35 S1.00 B0
M140 P1 H1 ; map heated bed to heater
M140 P2 H2
M140 P3 H3
M140 P4 H4
M143 H1 S120 ; set temperature limit for heater
M143 H2 S120
M143 H3 S120
M143 H4 S120; Extruder Heaters
M308 S10 A"Top" P"spi.cs2" Y"rtd-max31865" ; configure sensor as thermistor on pin
M308 S11 A"Bottom" P"spi.cs4" Y"rtd-max31865"
M308 S12 A"Nozzle" P"spi.cs1" Y"rtd-max31865"
M950 H10 C"out5" T10 ; create nozzle heater output and map it to sensor
M950 H11 C"out7" T11
M950 H12 C"out6" T12
M307 H10 R1.070 K0.120:0.000 D25.16 E1.35 S1.00 B0 ;PID riscaldatore pulsar top
M307 H12 R0.833 K0.103:0.000 D28.21 E1.35 S1.00 B0 ;PID riscaldatore pulsar nozzle
M307 H11 R0.867 K0.115:0.000 D17.33 E1.35 S1.00 B0 ;PID riscaldatore pulsar bottom
M143 H10 S300 ; set temperature limit for heater
M143 H11 S300
M143 H12 S300; Tools
M563 P0 D0 H10:11:12 F0 S"Pulsar" ; 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; Z-Probe
M558 Z P5 K0 C"io1.in" H10 F500:20 T2000 ; definizione probe Z
G31 K0 X-3 Y54.5 Z5 ; offset rispetto alla testa
M557 X0:200 Y0:200 S100 ; define mesh gridI added this line:
M569 P5 D0 S0 T0:0:0:0; asse Z fantasma sulla mainboard per errore G30
and added motor 5 to this line:
M584 X0 Y1 Z1.0:2.0:3.0:4.0:5 E10.1
homez
; homez.g
;
G91 ; movimenti relativi
G1 H1 Z1520 F900 ; muove la Z verso l'alto fino a che il finecorsa viene toccato
G1 H2 Z-5 F2000 ; scende di 5mm disimpegnando il finecorsa
G1 H1 Z1520 F900 ; muove la Z verso l'alto fino a che il finecorsa viene toccato
G92 Z1500 ; imposta la Z nel punto di trigger a Z1500
G90 ; movimenti assolutiM291 P"Asse Z azzerato" R"INFO" S0 T2
-
@highfreq thanks for confirming the workaround. That tells me what is going wrong. Now I need to work out why it goes wrong on your system but not on my bench setup.
-
@dc42 not meaning to push you but do you have any idea how long it'll take to have a fix?
Maybe multiple motors on z axis or big motors are more exposed to this problem?
-
@highfreq please send M115 from the console, to confirm that you really are running firmware 3.4.2 on the main board. You are running in SBC mode, and I have known the SBC to downgrade RRF in the past.
The problem is that the main board firmware isn't tracking the motor steps during the probing move. This behaviour was a known bug in some earlier firmware versions. I'm reviewing the source code and I don't yet see how it could happen in 3.4.2. The flag that causes the main board to track motor steps even when there are no local drives involved is the same one that causes the move to end when the prove triggers.
-
22/9/2022, 17:15:11 m115
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6XD FIRMWARE_VERSION: 3.4.2 ELECTRONICS: Duet 3 MB6XD v1.0 or later FIRMWARE_DATE: 2022-09-13 15:19:26To rule any installation problem out we did the installation from scratch already twice.
Maybe has something to do with the relatively new 6XD?
-
@highfreq thanks for confirming the version.
Please run the following test:
- Connect a PC running a terminal emulator (e.g. YAT) t the USB port
- Set up the machine so that you are ready to send the G30 command that goes wrong
- Send M111 S1 P4 and then M111 S1 P6
- Send G30. This should produce some output in the terminal emulator screen.
- When the move completes, copy the output from the terminal emulator screen and paste it into a message here.
-
@dc42 Do i need to do this with or without the fake axis workaround?
-
This was the output of the terminal, the test was made WITHOUT workaround.
Connection to SBC established!
Executing config.g… Done!
RepRapFirmware for Duet 3 MB6XD is up and running.
Forward transformed 0 200000 0 to 0.00 1000.00 0.00
Forward transformed 0 200000 0 to 0.00 1000.00 0.00
Forward transformed 0 200000 -1600 to 0.00 1000.00 -5.00
Forward transformed 0 200000 -1600 to 0.00 1000.00 -5.00
Forward transformed 0 200000 0 to 0.00 1000.00 0.00
Transformed 0.00 1000.00 -5.00 to 0 200000 -1600
pr 1 ts=215104413 DDA: s=1.5050e+3 vec=[0.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000]
a=4.4444e-10 d=4.4444e-10 reqv=1.1111e-5 startv=0.0000e+0 topv=1.1111e-5 endv=0.0000e+0 cks=135474990 fp=4294967295 fl=0c00
U d=1.3889e-1 t=25000.0 b=0.0000e+0 c=4.5000e+9
U d=1.5047e+3 t=135424992.0 c=9.0000e+4
U d=1.3892e-1 t=25000.0 b=2.5000e+4 c=-4.5000e+9
DMZ: dir=B steps=481600 next=1 rev=481601 interval=3749 ssl=45 A=0.0000e+0 B=0.0000e+0 C=1.4062e+7 dsf=1.3889e-1 tsf=25000.0
Forward transformed 0 200000 480000 to 0.00 1000.00 1500.00
Transformed 0.00 1000.00 5.00 to 0 200000 1600
Transformed 0.00 1000.00 5.00 to 0 200000 1600
Transformed 0.00 1000.00 15.00 to 0 200000 4800
pr 1 ts=232476041 DDA: start=[0.000000 1000.000000 5.000000] end=[0.000000 1000.000000 15.000000] s=1.0000e+1 vec=[0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000]
a=3.5556e-10 d=3.5556e-10 reqv=4.4444e-5 startv=0.0000e+0 topv=4.4444e-5 endv=0.0000e+0 cks=350000 fp=4294967295 fl=0401
U d=2.7778e+0 t=125000.0 b=0.0000e+0 c=5.6250e+9
U d=4.4444e+0 t=100000.0 c=2.2500e+4
U d=2.7778e+0 t=125000.0 b=1.2500e+5 c=-5.6250e+9 -
@highfreq thanks, I did want the results of testing without the workaround.
-
@dc42 is it the log you were looking for?
-
@highfreq yes, thanks!
I believe I have found the reason for this behaviour, and I expect to have a new firmware build for you to test later this morning. You were right, it is specific to the 6XD board.
-
@dc42 thank you very much, looking forward to it.
-
@highfreq please try this build. In my tests, it fixes the problem.
Duet3Firmware_MB6XD.bin -
@dc42 will test asap and let you know.
Do i have to turn off any of the logging i switched on yesterday?
thanks
-
@dc42 So far everything works as expeced.
Thank you and great customer service!!!!!!
-
@highfreq I'm sorry it took so long. As it only happened in closed loop node, I assumed it was an issue with the EXP1HC firmware, so I was looking in the wrong place. In fact it was caused by the step generation code on the 6XD being different from other Duets because of the different hardware (the 6XD uses a timer to generate the step pulse so that the CPU doesn't have to hang around until it finishes).
-
@dc42 Thank you very much!!!
-
If a mod could change title to SOLVED would be greatly ppreciated.
-
-
-
@dc42 Still working fine. Don't know if it could be related but the 1HCL didn't show any brake issue after we installed the probe patch on the 6XD.
1HCL are running on latest stable release. -
@highfreq I'm glad to hear it. I would not expect to see any brake issues when a driver is enabled (assuming you set the current first), but a delay between de-energising the brake solenoid (to turn the brake on again) and disabling the driver is likely to be needed. I'll make that delay configurable in RRF 3.5.