4
$\begingroup$

Sometimes I notice that if I manually command a single axis movement (typically Z, when I want better access to the extruder), I observe that several channels move together (and they maybe move slower than I expect). After one 'coupled' movement, subsequent commands have the result I'm expecting.

What happens is as well as the Z-axis moving up, the bed moves forward, and the extruder moves to the right. I have no auto-leveling or anything else non-standard on this printer (dual Z steppers, X, Y, extruder, bed, extruder heat).

It even happens if I simply extrude some of the time (e.g. changing filament after warming up, retract gave me some X movement)

Printer is an ANET-A8, I'm using mainly OctoPrint, but I think I've also observed this with other PC software manual controls.

It doesn't happen often enough for me to have identified any pattern - maybe it only happens if I've not homed first after turning the printer on, but I suspect not.

It's not so much of a problem, as just a question for interest. Also not sure how to tag.

$\endgroup$
4
  • 1
    $\begingroup$ What do you mean by "several channels move together"? The X and Y axes also move when you move Z? Are you perhaps seeing the effects of auto-bed leveling? $\endgroup$ – Tom van der Zanden Jun 13 '17 at 8:13
  • 1
    $\begingroup$ How are you "manually moving" your printer? Are you using some control software or writing in actual G-code commands? $\endgroup$ – Tormod Haugene Jun 13 '17 at 8:25
  • $\begingroup$ control software, I've not tried using gcode directly since it's not been trivial to reproduce. $\endgroup$ – Sean Houlihane Jun 13 '17 at 8:29
  • $\begingroup$ If it is truly only the very first command, my guess is that the micro doesn't boot up with clean buffers, so the first "execute the stack" command reads whatever cruft is in there. After that all the motor command stacks are properly reset. $\endgroup$ – Carl Witthoft Jun 13 '17 at 12:18
2
$\begingroup$

This is easily explained - it's the stepper motors getting powered up. Stepper motors even if not moving are constantly powered up and actively hold the position they are in exactly at the stepping point where they are.

If you power down the machine or if the board disables the stepper drivers to save energy or because the power is offline then the stepper motors can get in between steps. When powering on then the movement is quite noticeable on some cheaper motors where the inrushing current can kick the motor over multiple steps before it locks down into position.

You can test this, try to move one of the axis manually by hand (not too fast to not damage the board by providing it too much current) if the printer is powered of it does move pretty easily. Then power the printer on, it should still move pretty easily by hand. Now execute one move command on the axis via the printer board. Afterwards you should not be able to move the axis by hand anymore (or at least not without unnecessarily excessive force).

$\endgroup$
5
  • 1
    $\begingroup$ Dubious. The 'odd' behavour is not skipping a few steps, its many mm of travel along the axes, and persists for several seconds. I've not determined if it only occurs when the steppers transition from disabled to move. $\endgroup$ – Sean Houlihane Jul 19 '17 at 14:05
  • $\begingroup$ Well one of the stepper motor cables in my CTC failed a while ago and had a bad connection. It bumped the axis about 10cm along when it got powered up and then printed "normally" except for some erratic movement sometimes until the cable totally failed. With new cables this only is about 1mm tops on the cheap motors and only noticeable as a slight shake and no move on my prusa with high quality motors. But it's definitely there every time the steppers engage. $\endgroup$ – bardiir Jul 19 '17 at 14:10
  • $\begingroup$ But persisting over multiple seconds is strange, it should only be one shake and subsequently slowing down movement. $\endgroup$ – bardiir Jul 19 '17 at 14:16
  • $\begingroup$ Why would "cheaper motors" suffer more from inrush current than expensive motors? They're just some coils of wire, and given the same resistance/reactance you're going to get the same inrush current. $\endgroup$ – Tom van der Zanden Jul 20 '17 at 1:28
  • $\begingroup$ My guess is cheaper material on the coils, higher resistance and a slower buildup of the magnetic field. On the other hand it could as well be the cheaper stepper drivers that are overcurrenting or the wires not beeing beefy enough to handle the inrush on the cheaper machine, so you're correct, it's not necessarily the motors themselves. But nonetheless on the cheaper built machine the movement from enabling steppers is extremely more pronounced. $\endgroup$ – bardiir Jul 24 '17 at 8:21
2
$\begingroup$

I don't know details of your printer, the motor drivers, the firmware, or the wiring harness. I only have looked photos at the ANET-A8.

Your question has ruled out a complex-axis movement caused by auto-leveling.

Printers that are not based on simple cartesian actuators, such as delta or core-xy machines use multiple actuators to make what results in a simple, single axis head movement. Your printer is not based on one of these mechanisms, but if the printer were temporarily misconfigured, it may move unexpectedly.

On the hardware side, some stepper drivers work with "step" and "direction" inputs. If there is a problem with signal integrity on these signals as referenced to the stepper driver's ground, you may be introducing an unintended step pulse. Stepper drivers typically use pulse-width-modulation (PWM) to set the power through each of the two motor windings (coils), and generate noise that depends on too many factors to list. Check that you have a direct ground wire from the stepper drivers to the controller board. If the drivers are integral with the controller board, one would hope the PCB was well designed.

It is possible the motion is caused by some force causing unpowered stepper motors to move, although most unpowered motors will still have a bit of detent torque resisting motion. This would require that Z-axis movement was causing some force on the other axes. For the ANET-A8, the filament could apply side-to-side force to the extruder when moved up or down, but it is difficult to see how it could cause front-to-back movement of the bed.

Your code may allow you to set the idle motor current as well as the active current. If so, you could try setting the idle current at, say, 80% of the idle current. Your motors will be hotter when idle, but should not overheat.

$\endgroup$
1
  • $\begingroup$ The idea of a bad mode configuration out of reset seems plausible. It's not a problem, just an oddity... $\endgroup$ – Sean Houlihane Aug 22 '17 at 18:57
1
$\begingroup$

My best guess based on the answers and comments so far is that there is a minor firmware bug and some poorly initialised state. This occurs at start-up, or after a print has finished, but only once (till presumably the idle state is reached again).

See the image below, captured after the power went off during a print. Heated the extruder, and did Z -10, got this. Both x and Y moved, but in about a 10:1 ratio. The length of the track is about 10mm. Interestingly, during this movement, there was no Z movement.

Movement frozen into print

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.