Core XYU or XYUV



  • Hi all,

    Been a long time duet user, but this is my first post here - so hello ! 🙂

    So, I designed this last year, but since having a little more time on my hands, I've finally had some time to build it

    Anyway... My question is, Is this Core XYU or XYUV, I've been struggling this morning getting everything moving the right way.

    IMG_20200515_115912.jpg
    IMG_20200515_115921.jpg
    IMG_20200515_115925.jpg

    Any help appreciated !


  • administrators

    You have 2 motors per belt. That makes it CoreXYUV.



  • Thank you - That's what I thought 😀
    Just checking the obvious...
    This is M669 K8 with FW 2.05, and then setup as per a 'normal' corexy but with additional axes in config.g

    Do I need to home V ? Do I hide V ?

    I don't need to do any other mapping etc ?

    I only ask as I'm spent a couple of hours trying to get everything moving the right way so far


  • administrators

    You should hide V and not home it.



  • Thank you



  • Getting somewhere now - this is making me feel like a noob all over again !

    So.. I can home x (lh tool to left)
    I can home y to mc front
    I can home u (rh tool to right)

    Then, if i try to move Y, it's like the motors don't go in the right directions ?

    I must be doing something wrong !?!?

    EDIT : Can still move X and U in there correct directions - just Y is doing the wrong thing



  • @curlypaul Off topic I know but that's an awesome looking build! Maybe not the way that I would do things but none the less awesome. Did you make those aluminium parts or have them machined for you?



  • @curlypaul Back on topic - might be best if you post your config.g and homing files.



  • Thankyou - I'll take that from seeing your build 🙂

    All machined at work, it's meant to be a toolchanger at some point also - that was the original plan

    It's sister machine has been running since last november, but only as a single head, but as with everything, life and work get in the way 😞



  • Here we go, only using stall for homing at present for getting it going

    config.g

    G90                                             ; send absolute coordinates...
    M83                                             ; ...but relative extruder moves
    M550 P"Dual Head"                               ; set printer name
    
    M669 K8                                         ; select CoreXYUV mode
    
    ; Network
    M552 S1                                         ; enable network
    M586 P0 S1                                      ; enable HTTP
    M586 P1 S0                                      ; disable FTP
    M586 P2 S0                                      ; disable Telnet
    
    ; Drives
    M569 P0 S1	                                    ; X physical drive 0 goes forwards
    M569 P1 S1                                      ; Y physical drive 1 goes forwards
    M569 P2 S1                                     ; Z physical drive 2 goes forwards
    M569 P3 S0                                      ; U physical drive 3 goes forwards
    M569 P4 S1                                      ; V physical drive 4 goes forwards
    M569 P5 S1                                      ; E0 physical drive 0 goes forwards
    M569 P6 S1                                      ; E1 physical drive 1 goes forwards
    
    M584 X0 Y1 U3 V4 Z2 E5:6 P4                           	; set drive mapping
    M350 X16 Y16 U16 V16 Z16 E16:16 I1                      ; configure microstepping with interpolation
    M92 X160 Y160 U160 V160 Z2560 E420:420     				; set steps per mm
    M566 X1200 Y1200 U1200 V1200 Z12 E120:120						    ; set maximum instantaneous speed changes (mm/min)
    M203 X9000 Y9000 U9000 V9000 Z360 E1200:1200			; set maximum speeds (mm/min)
    M201 X1000 Y1000 U1000 V1000 Z500 E250:250      		; set accelerations (mm/s^2)
    M906 X1400 Y1400 U1400 V1400 Z1400 E1200:1200 I30       ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                         		; Set idle timeout
    
    ; Axis Limits
    M208 X-5 Y-5 U-5 V-5 Z0 S1                            ; set axis minima
    M208 X400 Y350 U400 V350 Z300 S0                          ; set axis maxima
    
    ; Endstops
    M574 X1 Y1 U1 V1 S3                                   ; set endstops controlled by motor stall detection
    M574 Z1 S2                                      ; set endstops controlled by probe
    
    ; Z-Probe
    M307 H3 A-1 C-1 D-1                             ; disable heater on PWM channel for BLTouch
    M558 P9 H5 F120 T9000                           ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X0 Y0 Z2.5                             ; set Z probe trigger value, offset and trigger height
    M557 X-35:215 Y-45:195 S20                      ; define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                                ; disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 R4700                     ; set thermistor + ADC parameters for heater 0
    M143 H0 S90                                     ; set temperature limit for heater 0 to 90C
    M305 P1 T100000 B4138 R4700                     ; set thermistor + ADC parameters for heater 1
    M143 H1 S280                                    ; set temperature limit for heater 1 to 280C
    M305 P2 T100000 B4138 R4700                     ; set thermistor + ADC parameters for heater 2
    M143 H2 S280                                    ; set temperature limit for heater 2 to 280C
    
    ; Fans
    M106 P0 S0 I0 F50 H-1                           ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F50 H1 T45                        ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F50 H2 T45 X125                     ; set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P3 S1 I0 F50 H-1                           ; set fan 3 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 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
    M563 P1 D1 H2 F3 X3                              ; define tool 1
    G10 P1 X0 Y0 Z0                                 ; set tool 1 axis offsets
    G10 P1 R0 S0                                    ; set initial tool 1 active and standby temperatures to 0C
    
    

    homeu.g

    M400 			; make sure everything has stopped before we make changes
    G4 P100			; wait 400ms
    M574 U1 V1 S3 		; set endstops to use motor stall
    
    M913 U50 V50		; drop motor currents to 50%
    M915 H200 U V S3 R0 F0 	; set X and Y to sensitivity 3, do nothing when stall, unfiltered
    
    G91
    G1 H2 Z5 F9000    ; lift Z relative to current position
    G1 H1 U705 F4000 ; move quickly to X axis endstop and stop there (first pass)
    G1 H2 U-6 F5000    ; go back a few mm
    G1 H1 U705 F3000  ; move slowly to X axis endstop once more (second pass)
    G1 H2 Z-5 F9000   ; lower Z again
    
    G92 U400
    
    M400 			; make sure everything has stopped before we reset the motor currents
    G4 P100			; wait 400ms
    M913 U100 V100 		; motor currents back to 100%
    
    M574 U1 S0 		; Define active low and unused microswitches
    
    G1G91U-5.F5000
    

    homex.g

    M400 			; make sure everything has stopped before we make changes
    G4 P100			; wait 400ms
    M574 X1 Y1 S3 		; set endstops to use motor stall
    
    M913 X50 Y50		; drop motor currents to 50%
    M915 H200 X Y S3 R0 F0 	; set X and Y to sensitivity 3, do nothing when stall, unfiltered
    
    G91
    G1 H2 Z5 F9000    ; lift Z relative to current position
    G1 H1 X-705 F4000 ; move quickly to X axis endstop and stop there (first pass)
    G1 H2 X6 F5000    ; go back a few mm
    G1 H1 X-705 F3000  ; move slowly to X axis endstop once more (second pass)
    G1 H2 Z-5 F9000   ; lower Z again
    
    G92 X0
    
    M400 			; make sure everything has stopped before we reset the motor currents
    G4 P100			; wait 400ms
    M913 X100 Y100 		; motor currents back to 100%
    
    M574 X1 S0 		; Define active low and unused microswitches
    
    G1G91X5.F5000
    
    G90  
    

    homey.g

    G91              ; relative positioning
    
    M400 			; make sure everything has stopped before we make changes
    M574 X1 Y1 S3 		; set endstops to use motor stall
    
    
    M913 X40 Y40		; drop motor currents to 25%
    M915 H200 X Y S3 R0 F0 	; set X and Y to sensitivity 3, do nothing when stall, unfiltered
    
    G1 H2 Z5 F9000    ; lift Z relative to current position
    
    G1 S1 Y-700 F4000        	; move all carriages up 700mm, stopping at the endstops
    G1 Y5
    G92 Y0
    
    G4 X2000
    
    G1 S1 Y-700 F4000        	; move all carriages up 700mm, stopping at the endstops
    G1 Y5
    G92 Y0
    
    G1 H2 Z-5 F9000   ; lower Z again
    
    
    G90 			; back to absolute positioning
    
    M400 			; make sure everything has stopped before we reset the motor currents
    G4 P100			; wait 400ms
    M913 X100 Y100 		; motor currents back to 100%
    
    M574 Y1 S0 		; Define active low and unused microswitches
    


  • @curlypaul I have an idea but I might be on the wrong track. I need to clarify a few things in my mind - bear with me.

    Looking at your rig, I'm assuming that you just have one gantry that moves towards the back and front and that on that gantry you have two independent heads that move left to right yes? If so, then and Y and V are common but X and U are separate yes?

    You are homing X to the left but U to the right yes?

    But you have all the end stops set to the low end (M574). So what I think you might need to do is change the U end stop to be at the high end (change M574 U1 to U2). But then you'll need to change the motor directions as well (I think - because you say that it currently homes correctly but we need to change the endstop from being low end to high end). Maybe David can confirm or otherwise.



  • I noticed the U was U1 not U2 after I posted the code - changed to U2 still the same

    Everything else you typed was correct



  • @curlypaul You've got a couple of M574s in your home U as well as in config.g. Do they now all match?



  • @deckingman Yes - Both U2



  • @curlypaul I've just re-read you post - lack of caffeine on my part - it's Y that you are having problems with not U. So you can home Y fine but you can't move Y "normally". That's a bit puzzling. My printer is a bit different because I have two completely separate gantries (actually 3 because it's now CoreXYUVAB) but what I have to do is map the motors to individual axes for homing, then combine them for "normal" movement. So maybe what you need to do is, after homing Y combine the Y and V motors. So send M584 Y1:4. if that works, then change your config.g to be M584 X0 Y1:4 U3 V4 Z2 E5:6 (not sure about the "P" - maybe leave it as 4). That might work (no guarantees) ☺



  • @deckingman - can't hurt to try ! - thank you for taking the time 👍



  • Well, that made for some strange movements

    So, I can home X, Y and then U - all fine then if I try to move Y it doesn't move correctly and the belts/motors make angry noises (Sorry - I spent ages thinking of a better description)
    Yet X and U still move correctly

    From a fresh power on situation, if I send M564 H0,same as homing, again x moves okay, y moves okay, u moves okay. Go back to y - angry noises again
    If I move x, then u - all okay but then if I move Y - it doesn't like it



  • @curlypaul "Angry noises" is nicely descriptive. 🙂 It seems that the motors are fighting against each other - or maybe one or more is stationary.

    I'm looking at your home Y file and trying to figure out what's different between a G1 Y move there and a G1 Y move outside of home Y. 2 things leap out at me (but I'm not sure how it helps).

    Firstly, you seem to have a scattering of "G1 S1" moves in amongst the "G1 H2s". So you ought to correct them (edit - change them from S1 to H1).

    Secondly H1 and H2 moves select individual motor mode. So I'm guessing that if you send G1 H2 Ynn it will work, but if you send G1 Ynn (without the "H") you'll get "angry noises". Can you check if that's the case?



  • @deckingman - I didn't spot the S1 in HomeY, That's gone now - still the same

    In the meantime, I thought I'd try swapping the carriages - so U is now RH / X LH still the same issue

    It's really baffling me, all axis move the correct way and amount on their own, just whenever need to 'mix' axes (if that makes sense) Y goes wrong.

    I unhid V and sent a M564 H0. U and V move correct ways and I can then move X try and move Y .... angry noises

    I reset... I move X,U and Y, and X,Y and U try and move V - angry noises 😞



  • Endeavoured to make a video of whats going on..

    https://youtu.be/z0dNBMlm_lQ

    This is with carriages swapped from original - as mentioned in previous post


Log in to reply