# Hybrid Corexy seems to need inversion

**URL:** https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968
**Category:** General Discussion
**Created:** [January 8, 2024, 3:22pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968 "2024-01-08T15:22:26Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![JConradie](https://avatars.discourse-cdn.com/v4/letter/j/8e7dd6/32.png) [@JConradie](https://klipper.discourse.group/u/JConradie)
#### Post date: [January 8, 2024, 3:22pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/1 "2024-01-08T15:22:26Z")

</div>

### Basic Information:

Printer Model: Custom  
 MCU / Printerboard: Manta M8p  
  
[klippy.log](https://klipper.discourse.group/uploads/short-url/dybh1uWI1qxmAzhPZzs9Kak1N00.log) (1.6 MB)

So I have an issue getting the X axis to realize which way it’s supposed to go. Logic inversion would solve my issue in a heartbeat but I can’t find any reference anywhere in the vastness of the klipper tuts and discussions on how to do that. I can get the X and Y moving in the right directions and homing in the right directions, the X axis just seems to be inverted in it’s coordinates. Physical X0 Y0 is X450 Y0 and moving X into + decreases the X coordinate value. How do I tell Klipper to invert the coordinates of X. Maybe I button on the screen or a setting in the config somewhere that I am missing?

---

<div class="post-metadata">

### Author: ![LifeOfBrian](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/lifeofbrian/32/2380_2.png) [@LifeOfBrian](https://klipper.discourse.group/u/LifeOfBrian)
#### Post date: [January 8, 2024, 3:51pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/2 "2024-01-08T15:51:49Z")

</div>

Fore left edge is defined as 0,0. So depending where your physical endstops are sitting or where you home sensorlessly you have to define the right coordinates respectively.  
And depending on that you might want to change the following parameter under the X and Y stepper sections:

```auto
homing_positive_dir:

```

Read here for further information on the parameters:

> **[Configuration reference - Klipper documentation](https://www.klipper3d.org/Config_Reference.html#stepper)**

Also read this knowledge base article about coordinates and homing:

> [@Understanding X and Y Axes Limits and Homing](https://klipper.discourse.group/t/understanding-x-and-y-axes-limits-and-homing/10779):
>
> The X and Y Axis Klipper needs to know from its printer.cfg settings how far the X and Y axes can safely move without hitting the printer’s frame. It also needs to know where the origin (X=0 / Y=0) is. This origin is the beginning of the usable printer bed. In the following, we assume a Cartesian printer that follows the conventions of a [Cartesian Coordinate System](https://en.wikipedia.org/wiki/Cartesian_coordinate_system). This is also the reason why it is a quasi-standard to define the origin as the left-front corner of the bed. This way, all logic…

---

<div class="post-metadata">

### Author: ![mykepredko](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mykepredko/32/2085_2.png) [@mykepredko](https://klipper.discourse.group/u/mykepredko)
#### Post date: [January 8, 2024, 4:37pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/3 "2024-01-08T16:37:45Z")

</div>

For my design of CoreXY printers, I have one of the X/Y stepper motors pointing upwards and the other down.

For this to work properly, I have to invert the `DIR` pin on one of the X/Y steppers.

I don’t have a hard and fast rule on which axis, I just try one and if both movements are in the wrong direction then I invert the other.

---

<div class="post-metadata">

### Author: ![Sineos](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/sineos/32/18_2.png) [@Sineos](https://klipper.discourse.group/u/Sineos)
#### Post date: [January 8, 2024, 5:17pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/4 "2024-01-08T17:17:35Z")

</div>

As far as I’m aware, this kinematics is quite similar to the regular CoreXY kinematics but with the difference that stepper A is basically direct proportional to Y while stepper B follows the CoreXY rules of being proportional to X minus Y.

So likely the solution to this issue is a similar approach as described here: [Initial Startup | Voron Documentation](https://docs.vorondesign.com/build/startup/#xy-homing-check) but limited to one stepper only

But again this is only an assumption as I have exactly zero experience with this kinematics.

---

<div class="post-metadata">

### Author: ![JConradie](https://avatars.discourse-cdn.com/v4/letter/j/8e7dd6/32.png) [@JConradie](https://klipper.discourse.group/u/JConradie)
#### Post date: [January 8, 2024, 5:47pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/6 "2024-01-08T17:47:48Z")

</div>

Thanks Sineos you are correct, my issue however is the logic of the axis. I would like to be able to just have it count the other way, so what it though was going into the positive would now just be going into the negative. I am most probably just missing something super obvious to everyone else.

---

<div class="post-metadata">

### Author: ![Sineos](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/sineos/32/18_2.png) [@Sineos](https://klipper.discourse.group/u/Sineos)
#### Post date: [January 8, 2024, 6:42pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/7 "2024-01-08T18:42:45Z")

</div>

Usually Klipper determines this automatically. As mentioned by @LifeOfBrian this automatism can be overruled by setting `homing_positive_dir` but today no real case is known where this setting needs to be set.

- If `position_endstop` setting is closer to `position_min` then `homing_positive_dir` is automatically false and homing occurs towards zero (your case)
- If `position_endstop` setting is closer to `position_max` then `homing_positive_dir` is automatically true and homing occurs away from zero

So, in theory, it should work for your case if the homing indeed happens towards the relevant endstop pins AND your endstop switches are in the front-left corner.  
`position_max` in your case is max allowable distance the axis can safely travel from its origin (0) point.

---

<div class="post-metadata">

### Author: ![JConradie](https://avatars.discourse-cdn.com/v4/letter/j/8e7dd6/32.png) [@JConradie](https://klipper.discourse.group/u/JConradie)
#### Post date: [January 9, 2024, 12:54pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/8 "2024-01-09T12:54:34Z")

</div>

Please see here: [klipper-OVO/klippy/kinematics/hybrid\_corexy.py at master · Bablinski/klipper-OVO · GitHub](https://github.com/Bablinski/klipper-OVO/blob/master/klippy/kinematics/hybrid_corexy.py)

Do you think that will lead to me being able to tell the firmware to just think the other way around?

---

<div class="post-metadata">

### Author: ![Sineos](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/sineos/32/18_2.png) [@Sineos](https://klipper.discourse.group/u/Sineos)
#### Post date: [January 9, 2024, 1:32pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/9 "2024-01-09T13:32:42Z")

</div>

As I have no experience here, I cannot meaningful assist. Try it

---

<div class="post-metadata">

### Author: ![JConradie](https://avatars.discourse-cdn.com/v4/letter/j/8e7dd6/32.png) [@JConradie](https://klipper.discourse.group/u/JConradie)
#### Post date: [January 9, 2024, 3:45pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/10 "2024-01-09T15:45:52Z")

</div>

will do. this is just to make up at least 10 characters

---

<div class="post-metadata">

### Author: ![system](https://global.discourse-cdn.com/free1/uploads/klipper/original/1X/64419bf2aac6639e6ef5cef200dcd456b0a01ac3.png) [@system](https://klipper.discourse.group/u/system)
#### Post date: [March 9, 2024, 3:46pm UTC](https://klipper.discourse.group/t/hybrid-corexy-seems-to-need-inversion/12968/11 "2024-03-09T15:46:10Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
