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 #