Things have seemingly gone from bad to worse. First I tried removing the max endstop cables from the ramps and the trouble persisted after homing and jogging around a bit. Then I tried enabling the max endstops in Marlin, but they seemed to be already enabled as evidenced by the code below (please tell me if I am reading the config file wrong). Then I removed the endstop cables completely and the trouble has persisted despite long power downs and reflashing. The disable settings were already commented out in the config. Unless enabling the endstops is done somewhere other than configuration.h or configuration_adv.h, they should be good to go. Tomorrow I’ll start looking at the soldering and the motors themselves. I may try swapping the drivers around as well. If it is indeed a power issue, that could be the culprit. After looking more closely at the motors as they struggle to move, I’m no longer convinced it is trying to go backwards as much as it is unable to move. That may indeed be a connection problem or some other power problem. Steve, I apologize for doubting you. You may be right after all. I spent a whole day soldering and wiring those things, I thought for sure they would be ok. Especially after working perfectly when not endstopped, and having trouble only while endstopped. I guess coincidences of this magnitude must happen eventually. I’ll keep at it until the problem is resolved, and I’ll inform you of the results. Unless anyone thinks of anything that hasn’t already been mentioned, I must admit that we’ve come up with all the possible problems and solutions. Thanks for the help. Sorry for my arrogance.
// Uncomment the following line to enable CoreXY kinematics // #define COREXY // coarse Endstop Settings #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors #ifndef ENDSTOPPULLUPS // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined // #define ENDSTOPPULLUP_XMAX // #define ENDSTOPPULLUP_YMAX // #define ENDSTOPPULLUP_ZMAX // #define ENDSTOPPULLUP_XMIN // #define ENDSTOPPULLUP_YMIN // #define ENDSTOPPULLUP_ZMIN #endif #ifdef ENDSTOPPULLUPS #define ENDSTOPPULLUP_XMAX #define ENDSTOPPULLUP_YMAX #define ENDSTOPPULLUP_ZMAX #define ENDSTOPPULLUP_XMIN #define ENDSTOPPULLUP_YMIN #define ENDSTOPPULLUP_ZMIN #endif // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. //#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS // Disable max endstops for compatibility with endstop checking routine #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS) #define DISABLE_MAX_ENDSTOPS #endif