Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Problem with core XY homing

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    13
    519
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Dad003undefined
      Dad003
      last edited by

      SO i Converted my cartesian printer to a core XY i followed the wiki : https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter

      when i call : G91
      G1 H2 X10 F3000 printer goes X+Y+ like it should
      when i call: G91
      G1 H2 Y10 F3000 printer goes X+ Y- like it should

      IF i write G92 X0Y0 to home , then use the +10 increment everything move like it should

      IF i press HOME X , head move hit the switch move away and come back like it should as lonf Y is not already homed.

      IF i press Home Y,head move hit the switch move away and come back like it should as long X is not already homed.

      Here my problem if one axis is already at HOME it were it doesnt work anymore,i can home X everything is fine trying to home Y after, head move hit the switch than move away and X start moving , there no X coord in the HOME Y, if i home Y first than cal X it does the exact thing on the second pass it will move Y.Basically anytime an axis is already homed and i call the other one on the second pass the axis already homed start moving when it shouldnt

      IF i call HOMEALL , well it will hit the switch on the first pass like it should but the second pass will not and will say it homed randomly in the middle of the print space

      SO him kinda lost there and cant seem to find what wrong .

      ; Configuration file for Duet 3 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun May 03 2020 01:01:37 GMT-0600 (Mountain Daylight Time)
      
      ; General preferences
      M669 K1 
      G90                                             ; send absolute coordinates...
      M83                                             ; ...but relative extruder moves
      G4 S4
      M550 P"The mean printer"                        ; set printer name
      M669 K1                                         ; select CoreXY mode
      
      
      ; Network
      M551 P"XXXXXX"                                 ; set password
      M552 P0.0.0.0 S1                                ; enable network and acquire dynamic address via DHCP
      M586 P0 S1                                      ; enable HTTP
      M586 P1 S1                                      ; enable FTP
      M586 P2 S1                                      ; disable Telnet
      
      ; Drives
      M569 P0.0 S1                                   ; physical drive 0.0 goes forwards X
      M569 P0.1 S1                                   ; physical drive 0.1 goes forwards double Z
      M569 P0.2 S0                                    ; physical drive 0.2 goes forwards Z
      M569 P0.3 S1                                    ; physical drive 0.3 goes forwards double X
      M569 P0.5 S1                                    ; physical drive 0.5 goes forwards EXT 1
      M569 P0.4 S0                                    ; physical drive 0.4 goes forwards EXT 2
      M569 P1.2 S0                                   ; physical drive 1.2 goes forwards Y, 3HC
      M569 P1.1 S0                                    ; physical drive 1.1 goes forwards Y, 3HC
      M584 X1.1:1.2 Y0.0:0.3 Z0.2:0.1 E0.5:0.4                    ; set drive mapping
      M350 X16:16 Y16 Z16:16 E16:16 I1                      ; configure microstepping with interpolation
      M92 X160.00 Y160.00 Z480.00 E415:415      ; set steps per mm
      M566 X1000.00 Y1000.00 Z10.00 E250.00:250.00      ; set maximum instantaneous speed changes (mm/min)
      M203 X3000.00 Y3000.00 Z1000.00 E1500.00:1500.00 ; set maximum speeds (mm/min)
      M201 X1500.00 Y1500.00 Z10.00:10.00 E350.00:350.00      ; set accelerations (mm/s^2)
      M906 X1400:1400 Y1400:1400 Z1600:1600 E0550:0550 I60           ; set motor currents (mA) and motor idle factor in per cent
      M84 S1800                                         ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                                ; set axis minima
      M208 X300 Y300 Z600. S0                          ; set axis maxima
      
      ; Filaments
      M591 D0 P1 C"io3.in" S1                          ; filament monitor connected to E0_stop
      M591 D1 P1 C"io4.in" S1                          ; filament monitor connected to E1_stop
      
      
      
      ; Endstops
      M574 X1 S1 P"!io0.in"                            ; configure active-high endstop for low end on X via pin io0.in
      M574 Y1 S1 P"1.io1.in"                           ; configure active-high endstop for high end on Y via pin io1.in
      
      
      ; Z-Probe
      M950 S0 C"io7.out"                              ; create servo pin 0 for BLTouch
      M558 P9 C"^io7.in" H5 F120 T3000               ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X25 Y40 Z2.70            ; set Z probe trigger value, offset and trigger height
      M557 X50:200 Y50:200 S50                        ; define mesh grid
      
      
      ; Heaters
      M308 S0 P"temp3" Y"thermistor" T100000 B4050   ; configure sensor 0 as thermistor on pin temp3
      M950 H0 C"out0" T0                              ; create bed heater output on out0 and map it to sensor 0
      M143 H0 S120                                    ; set temperature limit for heater 0 to 120C
      M307 H0 B1 S1.00                                ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                         ; map heated bed to heater 0
      M308 S1 P"temp2" Y"thermistor" T100000 B4050   ; configure sensor 1 as thermistor on pin temp2
      M950 H1 C"out1" T1                              ; create nozzle heater output on out1 and map it to sensor 1
      M307 H1 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S295
      M308 S2 P"temp1" Y"thermistor" T100000 B4050    ; configure sensor 2 as thermistor on pin temp1
      M950 H2 C"out2" T2                              ; create nozzle heater output on out2 and map it to sensor 2
      M307 H2 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
      M143 H2 S295                                    ; set temperature limit for heater 0 to 295C
      
      ; Fans
      M950 F0 C"out9" Q150                         ; create fan 0 on pin out9 and set its frequency
      M106 P0 C"blower" S0 H-1                        ; set fan 0 name and value. Thermostatic control is turned off
      M950 F1 C"out4" Q200                            ; create fan 1 on pin out4 and set its frequency
      M106 P1 C"blower E0" S0 H-1                     ; set fan 1 name and value. Thermostatic control is turned off
      M950 F2 C"out5" Q200                            ; create fan 2 on pin out5 and set its frequency
      M106 P2 C"blower E1" S0 H-1                     ; set fan 2 name and value. Thermostatic control is turned off
      M950 F3 C"out6" Q750                            ; create fan 3 on pin out6 and set its frequency
      M106 P3 C"electrical" S1 H1:2 T20               ; set fan 3 name and value. Thermostatic control is turned on
      M950 F4 C"out7" Q200                        ; create fan 4 on pin out7 and set its frequency
      M106 P4 C"E0" S1 H1 T45                         ; set fan 4 name and value. Thermostatic control is turned on
      M950 F5 C"out8" Q200                            ; create fan 5 on pin out8 and set its frequency
      M106 P5 C"E1" S1 H2 T30                         ; set fan 5 name and value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H1 F0:1:2                                ; define tool 1
      G10 P0 X0 Y0 Z0                                 ; set tool 1 axis offsets
      G10 P0 R0 S0                                    ; set initial tool 1 active and standby temperatures to 0C
      M563 P1 D1 H2 F0:2:1                                ; define tool 2
      G10 P1 X0 Y-34.10 Z0                         ; set tool 2 axis offsets
      G10 P1 R0 S0                                    ; set initial tool 2 active and standby temperatures to 0C
      
      ; Custom settings are not defined
      M593 F0.                                          ; cancel ringing at 0Hz
      
      ; Miscellaneous
      M501                                            ; load saved parameters from non-volatile memory
      T0                                              ; select first tool
      
      
      ; homeall.g
      ; called to home all axes
      ;
      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Apr 23 2021 23:00:19 GMT-0600 (Mountain Daylight Time)
      G91 ; relative mode
      G1 H1 X-240 Y-240 F1000 ; coarse home X or Y
      G1 H1 X-240 ; coarse home X
      G1 H1 Y-240 ; coarse home Y
      G1 X40 Y40 F600 ; move away from the endstops
      G1 H1 X-50 ; fine home X
      G1 H1 Y-50 ; fine home Y
      G1 X130 Y125 F3000        ; go to first bed probe point and home Z
      G30                     ; home Z by probing the bed
      
      ; Uncomment the following lines to lift Z after probing
      ;G91                    ; relative positioning
      ;G1 Z-5 F50             ; lift Z relative to current position
      ;G90                    ; absolute positioning
      
      
      
      ; homex.g
      ; called to home the X axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Apr 23 2021 22:59:43 GMT-0600 (Mountain Daylight Time)
      G91               ; relative positioning
      G1 H1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass)
      G1 X30 F360       ; go back a few mm
      G1 H1 X-50 F360  ; move slowly to X axis endstop once more (second pass)
      G90               ; absolute positioning
      
      ; homey.g
      ; called to home the Y axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Apr 23 2021 23:00:02 GMT-0600 (Mountain Daylight Time)
      G91               ; relative positioning
      G1 H1 Y-255 F1000 ; move quickly to Y axis endstop and stop there (first pass)
      G1  Y30 F1000      ; go back a few mm
      G1 H1 Y-50 F360  ; move slowly to Y axis endstop once more (second pass)
      G90               ; absolute positioning
      
      

      IMG_20210424_143842947.jpg

      Phaedruxundefined 1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator @Dad003
        last edited by Phaedrux

        @dad003 said in Problem with core XY homing:

        ; Endstops
        M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin io0.in
        M574 Y1 S1 P"1.io1.in" ; configure active-high endstop for high end on Y via pin io1.in

        What kind of endstops do you have and how are they connected?
        One of them is inverted and the other is connected to an expansion?

        Could you show a video of the behaviour to help me understand what you mean?

        Can you also provide the results of sending M122 and M98 P"config.g" in the gcode console?

        Z-Bot CoreXY Build | Thingiverse Profile

        Dad003undefined o_lampeundefined 3 Replies Last reply Reply Quote 0
        • Dad003undefined
          Dad003 @Phaedrux
          last edited by

          @phaedrux

          I didnt touch the limit switch they were from my cartesian setup , same than what was working before , one is plug on the mainboard and the other on the expansion that is correct

          here when the X home work
          https://www.youtube.com/watch?v=NdWEAsdzKZE

          when Y home work
          https://www.youtube.com/watch?v=zbjCIbW465I

          now has you can see the homing work , now if i press home X than Y , not homeall

          here the behaviour i get, X axis never went back to the limit switch

          https://www.youtube.com/watch?v=CBNLU2vLte0

          1 Reply Last reply Reply Quote 0
          • Dad003undefined
            Dad003 @Phaedrux
            last edited by

            @phaedrux

            i tested something here i removed the second homing pass on bot X and y , didnt get the weird homing behaviour maybe i just need to remove the second pas in the home all as well maybe .

            Dad003undefined 1 Reply Last reply Reply Quote 0
            • Dad003undefined
              Dad003 @Dad003
              last edited by

              so i tested this again , home all doesnt get weird behaviour and seem to actually track to the number it move ,

              modified home all that work

              ; homeall.g
              ; called to home all axes
              ;
              ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Apr 23 2021 23:00:19 GMT-0600 (Mountain Daylight Time)
              G91 ; relative mode
              G1 H1 X-240 Y-240 F1000 ; coarse home X or Y
              G1 H1 X-240 ; coarse home X
              G1 H1 Y-240 ; coarse home Y
              G1 X130 Y125 F3000        ; go to first bed probe point and home Z
              G30                     ; home Z by probing the bed
              
              ; Uncomment the following lines to lift Z after probing
              ;G91                    ; relative positioning
              ;G1 Z-5 F50             ; lift Z relative to current position
              ;G90                    ; absolute positioning
              
              
              

              while homing X alone , it reach the limit switch web control show 0 , homing Y hit the switch than Y show 0 but X has now a negative number even if it didnt move

              Dad003undefined 1 Reply Last reply Reply Quote 0
              • Dad003undefined
                Dad003 @Dad003
                last edited by Dad003

                i added a g92 in all homing program now the axis after they home do not get change to a negative value anymore and everything seem to track correctly . i will test more and come back if any issue . this conversion has been a lot of headache so far from the config .

                fcwiltundefined 1 Reply Last reply Reply Quote 0
                • fcwiltundefined
                  fcwilt @Dad003
                  last edited by

                  @dad003 said in Problem with core XY homing:

                  i added a g92 in all homing program now the axis after they home do not get change to a negative value anymore and everything seem to track correctly . i will test more and come back if any issue . this conversion has been a lot of headache so far from the config .

                  Do you understand what a G1 H1 move does when the endstop of the axis is triggered?

                  Frederick

                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                  Dad003undefined 1 Reply Last reply Reply Quote 0
                  • Dad003undefined
                    Dad003 @fcwilt
                    last edited by

                    @fcwilt

                    Yes when the endstop is trigger is zero the coord ,but in my case i had weird behavior for unknown reason, i had to find a workaround until somebody has a better solution

                    fcwiltundefined 1 Reply Last reply Reply Quote 0
                    • fcwiltundefined
                      fcwilt @Dad003
                      last edited by

                      @dad003 said in Problem with core XY homing:

                      @fcwilt

                      Yes when the endstop is trigger is zero the coord ,but in my case i had weird behavior for unknown reason, i had to find a workaround until somebody has a better solution

                      That is not correct.

                      When the endstop is triggered the axis position is set to the axis min or max value as specified in the M208 command for that axis.

                      If the M574 command for the endstop specifies low end then the axis min value is used.

                      If the M574 command for the endstop specifies high end then the axis max value is used.

                      That is likely why you are not getting the values you are expecting.

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      1 Reply Last reply Reply Quote 0
                      • o_lampeundefined
                        o_lampe @Phaedrux
                        last edited by o_lampe

                        @phaedrux said in Problem with core XY homing:

                        @dad003 said in Problem with core XY homing:

                        ; Endstops
                        M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin io0.in
                        M574 Y1 S1 P"1.io1.in" ; configure active-high endstop for high end on Y via pin io1.in

                        What kind of endstops do you have and how are they connected?
                        One of them is inverted and the other is connected to an expansion?

                        Could you show a video of the behaviour to help me understand what you mean?

                        Can you also provide the results of sending M122 and M98 P"config.g" in the gcode console?

                        @Dad003
                        What Phaedrux wanted to point out, is you have a typo in the definition of the Y-endstop:

                        M574 Y1 S1 P"1.io1.in"  
                        should be 
                        M574 Y1 S1 P"!io1.in"  
                        

                        Everything you've done are just bandaids to coverr the real problem

                        Dad003undefined 1 Reply Last reply Reply Quote 0
                        • Dad003undefined
                          Dad003 @o_lampe
                          last edited by Dad003

                          @o_lampe that limit switch is on an expansion board not the mainboard .

                          mainboard control 2x Z , 2x Y, 2x extruder expansion board has the 2 X axis motor with that limit switch. if i remember correctly the limitation of the expansion board the limit switch has to be with the board controlling the axis

                          @phaedrux

                          	m122
                          === Diagnostics ===
                          RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode)
                          Board ID: 08DJM-956L2-G43S8-6JTDJ-3SS6L-9816H
                          Used output buffers: 3 of 40 (21 max)
                          === RTOS ===
                          Static ram: 149788
                          Dynamic ram: 93996 of which 52 recycled
                          Never used RAM 114996, free system stack 200 words
                          Tasks: NETWORK(ready,193) ETHERNET(blocked,119) HEAT(blocked,297) CanReceiv(blocked,848) CanSender(blocked,371) CanClock(blocked,352) TMC(blocked,51) MAIN(running,1119) IDLE(ready,19)
                          Owned mutexes:
                          === Platform ===
                          Last reset 01:22:24 ago, cause: power up
                          Last software reset at 2021-04-24 23:39, reason: User, GCodes spinning, available RAM 114996, slot 0
                          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
                          Aux1 errors 0,0,0
                          MCU temperature: min 8.7, current 22.5, max 22.8
                          Supply voltage: min 12.2, current 12.3, max 12.3, under voltage events: 0, over voltage events: 0, power good: yes
                          12V rail voltage: min 11.4, current 11.5, max 11.5, under voltage events: 0
                          Driver 0: position 0, standstill, reads 21815, writes 14 timeouts 0, SG min/max 0/0
                          Driver 1: position 0, standstill, reads 21815, writes 14 timeouts 0, SG min/max 0/0
                          Driver 2: position 0, standstill, reads 21815, writes 14 timeouts 0, SG min/max 0/0
                          Driver 3: position 0, standstill, reads 21815, writes 14 timeouts 0, SG min/max 0/0
                          Driver 4: position 0, standstill, reads 21816, writes 14 timeouts 0, SG min/max 0/0
                          Driver 5: position 0, standstill, reads 21816, writes 14 timeouts 0, SG min/max 0/0
                          Date/time: 2021-04-25 18:40:36
                          Slowest loop: 42.58ms; fastest: 0.06ms
                          === Storage ===
                          Free file entries: 9
                          SD card 0 detected, interface speed: 25.0MBytes/sec
                          SD card longest read time 3.2ms, write time 9.3ms, max retries 0
                          === Move ===
                          DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000
                          === MainDDARing ===
                          Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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 = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
                          Heater 0 is on, I-accum = 0.2
                          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 doing "M190 S85" 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.
                          === Network ===
                          Slowest loop: 44.97ms; 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 1 0 0
                          Socket states: 5 2 2 2 2 2 0 2
                          === Filament sensors ===
                          Extruder 0 sensor: ok
                          Extruder 1 sensor: ok
                          === CAN ===
                          Messages queued 19769, send timeouts 0, received 16, lost 0, longest wait 1ms for reply type 6042, free buffers 48
                          

                          Expansion board

                          m122 b1
                          Diagnostics for board 1:
                          Duet EXP3HC firmware version 3.2.2 (2021-02-11)
                          Bootloader ID: not available
                          Never used RAM 154800, free system stack 198 words
                          HEAT 92 CanAsync 94 CanRecv 84 TMC 64 MAIN 317 AIN 259
                          Last reset 00:06:23 ago, cause: software
                          Last software reset data not available
                          Driver 0: position 0, 80.0 steps/mm,  standstill, reads 48852, writes 11 timeouts 0, SG min/max 0/0
                          Driver 1: position 0, 160.0 steps/mm,  standstill, reads 48844, writes 21 timeouts 0, SG min/max 0/0
                          Driver 2: position 0, 160.0 steps/mm,  standstill, reads 48847, writes 21 timeouts 0, SG min/max 0/0
                          Moves scheduled 0, completed 0, in progress 0, hiccups 0
                          No step interrupt scheduled
                          VIN: 12.4V, V12: 11.5V
                          MCU temperature: min 44.9C, current 44.9C, max 44.9C
                          Ticks since heat task active 246, ADC conversions started 383988, completed 383988, timed out 0
                          Last sensors broadcast 0x00000000 found 0 249 ticks ago, loop time 0
                          CAN messages queued 37, send timeouts 0, received 3458, lost 0, free buffers 36
                          
                          M98 P"config.g"
                          HTTP is enabled on port 80
                          FTP is enabled on port 21
                          TELNET is enabled on port 23
                          Warning: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
                          
                          o_lampeundefined 1 Reply Last reply Reply Quote 0
                          • o_lampeundefined
                            o_lampe @Dad003
                            last edited by

                            @dad003 said in Problem with core XY homing:

                            @o_lampe that limit switch is on an expansion board not the mainboard .

                            OK, my bad.
                            Doesn't the switch on the expansion board also need the '!' to invert the input?

                            Dad003undefined 1 Reply Last reply Reply Quote 0
                            • Dad003undefined
                              Dad003 @o_lampe
                              last edited by

                              @o_lampe

                              no , like i say my printer started as a cartesian so when i switched to core xy , i didnt touch the config for the limit switch since they were working like they should .

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Unless otherwise noted, all forum content is licensed under CC-BY-SA