I just finished assembly of Anet A8 (Prusa i3 clone). X any Y work fine, both Z motors move down just fine, when homed.
On Z-stop trigger, right Z moves up, left Z continues to try to move down. When up command is given in Pronterface or RepetierHost, right Z moves up, left Z moves down. Switching cable plugs moves the problem: the down only moves are always on Z-Motor1 output.
I have flashed the firmware with original Anet Omni firmware and problem persists. How else can I test if the problem is hardware- or firmware- related?
I am reluctant to change to different firmware entirely, as I have not yet found out what the problem is.
From the data you provided I would postulate that the problem is likely hardware: either with the the general assembly of the motherboard or with the stepper drivers.
The test you already performed excludes the stepper motors themselves as possible culprits. Common sense suggests that if such a show-stopper bug was present in the original Anet firmware, thousands of users would report it.
Stepper motors are usually controlled by two signals (two cables):
PULSE signal controls how many steps the motor needs to perform and the signal itself is normally a PWM or some other form of square wave. The
DIR signal controls which direction the motor is supposed to spin (clockwise or counter-clockwise), and the signal itself is just a "high/low" voltage.
enter image description here">
Now, electronics is not exactly my cup of tea, but I would suggest what is happening is that the
DIR signal of the broken output is stuck on either the high or low voltage (you can test this easily with a tester).
If I am right, the likely culprit is either a dry joint (so a joint that does not let electricity pass and keep the
DIR signal in its low state), or a short (so a place where voltage at "high" level is allowed to get onto the cable carrying the
DIR signal). These kind of problems are typically related to poor soldering of the connectors, or to bridges between the pins of chips. You can visually inspect your board for such problems.
Another possible culprit is obviously the driver for the stepper motor itself.