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.
Veti last edited by
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?
; 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 ; 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 ; 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
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.
Veti last edited by
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
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.
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.
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.
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.