I have a totally newbie question.

That did it! Now I just need to tweak the numbers and calibrate it since the movements are at least 10 times what they should be.

I sent a command M92 X2.0 which sets the X to 2 steps/mm from the original 80 until I could get a reasonable distance traveled for what I input through the browser. My driver dip switches are set to provide 16 steps/mm. I know the 2 can’t be right and triple checked my dip switch settings. Is there some other variable in the config that would change this step size? In addition to the X, I’m also seeing excessive distances traveled on the Z with 1600 steps/mm set for the screw.

It just seems that the stepper motor is taking much bigger steps than it’s supposed to.

I’m not sure if this is normal but one other thing is that my Z motor is very warm to the touch and I’m not even moving it. It’s a NEMA 17 rated at 1.68A and I’m sending 1.5A from the driver. Maybe it’s related, maybe not.

The switches do not adjust steps/mm, but microstepping. There are lots of information on that on the net ( and on the smoothie wiki ) which will help you figure out exactly what the right value is for your machine and given microstepping setting.

steppers are designed to run hot, they do not need to be moving as they are always energized. the specs for most steppers says they can run at 80°C but that is why most people in reprap run at 75% of rated current. However with CNC you want to run at full current.

@Arthur_Wolf I will go and read up on the wiki and if I run into any problems I’ll ask here.

@Wolfmanjm That’s good to know about running motors at 100% current and the 80C limit.

I found my other problem. The motor drivers were set at 16 for microsteps but that corresponded to 3200 steps/rev. If only I had taken the time to look past the first column to the second column. My motors are 1.8 deg/step which equates to 200 steps/rev. That setting is for 1 microstep. Once I set that everything seems to be working well now.

The question I have though is I thought you wanted to user higher microsteps for better accuracy??? Am I looking at this the wrong way? I’m sure it’s just my understanding of how this works.

@Michael_Forte You can use any microstepping you want. Higher microstepping only gets you higher resolution up to 1/16 ( approximately ) microstepping, microstepping above that doesn’t really get you much more accuracy but reduces noise and problems with resonnance in leadscrew-driven systems.

My motor is 1.8 deg/step which equates to 200 steps/rev. Looking at the picture of the driver you see that 200 pulses/rev equals 1 microstep accuracy. The distance travel is accurate now when I test it.

Is there something in the config file that will let me use the 1/16 - 3200 setting on my driver without making my motor travel 16 times further?

I see the following for motor configuration in the config file:

Stepper module configuration

microseconds_per_step_pulse 1 # Duration of step pulses to stepper drivers, in microseconds

base_stepping_frequency 100000 # Base frequency for stepping, higher gives smoother movement

If I change the microseconds_per_step_pulse to 16 and set the appropriate dip switches on my motor driver will that work? I’m not sure what the base_stepping_frequency is for so would I need to adjust that as well?

missing/deleted image from Google+

You want to read http://smoothieware.org/cnc-mill-guide#toc10 ( the steps_per_mm section )
And the whole guide too :stuck_out_tongue:

I have read the CNC mill guide so many times I can probably rewrite a lot of it from memory. ;0
I have an update and I’m getting closer but still have a few issues. The X and Y stepper motors now move in the proper directions which is a good thing. Z, on the other hand is not moving; I just hear a click as if the motor is engaging but there is no movement. Z was the first motor I had working so I’m not sure why this is happening now???

The other possibly related annoyance is that I can only get movement when my motor driver is set to 1 microstep for X,Y, and Z motors. When I try higher numbers of microsteps on the external motor driver, nothing happens in the motor, i.e., there is no change no matter what my step settings are. I have tried changing steps_per_mm and acceleration values but still no change. My X and Y motors seem to work fine but only when 1 microstep is set. Isn’t it true that I can get better accuracy with a slightly higher microstep count like 4 or 8?

Anyway, I’m real close but I’m not sure what combinations of things to try anymore. Does anyone have config settings for NEMA 23 motors on an OX CNC using more than 1 microstep on the external motor driver?

take a look at the results at M503 is there an override effective? you would usually use x16 microsteps, this works fine. but you need to set steps/mm correctly.

@Wolfmanjm I will check the M503 tomorrow. Meanwhile, I want to make sure I’m adjusting the correct variables in the config file for 16 steps. Here is what I think I need to change. Does this look correct or am I way off base here? Are there variables I shouldn’t touch or some I’m missing from this list?

Motor Controller: set dip switches to 16 microsteps (3200 pulses/rev)
default_feed_rate: FROM 4000 TO 250 (4000/16)
acceleration: FROM 3000 TO 187.5 (3000/16)
alpha_steps_per_mm: FROM 80 TO 1280 (8016)
beta_steps_per_mm: FROM 80 TO 1280 (80
16)
gamma_steps_per_mm: FROM 1600 TO 25600 (1600*16)

No config override. Here is my M503 dump.

; No config override
;Steps per unit:
M92 X80.00000 Y80.00000 Z1600.00000
;Acceleration mm/sec^2:
M204 S1000.00000 Z500.00000
;X- Junction Deviation, Z- Z junction deviation, S - Minimum Planner speed mm/sec:
M205 X0.05000 Z-1.00000 S0.00000
;Max cartesian feedrates in mm/sec:
M203 X500.00000 Y500.00000 Z5.00000
;Max actuator feedrates in mm/sec:
M203.1 X500.00000 Y500.00000 Z5.00000
;WCS settings
G54
;Digipot Motor currents:
M907 X2.00000 Y2.00000 Z1.68000 E1.50000

Since I’m using external motor drivers, I’m assuming that it doesn’t matter what is set in the motor currents, right?
The other numbers look pretty straight forward.

What about these potential settings. Does this make sense if I go to 16 microsteps?
Motor Controller: set dip switches to 16 microsteps (3200 pulses/rev)
default_feed_rate: FROM 4000 TO 250 (4000/16)
acceleration: FROM 3000 TO 187.5 (3000/16)
alpha_steps_per_mm: FROM 80 TO 1280 (8016)
beta_steps_per_mm: FROM 80 TO 1280 (80
16)
gamma_steps_per_mm: FROM 1600 TO 25600 (1600*16)

feed rate need not change nor should acceleration. as for steps/mm I cannot say it depends on what belts you are using and the teeth on the pulleys. or the lead on the lead screw.

3mm belts on 20T pulleys. Acme 8mm screw for Z. Pretty standard. 80 steps/unit looks fairly close to what I would expect just eyeballing it when I move the X or Y with 1 microstep on the driver. I’m just wondering the basic idea of what I’m supposed to do.
If I set my external motor driver to 16 microsteps (3200 steps/rev) does that mean I just multiply my alpha_steps_per_mm (for X) by 16? Would I also need to change microseconds_per_step_pulse from 1 to 16?
I just want to make sure I understand what needs to be changed so I don’t go changing parameters that have no bearing on it. Those 2 variables I would think need to change in conjunction with each other.

no http://prusaprinters.org/calculator/#stepspermmbelt
it would
be 80steps/mm for 1/16 so that is you r problem. it would be 16 less for 1 step.
You do not change microseconds_per_step_pulse unless your eternal drivers need more than 1us step pulses.

Well after double and triple checking everything my Z still didn’t work. I decided to start from one end and buzz out all the way to the other end and lo and behold my NEMA 17 wire colors are the same as my NEMA 23 wire colors BUT the colors don’t correspond to coil pairs. The NEMA 23s are the same but the 17 swapped one color which meant I was sending a pulse to both ends of the same motor coil. (slaps hand to face).

Well that only took a few weeks to figure out. Thanks for all the help in here. I’m sure I’m not done asking but now I have all motors moving properly.