Scanner Stepper Motor Hack



First we need to add components to control the stepper motors: Type 'step' in the Filter box of the Component Toolbox then select the '4 Wire Stepper Motor' component (Picture 1), and drop two of them it in the design area Click in the 'Out' box containing the pins of the Stepper1 component to start connecting all the Out pins at once (Picture 2) Move the mouse over the 'Digital' input pin of. Note: The STC1000 has been replaced by the STC1002, which has the same function and form factor, but has a maximum motor current of 8 amps. The STC1000 allows you to control a bipolar stepper motor ( up to 4A). This Phidget connects to your computer through a VINT Hub and requires an 8-30V DC power supply. Control position, velocity, and acceleration. A stepper is a device used in the manufacture of integrated circuits (ICs) that is similar in operation to a slide projector or a photographic enlarger.The term 'stepper' is short for step-and-repeat camera. Steppers are an essential part of the complex process, called photolithography, that creates millions of microscopic circuit elements on the surface of chips of silicon.

I've recently worked on a project that I had the parts for for quite some time, but never got started on. I salvaged this XY stepper head from a cheap chinese 'laser show' which had no programmable inputs and a nonfunctional 'auto sound' mode that would only repeat the same three patterns over and over again. The laser that was built into it had its pump diode die a thermal death a long time ago so I shelved it and planned on modifying it eventually.

The CAMTool V3.3 board on the CNC 3018-Pro hardwires the three DRV8825 stepper driver chips in 1:32 microstep mode by pulling all three Mode pins high. Unlike most CNC boards, it does not include jumpers to let you select different microstep modes; the designers know you want as many microsteps as you can possibly get. This motor had a peak output of 43 volts at.41 mA. Stepper motors are awesome hackable items and they’re easy to come. Think of all the ways you can get a motor to spin from salvaged energy. If something is moving, that motion can be converted into motion of the stepper and used to generate electricity.



I decided to look into stepper motors and their control schemes and found that it would be rather simple to code the subroutines for single coil per step movements on an arduino. Once I realized this, it was time to start work.Sales

Now, steppers aren't particularly fast or accurate, especially at the upper limits of their speed, as they start to miss steps. I can get these cheap ones to about 2.75mS/step and no further without losing steps, but that's good enough for me.

Instead of driving the motors with an intermediary IC (or even an entire dedicated board) designed for stepper control I decided to just go discrete electronics with NPN bipolar transistors and small signal fast diodes for flyback recovery. I'm only driving one coil at a time since I don't have the pinout for the motor coils and it is a 5pin unipolar motor with common ground. It doesn't appear that it is two center tapped coils with common CT., but rather it looks to be four individual coils with tied ends. I know there are ICs that can use the two center tapped coils in a bipolar drive method to allow microstepping and such but I don't think that is possible with these steppers. The reason for the NPN BJTs is that the arduino can only sink or source 40mA maximum per I/O line and these steppers draw about 90mA @ 9V (and they're 12V steppers, but run down to 5V min).

I experimented with increasing the motor voltage in hopes of gaining speed, but no increase in accuracy or speed was measured between 5.7V and 12V. I found that I got the best results with a 2.75mS ontime and 250uS offtime.

Unfortunately the mechanical issues of rotor inertia, jitter, and flicker could not be eliminated. Only the simplest of designs could be reproduced without a large degree of error. Attempting to reproduce a number 8 results in two vertically stacked squares with a space in between them, tethered in the center. (see video #3).

For the amount of work it takes to get this poor result it isn't worth continuing further. It was a good exercise and a fun experiment if you ignore the 12hours or so of coding. I wrote nearly 2500 lines of code for this, and while most were just edited copy/paste, it was still a nightmare of a job. There are 64 subroutines written for motor advancement: 1 to 16 steps forward, 1 to 16 steps backward, each for two axes.

The code is straight forward; manually pulse each coil for a set time in grouped ordered bunches to produce movement. The Achilles heel is that this is completely open loop. There is no way to detect or remember what the last coil used was so when you go back to the same axis you have to manually insert code to bridge the gaps to ensure it doesn't inadvertently reverse steps or miss steps entirely.

For example:Controllers

void loop(){

Stepper Motor Driver


xplus4();
xminus4();
}
Thus pulses coils as such: 1 2 3 4 4 3 2 1. Notice the double pulse of coil 4? This means the rotor will sometimes make 4 positive movements and then three negative ones, and other times it will make three positive and three negative, depending on where the rotor was when the first pulse to coil 1 hit.
If we wanted to fix this we would have to do as so:
void loop(){
xplus4();
digitalWrite(1, HIGH);
delayMicroseconds(tON);
digitalWrite(1, LOW);
delayMicroseconds(tOFF);
xminus4();
}
This pulses as such: 1 2 3 4 1 4 3 2 1. Now we'll always get four positive and four negative steps, but occasionally we'll get five positive initially, again depending on rotor position.
Consequently, the subroutine for xplus5 looks just like 1 2 3 4 1, so I would have just used it instead, but I wanted to illustrate the process more precisely. This example has a pre-written subroutine that fits in as a correction, but most transitions do not.

Stepper Motor Sales


The hardware circuitry is simple, as this schematic and picture show:Motor


https://app.box.com/s/mtae49elczo39468myul






This is a fork from the original Titan upgrade thread (http://www.soliforum.com/forum/21/xyz-printing-davinci/). I have been on the search for a new stepper motor after I stupidly set mine on fire. Here is a response I received from a distributor:

Thank you for your interest in our company and products.
Unfortunately, this product is custom made and not available for individual sale.

If you are looking for a replacement, we recommend you contact the original manufacturer of your machine or equipment where the motor is assembled into and request replacement pieces

Stepper Vs Scanner

NMB Technologies Corporation

Stepper Motor Controllers

With that said I am now going to replace it with a more available part. Since I did the e3D Titan upgrade I am going to try and use these http://www.amazon.com/Short-Bipolar-Mot … e_o00_s00, which I am told are the same that Livi uses. I will post my findings here.