Common issues :wrong motor direction,Endstop hit...

Mark
Posts: 1553
Joined: Thu Aug 06, 2015 9:19 am

Common issues :wrong motor direction,Endstop hit...

Post by Mark » Fri Oct 09, 2015 5:33 pm

Common issues of 3D printer

(1)Axes go to wrong direction
Power on the printer, home the printer, see if all the motors run in the correct direction. When homing, all the axis will move towards the endstop, trigger it and then stop. If you cannot home the printer, then manually move the X Y Z motor one by one, see if it goes in the right direction as you told.

If not, for board GT2560/Sanguinonolu etc. that using the firmware based on arduino, change the corresponding settings here in the configuration.h tab of your firmware and upload it to your printer. And ready to hit the emergency stop button if necessary!

Note: you might need to install the firmwar twice cause you don't know it is true or false in the first place.


#define INVERT_X_DIR true // for Mendel set to false, for Orca setto true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set tofalse
#define INVERT_Z_DIR true // for Mendel set to false, for Orca setto true
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true,for geared extruder set to false

You can refer to the following link to install the firmware:
http://www.geeetech.com/forum/viewtopic ... 13&t=17181
111111111.jpg
111111111.jpg (191.72 KiB) Viewed 103688 times

For board GTM32 that using the Geeetech firmware based on STM32 controlling system, you can invert the motor direction throught the LCD panel:
Control-> printer settings-> X/Y/Z/E motor direction
and then save it here:
control -> store memory

(2)Motor noise
1.two axis don't stop when they hit their endstops.
If this happened, you need to check your endstop cable connection, the endstop cable connector on your mainboard may be not compatible with their axis. For example, the X axis endstop connector may connect to Y axis connector on your mainboard.
If only one axis endstop is not working, and the axis hit the endstop but not stop and make some noise. the endstop may be broken. you can have a check.

Power off the printer, manually put the 3 stepper motors in the middle of their axis, it will allow you to press the emergency button in time if something wrong happened. then power on your printer, the connect to your computer, and open Repetier Host input G-code:M119.
TIM图片20171230144934.png
TIM图片20171230144934.png (12.99 KiB) Viewed 71193 times
then your log will show as follows.
TIM图片20171230144939.png
TIM图片20171230144939.png (4.19 KiB) Viewed 71193 times
then press endstop with your end. here I take Z axis as a example. If Z axis endstop changes from "open" to "TRIGGERED", the endsop is OK, if it is still "open", there is problem. you can swap a good endstop with Z axis endstop. If the new endstop can work now, you need a new endstop.
TIM图片20171230144943.png
TIM图片20171230144943.png (8.72 KiB) Viewed 71193 times

2.The motor only goes in one direction
If you don't home the printer after you start it, all the axes will regard the original coordinates as the home position and will only go in one direction.

3.Motors do not move or skipping steps
If one of your motor is just vibrate or very hot or skipping steps, it might be the driver voltage not proper, you can check it according to this link:
http://www.geeetech.com/forum/viewtopic ... 17&t=17038

(2).Time.h error
Error of time.h when compiled with GT2560:“qr_solve.cpp:7:18: fatal error: time.h: No such file or directory
#include <time.h>compilation terminated.Error compiling.”
Choose board type arduino mega, and the correct COM port. Have tried different versions of arduino and windows, mac OS, the same result.

Possible reason: caused by the version of the arduino, losing the time.h file or something.
Recommended solutions:
Try to use arduino1.0.1,it has the time.h library that others don’t, otherwise you must add it by yourself.

(3).Firmware issue of I3 X(has already been updated)

Compile issue: I3 PRO X - it does not get compiled with errors using Arduino 1.0.1 (+ 'Arduino Mega 2560 or Mega ADK' board selected) ultralcd_implementation_hitachi_HD44780.h:208: error: 'LiquidCrystal' does not name a type
Solution: it is the firmware problem and has already been solved.
Download the latest firmware here:
http://www.geeetech.com/forum/viewtopic ... 10&t=17046

(4).Endstops hit error
endstop hit.jpg
endstop hit.jpg (157.52 KiB) Viewed 104192 times
Firstly,check if the corresponding endstop has a good connection to the board.
Secondly,if one of your axes is having this problem, that’s because the endstop direction is wrong, you should change the corresponding direction here in the tab configuration.h in your firmware:

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.

Animosh
Posts: 7
Joined: Sun Jan 10, 2016 8:40 am

Re: Common issues :Endstop hit, Motor direction...

Post by Animosh » Sun Jan 10, 2016 8:48 am

I have the problem of my x-axis going to the left away from the end stop when using auto home.

i tried a fix from above here are my results:


1. this is the original make the x-axis home reversed
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.


2. This is the second attempt. This will make the x axis go in the right direction for maybe 10mm then end stop is triggered
// 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 = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.


3. This one makes the x axis stepper do nothing, no movement no jiggle nothing

const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // 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 = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.

So what am I missing?

Mark
Posts: 1553
Joined: Thu Aug 06, 2015 9:19 am

Re: Common issues :Endstop hit, Motor direction...

Post by Mark » Tue Jan 12, 2016 5:46 pm

you need to change the DIR of X axis,not the one for endstops....

teknokraze
Posts: 2
Joined: Mon Jan 11, 2016 9:04 am

Re: Common issues :Endstop hit, Motor direction...

Post by teknokraze » Wed Jan 13, 2016 8:15 am

I bought the Delta Rostock Mini G2s Pro and when I try to home the printer both my x-axis and z-axis go downward while my y-axis goes up rather fast and ends up hitting the rods unless I emergency stop. I've tried setting the directions in the firmware:

Code: Select all

#define INVERT_X_DIR true // DELTA does not invert
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

TO:
#define INVERT_X_DIR false // DELTA does not invert
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
This doesn't seem to fix the problem, they still move the same way, X and Z axis going downward, Y axis going up.

What does it mean in the firmware "// DELTA does not invert", does this mean you cannot reverse the stepper motor direction in the software? If so, how do I reverse the motors?

Thanks...

Mark
Posts: 1553
Joined: Thu Aug 06, 2015 9:19 am

Re: Common issues :Endstop hit, Motor direction...

Post by Mark » Wed Jan 13, 2016 2:08 pm

#define INVERT_X_DIR true // DELTA does not invert
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

try this one agian, usually you don't know it is true or false in the first place,so you'll need to try the second time.

Animosh
Posts: 7
Joined: Sun Jan 10, 2016 8:40 am

Re: Common issues :Endstop hit, Motor direction...

Post by Animosh » Sat Jan 16, 2016 10:36 pm

Mark wrote:you need to change the DIR of X axis,not the one for endstops....
thanks for the wonderful explanation

ICrIpTI
Posts: 1
Joined: Tue Mar 29, 2016 6:08 am

Re: Common issues :wrong motor direction,Endstop hit...

Post by ICrIpTI » Tue Mar 29, 2016 6:12 am

I am having an issue when homing my printer. First of all, all of the motors are going in the correct direction, the X axis homes properly with the endstop, but then either the Y or Z axis (whichever one makes it to the endstop first) will just make a horrible sound pressing up against the endstop as if it is not there. I followed all of the directions for wiring and I have tried changing endstop functionality in the firmware, but nothing seems to work. Does anyone know of a way to troubleshoot this a little more effectively? I am very eager to get this bad boy up and running. It has been a month now with no answers from Geeetech support team. (even after 2 inquiries)

Mark
Posts: 1553
Joined: Thu Aug 06, 2015 9:19 am

Re: Common issues :wrong motor direction,Endstop hit...

Post by Mark » Tue Mar 29, 2016 8:23 pm

Did you plug the endstop in the correct position? And how about swap the working endstop to the Y axis or Z axis, could it be the endstop is defective or open circuit?
Also you can check the endstop status with the M119 command.When the endstop is released, send M119 it will report "open"; and when it is triggered it will report "triggered"

netomantovani
Posts: 1
Joined: Mon Oct 03, 2016 7:11 am

Re: Common issues :wrong motor direction,Endstop hit...

Post by netomantovani » Tue Oct 04, 2016 12:51 pm

Hi I have a Mendel I3 pro C dual extruders, and my X axis is homing to the wrong direction, I already followed all the steps on this post and another post about how to properly install the firmware.
The problem that I am facing is that when I open the arduino program to change the configuration.h codes on the firmware, and then when I try to upload it to the printer I get a bunch of errors:

Arduino: 1.6.12 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

java.io.IOException: The sketch already contains a file named "Marlin.ino"
at processing.app.Sketch.checkNewFilename(Sketch.java:273)
at processing.app.SketchFile.renameTo(SketchFile.java:179)
at processing.app.SketchController.save(SketchController.java:337)
at processing.app.Editor.handleSave2(Editor.java:2031)
at processing.app.Editor.handleSave(Editor.java:2011)
at processing.app.Editor.handleExport(Editor.java:2150)
at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:378)
at java.awt.Component.processMouseEvent(Component.java:6530)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The sketch already contains a file named "Marlin.ino"
In file included from sketch\Marlin.h:23:0,

from sketch\thermistortables.h:4,

from sketch\Configuration.h:792,

from C:\Users\neto\AppData\Local\Temp\arduino_modified_sketch_144697\Marlin.ino:33:

sketch\pins.h:2956:0: warning: "X_MAX_PIN" redefined

#define X_MAX_PIN -1

^

sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24

^

sketch\pins.h:2957:0: warning: "Y_MAX_PIN" redefined

#define Y_MAX_PIN -1

^

sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28

^

sketch\pins.h:2958:0: warning: "Z_MAX_PIN" redefined

#define Z_MAX_PIN -1

^

sketch\pins.h:1375:0: note: this is the location of the previous definition

#define Z_MAX_PIN 32

^

In file included from sketch\Marlin.h:23:0,

from sketch\Marlin_main.cpp:30:

sketch\pins.h:2956:0: warning: "X_MAX_PIN" redefined

#define X_MAX_PIN -1

^

sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24

^

sketch\pins.h:2957:0: warning: "Y_MAX_PIN" redefined

#define Y_MAX_PIN -1

^

sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28

^

sketch\pins.h:2958:0: warning: "Z_MAX_PIN" redefined

#define Z_MAX_PIN -1

^

sketch\pins.h:1375:0: note: this is the location of the previous definition

#define Z_MAX_PIN 32

^

sketch\Marlin_main.cpp:2667:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]

LCD_MESSAGEPGM(MACHINE_NAME" "MSG_OFF".");

^

In file included from sketch\SdFile.h:27:0,

from sketch\cardreader.h:8,

from sketch\Marlin_main.cpp:44:

SdBaseFile.h:38: error: using typedef-name 'fpos_t' after 'struct'

struct fpos_t {

^

In file included from sketch\Marlin.h:10:0,

from sketch\Marlin_main.cpp:30:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:950:33: note: 'fpos_t' has a previous declaration here

__extension__ typedef long long fpos_t;

^

exit status 1
using typedef-name 'fpos_t' after 'struct'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

...could somebody please help me? I am really excited to have my printer working!!'
thank you!! :D

User avatar
William
Site Admin
Posts: 6340
Joined: Tue Jun 07, 2016 9:38 am

Re: Common issues :wrong motor direction,Endstop hit...

Post by William » Tue Oct 04, 2016 2:07 pm

netomantovani wrote:Hi I have a Mendel I3 pro C dual extruders, and my X axis is homing to the wrong direction, I already followed all the steps on this post and another post about how to properly install the firmware.
The problem that I am facing is that when I open the arduino program to change the configuration.h codes on the firmware, and then when I try to upload it to the printer I get a bunch of errors:

Arduino: 1.6.12 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

java.io.IOException: The sketch already contains a file named "Marlin.ino"
at processing.app.Sketch.checkNewFilename(Sketch.java:273)
at processing.app.SketchFile.renameTo(SketchFile.java:179)
at processing.app.SketchController.save(SketchController.java:337)
at processing.app.Editor.handleSave2(Editor.java:2031)
at processing.app.Editor.handleSave(Editor.java:2011)
at processing.app.Editor.handleExport(Editor.java:2150)
at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:378)
at java.awt.Component.processMouseEvent(Component.java:6530)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The sketch already contains a file named "Marlin.ino"
In file included from sketch\Marlin.h:23:0,

from sketch\thermistortables.h:4,

from sketch\Configuration.h:792,

from C:\Users\neto\AppData\Local\Temp\arduino_modified_sketch_144697\Marlin.ino:33:

sketch\pins.h:2956:0: warning: "X_MAX_PIN" redefined

#define X_MAX_PIN -1

^

sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24

^

sketch\pins.h:2957:0: warning: "Y_MAX_PIN" redefined

#define Y_MAX_PIN -1

^

sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28

^

sketch\pins.h:2958:0: warning: "Z_MAX_PIN" redefined

#define Z_MAX_PIN -1

^

sketch\pins.h:1375:0: note: this is the location of the previous definition

#define Z_MAX_PIN 32

^

In file included from sketch\Marlin.h:23:0,

from sketch\Marlin_main.cpp:30:

sketch\pins.h:2956:0: warning: "X_MAX_PIN" redefined

#define X_MAX_PIN -1

^

sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24

^

sketch\pins.h:2957:0: warning: "Y_MAX_PIN" redefined

#define Y_MAX_PIN -1

^

sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28

^

sketch\pins.h:2958:0: warning: "Z_MAX_PIN" redefined

#define Z_MAX_PIN -1

^

sketch\pins.h:1375:0: note: this is the location of the previous definition

#define Z_MAX_PIN 32

^

sketch\Marlin_main.cpp:2667:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]

LCD_MESSAGEPGM(MACHINE_NAME" "MSG_OFF".");

^

In file included from sketch\SdFile.h:27:0,

from sketch\cardreader.h:8,

from sketch\Marlin_main.cpp:44:

SdBaseFile.h:38: error: using typedef-name 'fpos_t' after 'struct'

struct fpos_t {

^

In file included from sketch\Marlin.h:10:0,

from sketch\Marlin_main.cpp:30:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:950:33: note: 'fpos_t' has a previous declaration here

__extension__ typedef long long fpos_t;

^

exit status 1
using typedef-name 'fpos_t' after 'struct'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

...could somebody please help me? I am really excited to have my printer working!!'
thank you!! :D

I guess it's a compatibility problem,you can have a try on Arduino 1.0.1 from here:
http://www.geeetech.com/wiki/images/a/a ... indows.zip
If errors still exist,i'm afraid you have to make the change on a Win7 computer.
-Keep your mind and try to test it. :)
-Everything will be fun!-Support all Getech printer.
-You can ask me the questions and I will kindly reply.
-Respect others is the best way you can get help!

Post Reply