MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.3k stars 19.25k forks source link

Octopus V1.1 - Z_MULTI_ENDSTOPS - Not working #24692

Closed lukasloetkolben closed 2 years ago

lukasloetkolben commented 2 years ago

Did you test the latest bugfix-2.1.x code?

No, but I will test it now!

Bug Description

I am trying to configure my Octopus V1.1 with two independent Z-Axis Motors and two Endstops. I defined these endstops:

#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG
#define USE_IMAX_PLUG

Drivers:

#define X_DRIVER_TYPE  TMC2209
#define Y_DRIVER_TYPE  TMC2209
#define Z_DRIVER_TYPE  TMC2209
#define Z2_DRIVER_TYPE TMC2209
#define E0_DRIVER_TYPE TMC2209

And enabled Multi Endstops:

#ifdef Z2_DRIVER_TYPE
  #define Z_MULTI_ENDSTOPS          // Other Z axes have their own endstops
  #if ENABLED(Z_MULTI_ENDSTOPS)
    #define Z2_USE_ENDSTOP   _IMAX_   // Z2 endstop board plug. Don't forget to enable USE_*_PLUG.
    #define Z2_ENDSTOP_ADJUSTMENT 0   // Z2 offset relative to Y endstop
  #endif 
  [...]

When i am compiling like this M119 does not show the z2_max status. If i change #define Z2_USE_ENDSTOP _IMAX_ to -> #define Z2_USE_ENDSTOP _XMAX_ It does show z2_max with M119.

Can anyone help me with this issue?

Bug Timeline

No response

Expected behavior

No response

Actual behavior

No response

Steps to Reproduce

No response

Version of Marlin Firmware

2.1.1

Printer model

Qidi X-Plus

Electronics

BTT OCTOPUS V1.1

Don't forget to include

Additional information & file uploads

config.zip

GMagician commented 2 years ago

why do you have USE_IMAX_PLUG? Edit: ah ok...multi endstop Z2 uses IMAX

GMagician commented 2 years ago

What pin do you expect is connected to IMAX? I can't see it in pins definition, but I'm not used with such board...

GMagician commented 2 years ago

I can't see any I_MAX_PIN defined in .h probably you have to: #define I_MAX_PIN Z2_DIAG_PIN somewhere, maybe in octopus 1.1 .h file

lukasloetkolben commented 2 years ago

i have connected the Z2 Endstop to Z2_DIAG_PIN (PG11) What does #define Z2_USE_ENDSTOP _IMAX_ actually mean? I can only find IMAX in macros.h #define _IMAX_ 0x24, i have not quite understood how this works. I am only surprised that its woking with XMAX, but then X homing isn't working anymore.

thisiskeithb commented 2 years ago

This Issue Queue is for Marlin bug reports and development-related issues, and we prefer not to handle user-support questions here. (As noted on this page.) For best results getting help with configuration and troubleshooting, please use the following resources:

After seeking help from the community, if the consensus points to a bug in Marlin, then you should post a bug report.

lukasloetkolben commented 2 years ago

Isn't it a bug?

GMagician commented 2 years ago

@lukasloetkolben code does something like in code:

#if Z2_USE_ENDSTOP == _XMIN_
  #define Z2_MAX_PIN X_MIN_PIN

then defines pin used as endstop. Code supports only X, Y, Z MIN/MAX then IMAX should say to use I axis MAX endstop, but this isn't supported by code.

lukasloetkolben commented 2 years ago

Thank you. I noticed the same yesterday. I am using Y-MIN Plug now, but it doesn't make sense to me.

GMagician commented 2 years ago

Maybe defining: #define Z2_USE_ENDSTOP _E?DIAG_ // Z2 endstop board plug. Don't forget to enable USE_*_PLUG.

and replace ? with a number from 0 to 3 may solve (and you have to connect to PG12 to 15)

GMagician commented 2 years ago

or even you may try to add: #define Z2_MAX_PIN Z2_DIAG_PIN commenting Z2_USE_ENDSTOP

github-actions[bot] commented 2 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.