Mirrored print and confused by home direction



  • So, I'm in the process of building a coreXY idex printer and currently at the stage of just using one tool head as a normal corexy printer. (D-Bot/CrusaXY HB1 hybrid).

    I'm very much from a marlin printer background so being getting my head around RepRap and Duet. I had everything setup included sensorless homing, PINDA probe etc. I had the printer homing to how my D-bot did which was back left as X Min Y Max, or at least I thought, a benchy came out mirrored on the Y axis so a quick google told me the Y axis was actually at Y Min.

    But I can't work out how to correct this, I trying change motor direction in the config.g, high/low endstops and even flipping the Y motor wires in the connector, but it's start to confuse me and it made the X and Y motor home incorrectly ie press home X and Y would home?

    Can anyone suggest things to look at please. I'm using a Duet 3 & RPi 3B.

    Many thanks,

    James.



  • power your config.g and your homing files.



  • Here's what they currently are, to be honest I started getting confused and was trying this without taking note, to I'm guess things will be wrong but not sure if that's the issue?

    Config.g

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Oct 30 2020 10:16:50 GMT+0000 (Greenwich Mean Time)
    
    ; General preferences
    G90                                                   ; send absolute coordinates...
    M83                                                   ; ...but relative extruder moves
    M550 P"Duet 3"                                        ; set printer name
    M669 K1                                               ; select CoreXY mode
    
    ; Drives
    M569 P0.0 S0                                          ; physical drive 0.0 goes backwards
    M569 P0.1 S1                                          ; physical drive 0.1 goes backwards
    M569 P0.2 S1                                          ; physical drive 0.2 goes forwards
    M569 P0.4 S0                                          ; physical drive 0.4 goes backwards
    M584 X0.0 Y0.1 Z0.2 E0.4                              ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                               ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E133.00                     ; set steps per mm
    M566 X600.00 Y600.00 Z12.00 E120.00                   ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z180.00 E1500.00             ; set maximum speeds (mm/min)
    M201 X3000.00 Y3000.00 Z100.00 E10000.00              ; set accelerations (mm/s^2)
    M906 X800 Y800 Z900 E900 I50                          ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                               ; Set idle timeout
    
    ; Axis Limits
    M208 X-30 Y0 Z0 S1                                    ; set axis minima
    M208 X300 Y270 Z300 S0                                ; set axis maxima
    
    ; Endstops
    M574 X1 S3                                            ; configure sensorless endstop for Low end on X
    M574 Y1 S3                                            ; configure sensorless endstop for Low end on Y
    M574 Z1 S2                                            ; configure Z-probe endstop for low end on Z
    
    ; Stall Detection
    M915 X Y S40 F0 H200 R0								  ; (Pxx:xx:xxx - Motor drivers, Snnn - Sensitivity to stall (-63->+63), 
    													  ; Fn - Filtering (1-Y 0-N), Rn - Action to take (0 -none,
    													  ; 1- report, 2- pause, 3- pause/home/resume), min steps/sec)
    
    ; Z-Probe
    ;M950 S0 C"io7.out"                                    ; create servo pin 0 for BLTouch
    M558 P5 C"^io7.in" H5 F360 T6000                      ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X45 Y5 Z0                                   ; set Z probe trigger value, offset and trigger height
    M557 X0:280 Y0:270 S20                              ; define mesh grid
    
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B3950          ; 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 B0 S1.00                                      ; disable 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"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1
    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
    
    ; Fans
    M950 F0 C"out4" Q500                                  ; create fan 0 on pin out4 and set its frequency
    M106 P0 S0 H-1                                        ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out7" Q500                                  ; create fan 1 on pin out7 and set its frequency
    M106 P1 S1 H1 T50                                     ; set fan 1 value. Thermostatic control is turned on
    
    ; 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
    
    ; Custom settings are not defined
    M501                                                  ; load saved parameters from non-volatile memory
    
    

    Homex.g

    ; homex.g
    ; called to home the X axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Oct 30 2020 10:16:50 GMT+0000 (Greenwich Mean Time)
    M400
    M913 X40 Y40 ; drop motor current to 40%
    M915 X S5 Y S0 R0 F0 ; set X and Y sensitivity, do nothing when stall, unfiltered
    M574 X1 S3 ; set endstops to use motor stall
    M400 G91; relative positioning
    G1 H2 Z10 F12000 ; lift Z relative to current position
    G1 H1 X-300 F5000 ; move X back stopping at the end stop
    G90 ; absolute positioning
    M400
    M913 X100 Y100 ; return current to 100%
    M400
    
    
    

    homey.g

    ; homey.g
    ; called to home the Y axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Oct 30 2020 10:16:50 GMT+0000 (Greenwich Mean Time)
    M400
    M913 X40 Y40 ; drop motor current to 40%
    M915 X S5 Y S0 R0 F0 ; set X and Y sensitivity, do nothing when stall, unfiltered
    M574 Y1 S3 ; set endstops to use motor stall
    M400 G91; relative positioning
    G1 H2 Z10 F12000 ; lift Z relative to current position
    G1 H1 Y-300 F5000 ; move Y back stopping at the end stop
    G90 ; absolute positioning
    M400
    M913 X100 Y100 ; return current to 100%
    M400
    
    
    
    

  • administrators

    First sort out the motors movement in the correct direction. See https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Testing_motor_movement. That will fix the mirrored print.

    When that is working, sort out your endstop configuration (M574 commands in config.g) and homing files. Don't touch the motor directions again.



  • @Rushmere3D said in Mirrored print and confused by home direction:

    Y Max,

    M574 Y1 S3 ; configure sensorless endstop for Low end on Y
    G1 H1 Y-300 F5000 ; move Y back stopping at the end stop

    your config and home are set up to home y at the minimum.

    change Y1 to Y2 and change the direction of the home to positive.

    also to get the motor movement correct please read this

    https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter



  • @dc42

    Hi thanks for that, I think I've fixed it. I followed the details in the link and ended up changing the direction and drive mapping via the config.g.

    Am I right in thinking I should be at X0 Y0 in the front left corner? i.e I should be homing to MIN in a normal setup. As that's what it does now and I'm happy with that.

    As for homing files, can I have it setup as I have it in the homeall.g, where it homes X, then Y and the Z. When trying the suggested details in the link, it wasn't always getting to the right place I'm guess because of the sensor less homing.

    I'll try another benchy tomorrow and hopefully it won't be mirrored.

    Thanks,

    James,



  • @Veti

    Yeah I think my config.g was messed up from changing things, I have read that it should home to MIN on X and Y in the from left. With your's and @dc42 help that's now happening.

    James.


  • administrators

    @Rushmere3D said in Mirrored print and confused by home direction:

    Am I right in thinking I should be at X0 Y0 in the front left corner? i.e I should be homing to MIN in a normal setup

    The convention is that X0 Y0 is in the front left corner. However, any other configuration that gives a right hand coordinate system (i.e. +Y direction 90deg anticlockwise from +X direction as seen from above) is acceptable.

    You can home to any corner you like, if you set up the M574 commands and homing files correctly. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration for how to rell RRF if your endstop switches are at the min or max ends of the axes, and https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_files (as amended by https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Homing_files for CoreXY and similar printers) for how to set up the homing files. Or let the online configuration tool generate the files for you.


  • Moderator

    @Rushmere3D said in Mirrored print and confused by home direction:

    D-bot did which was back left as X Min Y Max, or at least I thought

    The dbot layout in the build instructions is X min and Y max when 0,0 is at the front left corner.

    In addition to the documentation links already provided you might find these posts helpful on setting up corexy.

    https://forum.duet3d.com/topic/14971/vcore-pro-core-xy-the-x-and-y-axis-home-issue/4

    https://forum.duet3d.com/topic/12676/mirrored-x-axis/9


Log in to reply