Welcome! Log In Create A New Profile

Advanced

Reversing a CoreXY axis in firmware

Posted by cleo 
Reversing a CoreXY axis in firmware
December 19, 2020 07:46PM
I am trying to configure Marlin 2.0.7.2 for the relatively new Ender 6. Most everything works using the BOARD_CREALITY_V4 definition, however, the X axis does not home or move in the correct X+ direction. The Ender 6 is a CoreXY printer, and as with most other CoreXY printers, it uses X and Y-max endstops.

I am using these axis and endstop definitions in Configuration.h:

//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG

#define INVERT_X_DIR false
#define INVERT_Y_DIR true

#define X_HOME_DIR 1
#define Y_HOME_DIR 1


However, no combination of INVERT_X/Y_DIR definitions will yield the correct movement. Either the X axis will move correctly at the expense of Y (if invert X is true and Y is false), or X will move when Y should and vice versa (if they are both true or both false). The same occurs when defining CoreYX instead of CoreXY kinematics.

Are there other settings that can achieve the correct motion of the X axis? As it works correctly with the shipped Marlin version, I expect either the behavior was changed in newer versions of Marlin or Creality made a specific change to how the moves are calculated.

NB: I know this can be fixed by reversing the phases of one of the steppers. I am looking for a software solution for convenience in testing various firmwares and ease of use by others. Thanks.

Edited 2 time(s). Last edit at 12/19/2020 07:47PM by cleo.
Re: Reversing a CoreXY axis in firmware
December 19, 2020 08:23PM
One combination that most who are new to Core XY don't realise is that you may have to swap X and Y pins (ie effectively you have to swap X and Y stepper motors, but without unplugging )


From the description I would say you need invert X is true and invert Y is false and swap X and Y Step and direction pins over.


Also I was just starting the process of mapping out the pins pins ender 6, any chance you could add what you know for sure to [docs.google.com]
I was suspecting it is close to a v.4.2.2, but have not done anything other than step and direction and enable so far.

Edited 2 time(s). Last edit at 12/19/2020 08:28PM by Dust.
Re: Reversing a CoreXY axis in firmware
December 19, 2020 09:05PM
Quote
Dust

Also I was just starting the process of mapping out the pins pins ender 6, any chance you could add what you know for sure to [docs.google.com]
I was suspecting it is close to a v.4.2.2, but have not done anything other than step and direction and enable so far.

Sure. So far it is the same as v4.2.2. The heaters, filament sensor, z-probe (ie. BLTouch), and endstops all work using this definition. I made an additional change in the pins file to disable IIC_BL24CXX_EEPROM and enable SDCARD_EEPROM_EMULATION to go with the stock behavior and avoid touching the EEPROM in the LCD in case it is used for something else in stock configuration.

Edited 1 time(s). Last edit at 12/19/2020 09:05PM by cleo.
Re: Reversing a CoreXY axis in firmware
December 19, 2020 10:49PM
Quote
Dust
One combination that most who are new to Core XY don't realise is that you may have to swap X and Y pins (ie effectively you have to swap X and Y stepper motors, but without unplugging )

This worked. In combination with flashing the LCD with the Marlin DGUS resources, all board features appear to be working including the display. I was able to print a reasonable test cube at a layer height of 0.2 mm and a base speed of 100 mm/s (see attached image). I also attached my basic Configuration.h for the current bugfix version.
Attachments:
open | download - ender_6_marlin_test.jpeg (329 KB)
open | download - Configuration.h (92.2 KB)
Re: Reversing a CoreXY axis in firmware
April 29, 2021 12:57PM
Quote
Dust
One combination that most who are new to Core XY don't realise is that you may have to swap X and Y pins (ie effectively you have to swap X and Y stepper motors, but without unplugging )

Trying to replace my burned up 4.3.1 board from an Ender 6 with a 4.2.7 meant for an Ender 3. Can you give any further detail on how to swap the motors? When I power up the current board the motors won't move. I'm assuming they're trying to fight each other as I can't manually push the extruder or the bed around by hand.
Re: Reversing a CoreXY axis in firmware
April 29, 2021 08:11PM
@pb4ugoout

no this is not correct

in coreXY both stepper motors are free to move in either direction at the same time. In fact it is required.

if they both turn clockwise or anticlock wise the head moves in X axis
if one is reversed the head moves in the Y axis
if only one stepper moves the head moves diagonally

Your not moving is unrelated.

My guess is you have the motherboard set to BOARD_CREALITY_V4 when it needs to be BOARD_CREALITY_V427

Edited 1 time(s). Last edit at 04/30/2021 01:53AM by Dust.
Sorry, only registered users may post in this forum.

Click here to login