Steppers Not running smooth

Hi,

I have a Smoothie board on a custom printer.

It is setup and prints a test object to the correct size.

My issue is that the motor’s are not smooth and transmit that to my prints.

I am used to hearing them sing (Changed from RAMPS Board) while they print but the noise they are make on Smoothie is well…. Sounds like bass and not treble.
the steps seem to be like there jumping from one step to the next and not flowing from one to the other.

They are Nema 17’s on a prusa type printer
Current 1.5 (this is set at that in config.)
Steps 1.8 (Set to 160 per the 32 on SB X/Y)

Like I said it prints the parts correct, so I am at a loss as to what I might have missed.
Can’t find and info on how to correct it.
Can you help me please ?

Thank’s
Ken

Imported from wikidot

I have ringing and other printing artifacts. I have not figured out how to get rid of them.

This is often just due to the printer itself having some “play” and/or not being mechanically perfect, which amplifies the small vibrations the motors make.

But if you say it worked on RAMPS, then I would expect the problem is that you have the current set too high.

You can try reducing the current to 1.2A, and if your firmware is very old, updating to the very latest edge firmware and matching example configuration file. But this is very unlikely to have anything to do with Smoothie itself, as the board is very well known for not having this problem on machines that are mechanically well designed/assembled.

Hello. I have similar problem to. Im using smoothi board for my CNC machine. When im using small speed like 100-500mm\min steppers running not smooth. Im using 1\128 microstep. The motor shaft moves noticeable jerks. Im using latest firmware, here my cfg:

# NOTE Lines must not exceed 132 characters
## Robot module configurations : general handling of movement G-codes and slicing into moves
default_feed_rate                            1000             # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate                            1000             # Default rate ( mm/minute ) for G0 moves
mm_per_arc_segment                           0.0              # Fixed length for line segments that divide arcs 0 to disable
mm_max_arc_error                             0.01             # The maximum error for line segments that divide arcs 0 to disable
                                                              # note it is invalid for both the above be 0
                                                              # if both are used, will use largest segment length based on radius
#mm_per_line_segment                          5                # Lines can be cut into segments ( not usefull with cartesian
                                                              # coordinates robots ).
grbl_mode true
# Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
alpha_steps_per_mm                           135.88               # Steps per mm for alpha stepper
beta_steps_per_mm                            135.88               # Steps per mm for beta stepper
gamma_steps_per_mm                           3200             # Steps per mm for gamma stepper

Planner module configuration : Look-ahead and acceleration configuration

planner_queue_size 32 # DO NOT CHANGE THIS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING
acceleration 50 # Acceleration in mm/second/second.
#z_acceleration 50 # Acceleration for Z only moves in mm/s^2, 0 uses acceleration which is the default. DO NOT SET ON A DELTA
junction_deviation 0.01 # Similar to the old “max_jerk”, in millimeters,

                                                          # Lower values mean being more careful, higher values means being
                                                          # faster and have more jerk

#z_junction_deviation 0.0 # for Z only moves, -1 uses junction_deviation, zero disables junction_deviation on z moves DO NOT SET ON A DELTA
#minimum_planner_speed 0.0 # sets the minimum planner speed in mm/sec

Stepper module configuration

microseconds_per_step_pulse 1 # Duration of step pulses to stepper drivers, in microseconds (bylo 9)
base_stepping_frequency 100000 # Base frequency for stepping

Cartesian axis speed limits

x_axis_max_speed 3000 # mm/min
y_axis_max_speed 3000 # mm/min
z_axis_max_speed 3000 # mm/min

Stepper module pins ( ports, and pin numbers, appending “!” to the number will invert a pin )

alpha_step_pin 2.0!o # Pin for alpha stepper step signal
alpha_dir_pin 0.5o # Pin for alpha stepper direction
alpha_en_pin 0.4!o # Pin for alpha enable pin
alpha_current 1.5 # X stepper motor current
alpha_max_rate 2000.0 # mm/min

beta_step_pin 2.1!o # Pin for beta stepper step signal
beta_dir_pin 0.11o # Pin for beta stepper direction
beta_en_pin 0.10!o # Pin for beta enable
beta_current 1.5 # Y stepper motor current
beta_max_rate 2000.0 # mm/min

gamma_step_pin 2.2!o # Pin for gamma stepper step signal
gamma_dir_pin 0.20o # Pin for gamma stepper direction
gamma_en_pin 0.19!o # Pin for gamma enable
gamma_current 1.5 # Z stepper motor current
gamma_max_rate 300.0 # mm/min

System configuration

Serial communications configuration ( baud rate defaults to 9600 if undefined )

uart0.baud_rate 9600 # Baud rate for the default hardware serial port (basic 115200)
second_usb_serial_enable false # This enables a second usb serial port (to have both pronterface
# and a terminal connected)
#leds_disable true # disable using leds after config loaded
#play_led_disable true # disable the play led

Kill button (used to be called pause) maybe assigned to a different pin, set to the onboard pin by default

#kill_button_enable true # set to true to enable a kill button
#kill_button_pin 2.12 # kill button pin. default is same as pause button 2.12 (2.11 is another good choice)

#msd_disable false # disable the MSD (USB SDCARD) when set to true (needs special binary)
#dfu_enable false # for linux developers, set to true to enable DFU
#watchdog_timeout 10 # watchdog timeout in seconds, default is 10, set to 0 to disable the watchdog

Only needed on a smoothieboard

currentcontrol_module_enable true #

delta_current 1.5 # First extruder stepper motor current

#switch.misc.enable true #
#switch.misc.input_on_command M42 #
#switch.misc.input_off_command M43 #
#switch.misc.output_pin 2.4 #
#switch.misc.output_type digital # just an on or off pin

Switch module for spindle control

spindle.enable true #
spindle.type analog # set the spindle type to analog, can also be used for ESC spindles controlled by a PWM
spindle.max_rpm 24000 # set the max spindle speed that is achieved at 100% PWM
spindle.pwm_pin 2.4 # the pin which emits the PWM signal
spindle.pwm_period 2000 # the PWM frequency
spindle.switch_on_pin 2.6 # the pin which is used to enable the VFD (optional)

Endstops

endstops_enable true # the endstop module is enabled by default and can be disabled here
#corexy_homing false # set to true if homing on a hbot or corexy
alpha_min_endstop nc # add a ! to invert if endstop is NO connected to ground
alpha_max_endstop 1.25^! # NOTE set to nc if this is not installed
alpha_homing_direction home_to_max # or set to home_to_max and set alpha_max
alpha_min 0 # this gets loaded after homing when home_to_min is set
alpha_max 988 # this gets loaded after homing when home_to_max is set
beta_min_endstop nc #
beta_max_endstop 1.27^! #
beta_homing_direction home_to_max #
beta_min 0 #
beta_max 747 #
gamma_min_endstop nc #
gamma_max_endstop 1.29^! #
gamma_homing_direction home_to_max #
gamma_min 0 #
gamma_max 210 #

alpha_max_travel 2200 # max travel in mm for alpha/X axis when homing
beta_max_travel 2000 # max travel in mm for beta/Y axis when homing
gamma_max_travel 1000 # max travel in mm for gamma/Z axis when homing

optional order in which axis will home, default is they all home at the same time,

if this is set it will force each axis to home one at a time in the specified order

#homing_order ZYX # x axis followed by y then z last
#move_to_origin_after_home false # move XY to 0,0 after homing

optional enable limit switches, actions will stop if any enabled limit switch is triggered

#alpha_limit_enable true # set to true to enable X min and max limit switches
#beta_limit_enable true # set to true to enable Y min and max limit switches
#gamma_limit_enable true # set to true to enable Z min and max limit switches

alpha_fast_homing_rate_mm_s 150 # feedrates in mm/second
beta_fast_homing_rate_mm_s 150 # "
gamma_fast_homing_rate_mm_s 20 # "
alpha_slow_homing_rate_mm_s 15 # "
beta_slow_homing_rate_mm_s 15 # "
gamma_slow_homing_rate_mm_s 5 # "

alpha_homing_retract_mm 5 # distance in mm
beta_homing_retract_mm 5 # "
gamma_homing_retract_mm 1 # "

#endstop_debounce_count 100 # uncomment if you get noise on your endstops, default is 100

Z-probe

zprobe.enable false # set to true to enable a zprobe
zprobe.probe_pin 1.28!^ # pin probe is attached to if NC remove the !
zprobe.slow_feedrate 5 # mm/sec probe feed rate
#zprobe.debounce_count 100 # set if noisy
zprobe.fast_feedrate 100 # move feedrate mm/sec
zprobe.probe_height 5 # how much above bed to start probe
#gamma_min_endstop nc # normally 1.28. Change to nc to prevent conflict,

associated with zprobe the leveling strategy to use

#leveling-strategy.three-point-leveling.enable true # a leveling strategy that probes three points to define a plane and keeps the Z parallel to that plane
#leveling-strategy.three-point-leveling.point1 100.0,0.0 # the first probe point (x,y) optional may be defined with M557
#leveling-strategy.three-point-leveling.point2 200.0,200.0 # the second probe point (x,y)
#leveling-strategy.three-point-leveling.point3 0.0,200.0 # the third probe point (x,y)
#leveling-strategy.three-point-leveling.home_first true # home the XY axis before probing
#leveling-strategy.three-point-leveling.tolerance 0.03 # the probe tolerance in mm, anything less that this will be ignored, default is 0.03mm
#leveling-strategy.three-point-leveling.probe_offsets 0,0,0 # the probe offsets from nozzle, must be x,y,z, default is no offset
#leveling-strategy.three-point-leveling.save_plane false # set to true to allow the bed plane to be saved with M500 default is false

Panel

panel.enable true # set to true to enable the panel code

Example for reprap discount GLCD

on glcd EXP1 is to left and EXP2 is to right, pin 1 is bottom left, pin 2 is top left etc.

+5v is EXP1 pin 10, Gnd is EXP1 pin 9

panel.lcd reprap_discount_glcd #
panel.spi_channel 0 # spi channel to use ; GLCD EXP1 Pins 3,5 (MOSI, SCLK)
panel.spi_cs_pin 0.16 # spi chip select ; GLCD EXP1 Pin 4
panel.encoder_a_pin 3.25!^ # encoder pin ; GLCD EXP2 Pin 3
panel.encoder_b_pin 3.26!^ # encoder pin ; GLCD EXP2 Pin 5
panel.click_button_pin 1.30!^ # click button ; GLCD EXP1 Pin 2
panel.buzz_pin 1.31 # pin for buzzer ; GLCD EXP1 Pin 1
panel.back_button_pin 2.11!^ # back button ; GLCD EXP2 Pin 8
panel.encoder_resolution 4 # number steps per 1 menu move

panel.button_pause_pin 2.11^ # kill/pause ; GLCD EXP2 Pin 8 either

pins used with other panels

#panel.up_button_pin 0.1! # up button if used
#panel.down_button_pin 0.0! # down button if used
#panel.click_button_pin 0.18! # click button if used

panel.menu_offset 0 # some panels will need 1 here

setup for external sd card on the GLCD which uses the onboard sdcard SPI port

panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 1 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 0.28 # set spi chip select for the sdcard (or any spare pin)
panel.external_sd.sdcd_pin 0.27!^ # sd detect signal (set to nc if no sdcard detect) (or any spare pin)

grbl_mode true

panel.alpha_jog_feedrate 6000 # x jogging feedrate in mm/min
panel.beta_jog_feedrate 6000 # y jogging feedrate in mm/min
panel.gamma_jog_feedrate 200 # z jogging feedrate in mm/min

panel.hotend_temperature 185 # temp to set hotend when preheat is selected

panel.bed_temperature 60 # temp to set bed when preheat is selected

Custom menus : Example of a custom menu entry, which will show up in the Custom entry.

NOTE _ gets converted to space in the menu and commands, | is used to separate multiple commands

custom_menu.power_on.enable true #
custom_menu.power_on.name Power_on #
custom_menu.power_on.command M80 #

custom_menu.power_off.enable true #
custom_menu.power_off.name Power_off #
custom_menu.power_off.command M81 #

Network settings

network.enable true # enable the ethernet network services
network.webserver.enable true # enable the webserver
network.telnet.enable true # enable the telnet server
network.ip_address auto # use dhcp to get ip address

uncomment the 3 below to manually setup ip address

#network.ip_address 192.168.3.222 # the IP address
#network.ip_mask 255.255.255.0 # the ip mask
#network.ip_gateway 192.168.3.1 # the gateway address
#network.mac_override xx.xx.xx.xx.xx.xx # override the mac address, only do this if you have a conflict

##Drilling cycles

drillingcycles.enable true # Enable drillingcycles module.
drillingcycles.dwell_units P # Dwell units S = seconds, P = millis.

Kill button module

kill_button_enable true # set to true to enable a kill button
kill_button_pin 2.11^ # kill button pin. default is same as pause button 2.12 (Add ^ for external buttons)

#switch.kill_button.enable true
#switch.kill_button.output_pin 2.11^
#switch.kill_button.input_on_command M26 #M26
#switch.kill_button.input_off_command M999 #

Arthur,

While I agree that the build of the printer can be the cause this is not. The printer is a custom build of my own. I have built it to close tolerances.
I wanted a printer that would give me as close to perfect as could be. It has worked well with RepRap Ramps 1.4 , Rumba and other boards.
I came to Smoothie after researching and finding your board was the best there is out there at this time.
I have 4 printers of different sizes. I have changed the board in one of them to smoothie. This is the one that seems to have motion jerks when moving like our friend above in this post.

I am disappointed only in the fact of support. Seems it takes forever to get a answer here. This does not fair well for promoting this project.
I want to promote it, I believe from what I read on it that this is the board to have.

Don’t take this in the wrong way I am only trying to point out what I am seeing as a new user to your project and that others might be turned off by the same.

Back to the issue.

Ok,

Here is what it seems to act like. If I were to take a educated guess it almost seems as if the frequency at which the steppers are modulated is way low.
When they move they seem to do it almost as if jumping from magnetic poll to poll. I did try changing the freq. in the config. file but this changed nothing.
My setup is very close to the one posted above.

Power, grounds and isolation has all be gone over more than once to be sure to eliminate cross talk and other possible interference.

There is a picture on the google groups of the print.
Hope you can shed some light on what might be the cause.

Thanks ahead,
Ken

I really think your comments about answer speed are misplaced, Smoothie has 10 times better support ( more communication channels, more activity, more documentation ) than any other similar project. You are just using the slowest method for getting help by going through the forum. If you are in a hurry, use IRC or Google+. I even answer emails about Smoothie most of the time within the same day ( though I ask you try IRC and G+ first ).

About your problem, you complain you are not getting enough help, but I told you to do two things, and you did not do any of them ( that I can see ). We can’t help you efficiently if you don’t participate. Please follow the advice in my previous message and come back to us with more info.

Yes, I answered one of them. “This is often just due to the printer itself having some “play” and/or not being mechanically perfect, which amplifies the small vibrations the motors make.”

The other on Current…. Set it to spec. then reduced it to try and see if this eliminated it, It did not.

I did wipe and re flash with the latest but this also seemed to not help.

It does this on all motors including the extruder. I have another board coming and should be here tomorrow. I will install it and see if it might be some hardware issue.

I did ask on google + but also got no answer to this date. I was not aware of the IRC but I am now and will go there as I am sure there are ones who monitor all the time on it.

My post here was on the 8th, you replied on the 15th. I am glad that you let me know there are more direct channels and that this forum is not monitored as much. I think this will also help others to know where they can go to get fast answers to there questions.

My post here was on the 8th, you replied on the 15th.

I was away traveling. I check this forum daily otherwise. And if you look at other posts, you’ll see that they get answers much faster than yours did. The reason is that your post wasn’t easy to answer. Therefore it’s normal it took longer than easy questions.

Let’s see how things go with your other board.

“My issue is that the motor’s are not smooth and transmit that to my prints.
I am used to hearing them sing (Changed from RAMPS Board) while they print but the noise they are make on Smoothie is well…. Sounds like bass and not treble.
the steps seem to be like there jumping from one step to the next and not flowing from one to the other.”

Grwarlock, the arduino boards can produce the same growl, or bass sound that you are hearing with the smoothie board. This comes from too much current supplied to the stepper. Also consider your highest microstep setting with most pololu drivers is 32. The move to 128 microstepps will produce a different sound.
I have a breadboard set up to jump all the connections from the ramps board to the arduino module. This board also runs the power supply pin through an ammeter to help me “tune” my arduino pots. Here’s what I’ve found:

At the spec current most stepper motors are “over-powered” and tend over heat. On my 12 volt systems I have the current below 0.7 amps. This does not harm performance whatsoever and the motors run quiet. I recently built a delta printer with the smoothie board. I am running 24 volts and the stepper current is set at 0.5 amps. I’m running at 150mm/s with no lost steps, there is more torque in the motors than is needed for running a 3d printer which has very little mechanical resistance.
There is an additional benefit to running low current…… If your machine ends up over-traveling to where the carriage crashes into the limits of the machine, your motors will not over-power the belt and pulleys…

My advice: Lower your current to 0.5A and test it at high speed. If you do not loose steps there is no need to up the current. Lowering your current will lower the temperature of your steppers, they will produce less noise, and as a side benefit, your machine will suffer less damage if it crashes.