Weird Behavior Duet 3 / RRF 3.2
-
Hello!
I have a Jubilee that I am working on that has a 6HC board running the newest Firmware (3.2) and the SBC is a RaspPi 4. I also have 2 tool boards and 2 Hemera's fashioned like DC42's E3D tool changer mod. All software/firmware is current.
Things have been going along pretty well until I picked up a strange behavior I can not sort. When using powering up the Hemera's, I went run the extruder motors and when I issued the command, instead of the motor running, the motor controlled by driver #1 began to index as long as I had the command in, pulling the tool head diagonally back to the corner.
This system had been working very well up to that moment. Everything else worked perfectly. Today, I powered up the system to have another go and now the Y axis will not home. It moves very briefly (the wrong way) and stops.
The thing is, that if I issue a M564 H0 S0 command, the X & Y axes work correctly, indexing in the right directions in the right distances! Ugh!!!
To limit variables, I stripped down my config.g file to try and eliminate problems in that, but it does not make a difference! Of course I have looked at the homey.g file and even retyped it... but it is fine. The homex.y is nearly identical and works perfectly. If anyone has ANY ideas... I am open. H E L P !!!
M122
=== Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2 running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6J9F6-3SJ6P-KA02G Used output buffers: 1 of 40 (11 max) === RTOS === Static ram: 149788 Dynamic ram: 61760 of which 500 recycled Never used RAM 146784, free system stack 142 words Tasks: Linux(ready,101) HEAT(blocked,353) CanReceiv(blocked,848) CanSender(blocked,352) CanClock(blocked,352) TMC(blocked,19) MAIN(running,1189) IDLE(ready,19) Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:12:42 ago, cause: power up Last software reset at 2021-01-25 20:56, reason: User, none spinning, available RAM 146820, slot 0 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 MCU temperature: min 30.4, current 36.0, max 36.2 Supply voltage: min 23.6, current 23.9, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Driver 0: position 4800, standstill, reads 19485, writes 23 timeouts 0, SG min/max 0/317 Driver 1: position 4800, standstill, reads 19485, writes 23 timeouts 0, SG min/max 0/317 Driver 2: position 0, standstill, reads 19495, writes 14 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 19495, writes 14 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 19495, writes 14 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 19495, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2021-01-25 21:09:12 Slowest loop: 65.65ms; fastest: 0.04ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 427240ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 73, completed moves 73, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 16], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === CAN === Messages queued 6, send timeouts 0, received 2, lost 0, longest wait 0ms for reply type 0, free buffers 48 === SBC interface === State: 4, failed transfers: 0 Last transfer: 2ms ago RX/TX seq numbers: 25513/25513 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x2c8a8 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.2.0 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 11.21 Maximum length of RX/TX data transfers: 2908/740
Cut down config.g
; Name and Identification ; Printer name is now set on the R Pi. ; Networking ;;;M552 P192.168.1.2 S1 ; Use Ethernet with a static IP ;;;M553 P255.255.255.0 ; Netmask ;;;M554 192.168.1.3 ; Gateway M586 P1 S1 ; Enable FTP M586 P2 S1 ; Enable Telnet ; Debugging M111 S0 ; Debug off M929 P"eventlog.txt" S1 ; Start logging to file eventlog.txt ; General Preferences M555 P2 ; Set Marlin-style output G21 ; Set dimensions to millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Axis to driver mapping M584 X0 Y1 U2 Z3:4:5 ; X and Y for CoreXY. U for toolchanger lock. Z has three drivers for kinematic bed suspension. M569 P0 S0 ; Drive 0 direction | X stepper M569 P1 S0 ; Drive 1 direction | Y Stepper M569 P2 S0 ; Drive 2 direction | U Tool Changer Lock M569 P3 S0 ; Drive 3 direction | Front Left Z M569 P4 S0 ; Drive 4 direction | Front Right Z M569 P5 S0 ; Drive 5 direction | Back Z ; Kinematics M669 K1 ; CoreXY mode ; Leadscrew locations (really, kinematic coupling locations) extracted from CAD model assuming back right build plate corner is (0, 0) M671 X300:5:152.5 Y316:316:-14 S10 ; Front Left: (300, 316) | Front Right: (5, 316) | Back: (-14, 152.5) ; Axis and motor configuration M350 X16 Y16 I1 ; Set 16x microstepping for axes. Use interpolation. M350 U4 I1 ; Set 4x for toolchanger lock. Use interpolation. M350 Z16 I1 ; Set 16x microstepping for axes. Use interpolation. M906 X2500 Y2500 Z1000 I30 ; Motor currents (mA) and Idle percentage M906 U900 I60 ; Motor currents (mA) and Idle percentage M201 X600 Y600 Z10 U1000 ; Accelerations (mm/s^2) M203 X25000 Y25000 Z400 U10000 ; Maximum speeds (mm/min) M566 X700 Y700 Z2 U200 ; Maximum jerk speeds mm/minute M92 X160 Y160 ; Steps/mm for X,Y with 20 tooth pulleys. M92 Z3200 ; Steps/mm for Z - TR8*4 / 0.9 deg stepper M92 U11.429 ; Steps/mm for tool lock geared motor. ; Endstops and probes M574 X1 S1 P"io1.in" ; Set homing switch configuration X1 = low-end, S1 = active-high (NC) M574 Y1 S1 P"io2.in" ; Set homing switch configuration Y1 = low-end, S1 = active-high (NC) M574 U1 S1 P"io3.in" ; Set homing switch configuration U1 = low-end, S1 = active-high (NC) ;M574 Z1 S1 P"!io4.in" ; Set homing switch configuration Z1 = low-end, S1 = active-high (NC). This is used for tool probing, not actual Z height. M558 K0 P5 C"io4.in" H5 A5 T6000 S0.02 ; Z probe - Set the height of the bed when homing G28. Combined with content of bed.g as invoked by G32, levels bed. Also used for Mesh. ; P5 = Switch, NC ; C = Input Connector ; Hn = dive height ; A bigger dive height prevents a situation where the bed is out of alignment by more than the dive height ; on any corner, which can crash the hot-end into the bed while moving the head in XY. ; Probing speed and travel speed are similarly reduced in case the Z probe isn't connected properly (or ; disconnects later after moving to a point) giving the user more time to stop. ; An = Number of times to probe each point. ; Tnnn = Travel speed between probe points. ; Snnn = Tolerance when probing multiple times. Two readings inside this window and we move on. ;M558 K1 P5 C"!io4.in" ; create probe #1 for use with M585, active low ; Set axis software limits and min/max switch-triggering positions. Adjust such that (0,0) lies at the lower left corner of the build plate. M208 X-5:305 Y-10:365 Z-0.5:220 M208 U0:180 ;M98 P"config-user.g" ; Load custom user config if one exists. ;M501 ; Load saved parameters from non-volatile memory ;G29 S1
homey.g
G91 ; Set relative mode G1 Y-360 F6000 H1 ; Big negative move to search for endstop G1 Y4 F600 ; Back off the endstop G1 Y-10 F600 H1 ; Find endstop again slowly G90 ; Set absolute mode G1 Y0 F6000
-
That behavior usually indicates the end stop sensor for that axis is active at the start of the move.
As you recall homing typically involves a G1 H1 move toward the end stop. A short G1 move back. And another G1 H1 move toward the end stop.
Also recall that G1 H1 moves STOP when the end stop sensor activates.
So if the sensor is "stuck on"...
G1 H1 - no movement
G1 - short move back
G1 H1 - no movementwhich is consistent with what you are seeing.
If your end stop configuration settings for Y have not changed then check the wiring and see if something is causing the end stop sensor to be "stuck on".
Frederick
-
Thank you @fcwilt !
I agree and had the same thought. But the the limit switches test OK (checked again just now).
Maybe the one is intermittent?Would that cause the #1 drive motor to run when I command the extruder (using the web interface) to extrude or retract? Watching the tool head suddenly move diagonally across the machine went me scrambling for an e-stop!
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
M584 X0 Y1 U2 Z3:4:5 ; X and Y for CoreXY. U for toolchanger lock. Z has three drivers for kinematic bed suspension.
you are not defining the extruder here. that is required
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
I agree and had the same thought. But the the limit switches test OK (checked again just now).
Maybe the one is intermittent?Jog the axes positions to be sure no end stop sensor is activated and then execute M119 from the console.
That will report the status of the end stop sensors.
Would that cause the #1 drive motor to run when I command the extruder (using the web interface) to extrude or retract? Watching the tool head suddenly move diagonally across the machine went me scrambling for an e-stop!
I have no idea what happens when the settings needed for the extruder(s) are not present in config.g - it might be the problem.
BUT you did say the config.g you posted was "cut down" so perhaps you do have the needed extruder settings.
Frederick
-
Can you send M98 P"config.g" to check for any syntax errors or warnings in your config.g?
-
-
@Phaedrux Of course...
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
@fcwilt Yes, I removed the extruders and the heaters. It is a line for line copy of @dc42 's "how to" guide on the Hermera's with the Tool Boards.
Please post your complete and most recent config.g file using the </> tags
Thanks.
Frederick
-
@Phaedrux said in Weird Behavior Duet 3 / RRF 3.2:
M98 P"config.g"
M98 P"config.g" CORS disabled CORS disabled Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C ok
-
I put the other things back in... hopefully I did not create an new error!
; Jubilee CoreXY ToolChanging Printer - Config File ; Duet 3 hardware, 6HC Main board plus 2 tool boards ; ; Name and Identification ; Printer name is now set on the R Pi. ; Networking ;;;M552 P192.168.1.2 S1 ; Use Ethernet with a static IP ;;;M553 P255.255.255.0 ; Netmask ;;;M554 192.168.1.3 ; Gateway M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Debugging M111 S0 ; Debug off M929 P"eventlog.txt" S1 ; Start logging to file eventlog.txt ; General Preferences M555 P2 ; Set Marlin-style output G21 ; Set dimensions to millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Kinematics M669 K1 ; CoreXY mode ; Leadscrew locations (really, kinematic coupling locations) extracted from CAD model assuming back right build plate corner is (0, 0) M671 X300:5:152.5 Y316:316:-14 S10 ; Front Left: (300, 316) | Front Right: (5, 316) | Back: (-14, 152.5) ; Axis to driver mapping M569 P0 S0 D2 ; Drive 0 direction | X stepper M569 P1 S0 D2 ; Drive 1 direction | Y Stepper M569 P2 S0 ; Drive 2 direction | U Tool Changer Lock M569 P3 S0 D2 ; Drive 3 direction | Front Left Z M569 P4 S0 D2 ; Drive 4 direction | Front Right Z M569 P5 S0 D2 ; Drive 5 direction | Back Z M569 P20.0 S0 D2 ; set tool 0 extruder direction on Hermera Toolboards M569 P21.0 S0 D2 ; set tool 1 extruder direction on Hermera Toolboards M584 X0 Y1 U2 Z3:4:5 ; X and Y for CoreXY. U for toolchanger lock. Z has three drivers for kinematic bed suspension. M584 E0:1:20.0:21.0 ; Set Hermera extruder drives up on Hermera Tool boards ; Axis and motor configuration M350 X16 Y16 I1 ; Set 16x microstepping for axes. Use interpolation. M350 U4 I1 ; Set 4x for toolchanger lock. Use interpolation. M350 Z16 I1 ; Set 16x microstepping for axes. Use interpolation. M350 E16:16 I1 ; Motor Configurations M906 X2500 Y2500 Z1000 E1250 I30 ; Motor currents (mA) and Idle percentage M906 U900 I60 ; Motor currents (mA) and Idle percentage M201 X600 Y600 Z10 E1000 U1000 ; Accelerations (mm/s^2) M203 X25000 Y25000 Z400 E4000 U10000 ; Maximum speeds (mm/min) M566 X700 Y700 Z2 E3000 U200 ; Maximum jerk speeds mm/minute ;M92 X200 Y200 ; Steps/mm for X,Y with 16 tooth pulleys (preferred). M92 X160 Y160 ; Steps/mm for X,Y with 20 tooth pulleys. M92 Z3200 ; Steps/mm for Z - TR8*4 / 0.9 deg stepper M92 U11.429 ; Steps/mm for tool lock geared motor. M92 E837 ; Extruder - 0.9 deg/step ; Endstops and probes M574 X1 S1 P"io1.in" ; Set homing switch configuration X1 = low-end, S1 = active-high (NC) M574 Y1 S1 P"io2.in" ; Set homing switch configuration Y1 = low-end, S1 = active-high (NC) M574 U1 S1 P"io3.in" ; Set homing switch configuration U1 = low-end, S1 = active-high (NC) ;M574 Z1 S1 P"!io4.in" ; Set homing switch configuration Z1 = low-end, S1 = active-high (NC). This is used for tool probing, not actual Z height. M558 K0 P5 C"io4.in" H8 A5 T6000 S0.02 ; Z probe - Set the height of the bed when homing G28. Combined with content of bed.g as invoked by G32, levels bed. Also used for Mesh. ; P5 = Switch, NC ; C = Input Connector ; Hn = dive height ; A bigger dive height prevents a situation where the bed is out of alignment by more than the dive height ; on any corner, which can crash the hot-end into the bed while moving the head in XY. ; Probing speed and travel speed are similarly reduced in case the Z probe isn't connected properly (or ; disconnects later after moving to a point) giving the user more time to stop. ; An = Number of times to probe each point. ; Tnnn = Travel speed between probe points. ; Snnn = Tolerance when probing multiple times. Two readings inside this window and we move on. ;M558 K1 P5 C"!io4.in" ; create probe #1 for use with M585, active low ; Set axis software limits and min/max switch-triggering positions. Adjust such that (0,0) lies at the lower left corner of the build plate. M208 X-5:305 Y-10:365 Z-0.5:220 M208 U0:180 ; Temperature sensors M308 S0 P"0.temp0" Y"thermistor" T10000 B3984 A"Bed" ; Bed sensor M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Hemera sensors and heaters M308 S2 P"21.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Hemera sensors and heaters ; Heaters M950 H0 C"0.out0" T0 ; Bed. H = Heater 0, C is output for heater itself, T = Temperature sensor (defined above) M950 H1 C"20.out0" T1 ; Hemera sensors and heaters M950 H2 C"21.out0" T2 ; Hemera sensors and heaters ; Further setup for bed M143 H0 S130 ; set temperature limit for heater 0 to 130C 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 ; Default heater model ;;;;M307 H0 A270.7 C90.4 D6.7 B0 S1.0 ; Default Bed Heater Parameters, before tuning / if config-override.g is missing ; Calibration 28 Oct 2019 ;Heater 0 model: gain 139.6, time constant 252.2, dead time 0.7, max PWM 1.00, calibration voltage 24.5, mode PID ;Computed PID parameters for setpoint change: P468.8, I35.594, D225.7 ;Computed PID parameters for load change: P468.8, I136.631, D225.7 M307 H0 A140 C252 D0.7 S1.0 V24.5 B0 ; Tuned Bed Heater Paramaters, same as report above, also B0 to turn off bang-bang ; Hemera fans M950 F5 C"20.out2+out2.tach" ; Tool 0 hot end fan with tacho M950 F6 C"20.out1" ; Tool 0 print cooling fan, no tacho M950 F7 C"21.out2+out2.tach" ; Tool 1 hot end fan with tacho M950 F8 C"21.out1" ; Tool 1 print cooling fan, no tacho M106 P5 S255 H1 T50 ; Tool 0 hot end M106 P6 S0 ; Tool 2 PCF M106 P7 S255 H2 T50 ; Tool 1 hot end M106 P8 S0 ; Tool 3 PCF ; Tool definitions M563 P0 S"Tool 0" D0 H1 F5 ; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan G10 P0 S210 R160 ; Set tool 0 operating and standby temperatures(-273 = "off") M572 D0 S0.1 ; Set pressure advance on M563 P1 S"Tool 1" D1 H2 F6 ; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan G10 P1 S210 R160 ; Set tool 1 operating and standby temperatures(-273 = "off") M572 D1 S0.1 ; Set pressure advance on M98 P"/sys/Toffsets.g" ; Set tool offsets from the bed. In separate file so test macro can invoke. ; Set up the dock indicator switches on the Hemera tools. These are wired NO so invert the pin (commented out for now). ;M950 J2 C"20.^!io0.in" ; GpIn 2 = tool 0 dock switch ;M950 J3 C"21.^!io0.in" ; GpIn 1 = tool 1 dock switch ;M98 P"config-user.g" ; Load custom user config if one exists. ;M501 ; Load saved parameters from non-volatile memory ;G29 S1 ; Note: you will need to tune the bed heater, and both extruder cartridges before printing. ; See the following link for more details. https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
Nothing in your config.g file jumps out at me as being wrong.
I don't see that you ever posted the results of executing M119 from the console.
Please do this after re-booting the printer and then jogging the axes so that no end stop switches are activated.
Frederick
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
This system had been working very well up to that moment. Everything else worked perfectly. Today, I powered up the system to have another go and now the Y axis will not home. It moves very briefly (the wrong way) and stops.
That indicates that either the Y endstop is not working, or it not configured correctly. If it's a normally-closed switch, then the most likely cause is a bad crimp on the connector. That will cause it to read permanently triggered.
-
@dc42 Thank you, I did locate the intermittent switch. I should have looked at as a separate issue but I am rather frustrated at the core issue and foolishly assumed they were related.
The core problem I am having is when I am using the Hemera's with the tool boards. If I select a tool, the Hemera heats up as expected. Using the web interface, I select "Extrude/Retract" and specify a set length and feedrate and select it, but instead of the extruder motor running as expected, Drive 1 on the 6HC board runs, causing the entire tool assembly to move diagonally. If I select the opposite, say retract instead of extrude, the same motor runs the opposite way.
I tried to run Tool1 last night and the lock motor ran instead... rather unfortunately. Aside from being quite frustrating, I hate having to have to bother folks in the form with this stuff, but I am now short on ideas and fingernails
Any thoughts?
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
interface, I select "Extrude/Retract" and specify a set length and feedrate and select it, but instead of the extruder motor running as expected, Drive 1 on the 6HC board runs, causing the entire tool assembly to move diagonally. If I select the opposite, say retract instead of extrude, the same motor runs the opposite way.This is your M584 E0:1:20.0:21.0 for your extruders.
Now I have not used the 6HC with other boards connected but this looks to me like it specifies 4 extruders.
Is that correct?
Frederick
-
@beachtec as @fcwilt says, you've mapped drives 0 and 1 to the extruder with the second M584 line:
M584 X0 Y1 U2 Z3:4:5 ; X and Y for CoreXY. U for toolchanger lock. Z has three drivers for kinematic bed suspension. M584 E0:1:20.0:21.0 ; Set Hermera extruder drives up on Hermera Tool boards
Change it to:
M584 E20.0:21.0
Ian
-
@fcwilt Only 2 extruders in use on this machine.
-
I copied this syntax from the article by @dc42 "Converting the E3D Tool Changer to Duet 3 with Hemera Tools (Part 2). In his piece, he was replacing 2 extruders with 2 Hemera's with Tool Boards.
Is this incorrect?
; Hemera motors M569 P22.0 S0 ; set tool 2 extruder direction M569 P23.0 S0 ; set tool 3 extruder direction M584 E3:4:22.0:23.0 ; set extruder drives
-
@beachtec said in Weird Behavior Duet 3 / RRF 3.2:
E3:4
It's only correct if you also have extruders connected to drivers on the mainboard as well.
Use the M584 command recommended above that uses only the drivers on the tool boards for extruders.
-
@beachtec It's correct for him, because he has four extruders - E0, E1 (connected to mainboard, drivers 3 and 4) E2 and E3 (toolboards 22.0 and 23.0). His full config is here: https://github.com/Duet3D/RRF-machine-config-files/blob/master/E3D_Tool_Changer/dc42-duet3-centreZero-2Titan-2Hemera/sys/config.g
Which includes:
; Drive direction M569 P0 S1 ; Drive 0 Z M569 P1 S0 ; Drive 1 Y M569 P2 S0 ; Drive 2 X M569 P3 S0 ; Drive 3 E0 M569 P4 S0 ; Drive 4 E1 M569 P5 S0 ; Drive 5 COUPLER M569 P22.0 S0 D2 ; Drive 22.0 (E2) spreadCycle mode M569 P23.0 S0 D2 ; Drive 23.0 (E3) spreadCycle mode M584 X2 Y1 Z0 C5 ; Axis to driver mapping M584 E3:4:22.0:23.0 ; set extruder drivers
Note how the drives in M584 are not repeated.
Ian