Hi all
I have quite a strange behavior homing the y-axis – it looks like the G1 H2 command «turns» the moving direction of the axis temporarly!
It's a core-xy machine (Voron 300mm) with max-endstops on x and y. Running on a 6HC with the 1LC toolboard. RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (standalone mode)
Even though this should crash, it's the only way it works. From the homey.g (config.g and this one attached):
G91 ; REL
M913 X30 Y30 ; Current to 30%
G1 H2 Z2 F6000
G1 H1 Y310 F10000 ; +Y probe move, fast, set axis limit
G1 H2 Y10 F1000 ; back off from the endstop, individual motor mode
G1 H1 Y5.2 F1000 ; +Y probe move, slow, set axis limit
G1 H2 Y10 F10000 ; back off from the endstop, Individual motor mode
G1 H2 Z-2 F6000
M913 X100 Y100 ; Current to 100%
G90 ; ABS
Please note the "wrong" direction backing off from the touch&set axis limits on the two "G1 H2 Y10 F1000". I think this is not correct and it took me a long time to set it this way!?
Everything else works correct: the endstops are sensed, and all axis behave correct (and in the correct direction) after homing. On the X the homing is not behaving this way.
Am I missing something here? This is really very confusing…
Thank you for your inputs – Tomi
; Configuration file for Duet 3 (firmware version 3.3)
; 220508
; Startup ---------------------------------------------------
G21 ; work in millimeters
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Boron" ; set printer name
G4 S2 ; CAN expansion pause
; Network -------
M552 P192.168.1.211 S1 ; enable network and set IP address
M553 P255.255.255.0 ; set netmask
M554 P192.168.1.1 ; set gateway
M586 P0 S1 ; enable HTTP
M586 P1 S1 ; enable FTP
M586 P2 S1 ; enable Telnet
; Drives ---------------------------------------------------
; Z1 | Z2 A B
; 0.1 | 0.2 0.4 0.5
; –––––––––––––
; Z0 | Z3 E
; 0.0 | 0.3 121.0
M569 P0.0 S1 ; Z0 physical drive 0.0 goes forwards
M569 P0.1 S0 ; Z1 physical drive 0.1 goes backwards
M569 P0.2 S1 ; Z2 physical drive 0.2 goes forwards
M569 P0.3 S0 ; Z3 physical drive 0.3 goes backwards
M569 P0.4 S1 ; A physical drive 0.4 goes forwards
M569 P0.5 S1 ; B physical drive 0.5 goes forwards
M569 P121.0 S1 ; E physical drive 121.0 goes forwards
; Bindings -------
M584 Z0.0:0.1:0.2:0.3 ; Bindings Z-Motor Board 0 Pin 0 to 3
M584 X0.4 Y0.5 E121.0 ; Bindings other
; Conventionals -------
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z320.00 E655.00 ; set steps per mm
M906 I30 ; motor idle current percentage
M84 S60 ; Set idle timeout
; velocity, acceleration, and current settings are in these macros
M98 P"/macros/drives/xy_fullcurrent.g"
M98 P"/macros/drives/z_fullcurrent.g"
M98 P"/macros/drives/e_fullcurrent.g"
; GEOMETRY ------------------------------------------------
; Limits -------
M669 K1 ; select CoreXY mode
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X300 Y300 Z225 S0 ; set axis maxima
; Endstops (M574) -------
M574 X2 S1 P"^io3.in" ; X high end, active high
M574 Y2 S1 P"^io4.in" ; Y high end, active high
M574 Z1 S1 P"^io6.in" ; Z low end , active high
;M574 Z0 P"nil" ; No Z endstop
; Z-Probe -------
M558 P8 C"^121.io0.in" H5 F300 T500 ; Z probe type + the dive height + speeds
; Fnnn Feed rate (i.e. probing speed, mm/min)
; Hnnn Dive height (mm)
; Tnnn Travel speed to and between probe points (mm/min)
; In 1==invert
G31 P500 X25 Y25 Z2.5 ; set Z probe trigger value, offset and trigger height
M557 X40:260 Y40:260 S20 ; define mesh grid
; THERMIC ------------------------------------------------
; Heaters
M308 S0 P"spi.cs0" Y"rtd-max31865" A"Bed" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"121.temp0" Y"pt1000" A"Hotend" ; configure sensor 1 as thermistor on pin 121.temp0
M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.out0 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C
M308 S2 P"spi.cs1" Y"rtd-max31865" A"Short" ; define temperature sensor number 3 as a PT100
M950 H2 C"spi.cs1" T2
M308 S3 A"Chamber" P"temp_0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin temp0
; Fans ------------------------------------------------
M950 F0 C"121.out1" Q10 ; PARTS - create fan 0 on pin 121.out1 and set its frequency
M106 P0 C"Fan_Part" S0 H-1 ; PARTS - set fan 0 name and value. Thermostatic control is turned off
M950 F1 C"121.out2" Q250 ; HOTEND - create fan 1 on pin 121.out2 and set its frequency
M106 P1 C"Fan_Hotend" S1 H1 T45 ; HOTEND - set fan 1 name and value. Thermostatic control is turned on
; Tools ------------------------------------------------
M563 P0 S"Dragon Hotend" 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
T0 ; select first tool
; Custom settings ------------------------------------------------
M575 P1 S1 B57600 ; PanelDue
M950 J1 C"io8.in" ; eStop Definition -> https://docs.duet3d.com/User_manual/Connecting_hardware/IO_E_stop
M581 P1 T0 S1 R0 ; eStop Behaviour
; Misc ------------------------------------------------
;M501 ; load sys/config-override.g on the SD card
; homey.g
; Basis https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing
if sensors.probes[0].value[0] = 1000
;G92 Y0
G91 ; REL
M913 X30 Y30 ; Current to 30%
G1 H2 Z2 F6000
G1 H1 Y310 F10000 ; +Y probe move, fast, set axis limit
G1 H2 Y10 F1000 ; back off from the endstop, individual motor mode
G1 H1 Y5.2 F1000 ; +Y probe move, slow, set axis limit
G1 H2 Y10 F10000 ; back off from the endstop, Individual motor mode
G1 H2 Z-2 F6000
M913 X100 Y100 ; Current to 100%
G90 ; ABS
else
echo "homey.g: REMOVE THE PROBE
; homey.g
; Basis https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing
if sensors.probes[0].value[0] = 1000
G92 X0
G91 ; REL
M913 X30 Y30 ; Set Current to 30%
G1 H2 Z2 F3000
G1 H1 X310 F10000 ; +X probe move, fast, set axis limit
G1 H2 X-5 F10000 ; back off from the endstop, individual motor mode
G1 H1 X6 F1000 ; +X probe move, slow, set axis limit
G1 H2 X-10 F10000 ; back off from the endstop, Individual motor mode
G1 H2 Z-2 F3000
M913 X100 Y100 ; Set Current to 100%
G90 ; ABS
;G1 H2 X20 F99999
else
echo "homex.g: REMOVE THE PROBE"
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (standalone mode)
Board ID: 08DJM-956BA-NA3TN-6J9DD-3S86T-KUBGS
Used output buffers: 14 of 40 (14 max)
=== RTOS ===
Static ram: 151000
Dynamic ram: 96296 of which 328 recycled
Never used RAM 103048, free system stack 200 words
Tasks: NETWORK(ready,26.3%,227) ETHERNET(notifyWait,0.1%,173) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,8.1%,92) MAIN(running,65.5%,925) IDLE(ready,0.0%,30), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 00:08:33 ago, cause: software
Last software reset at 2022-05-08 10:50, reason: User, GCodes spinning, available RAM 102976, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Step timer max interval 130
MCU temperature: min 36.3, current 38.0, max 38.1
Supply voltage: min 23.8, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0, mspos 8, reads 41462, writes 14 timeouts 0
Driver 1: standstill, SG min 0, mspos 8, reads 41462, writes 14 timeouts 0
Driver 2: standstill, SG min 0, mspos 8, reads 41461, writes 15 timeouts 0
Driver 3: standstill, SG min 0, mspos 8, reads 41462, writes 15 timeouts 0
Driver 4: standstill, SG min 0, mspos 888, reads 41462, writes 15 timeouts 0
Driver 5: standstill, SG min 0, mspos 248, reads 41462, writes 15 timeouts 0
Date/time: 2022-05-08 11:13:32
Slowest loop: 12.43ms; fastest: 0.05ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 3.0ms, write time 1.8ms, max retries 0
=== Move ===
DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
Heater 1 is on, I-accum = 0.0
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle 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 4628, received 6153, lost 0, boc 0
Longest wait 2ms for reply type 6053, peak Tx sync delay 6, free buffers 50 (min 49), ts 2566/2565/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 29.08ms; fastest: 0.02ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
HTTP sessions: 1 of 8
- Ethernet -
State: active
Error counts: 0 0 0 0 0
Socket states: 5 5 2 2 2 2 0 2```