I am using re-arm from panucatt board (running smoothieware) with Ramps 1.4, on a custom build printer, 400x400x400 mm. I am using CNC microstepper drivers for all 3 axis that can go up to 4.2 amps, and 25600 microsteps. Right now they are set at 3200 microsteps. Nema17 48mm 1.7A 0.9° motors.
The problem I am having is that the print is shifting, and I can’t figure out how to fix it.
Before I had the re-arm board, I was using an Arduino Mega 2560 with Ramps 1.4, and it was printing good, no shifting! I did not make any changes to the hardware. I replaced the Arduino with the re-arm running smoothieware, and then the shifting problem started.
If I print in vase mode, it is printing perfectly straight, but when I print the test cube, it’s shifting on X & Y. It seems to be shifting equally on both axes, and also on every layer equally, and I find that really weird… if it was hardware problem it should shift on one axis, or more on one axis than the other, and also vase mode prints perfectly!
Things I tried:
changed acceleration
changed junction_deviation
changed microseconds_per_step_pulse
increased the amps on the microstep drivers
decreased microsteps
increased microsteps
Nothing fixes the shifting problem
Someone please help me!
Thanks in advance
I wanted to post an image of the print, but the site does not let me post any links
Config file:
[[code]]
# Robot module configurations : general handling of movement G-codes and slicing into moves
default_feed_rate 4000 # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate 4000 # Default rate ( mm/minute ) for G0 moves
mm_per_arc_segment 0.5 # Arcs are cut into segments ( lines ), this is the length for these segments. Smaller values mean more resolution, higher values mean faster computation
mm_per_line_segment 1 # Lines can be cut into segments ( not usefull with cartesian coordinates robots ).
- Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
alpha_steps_per_mm 160 # Steps per mm for alpha stepper
beta_steps_per_mm 160 # Steps per mm for beta stepper
gamma_steps_per_mm 400 # 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 YOUR ARE DOING
acceleration 1000 # Acceleration in mm/second/second.
z_acceleration 500 # Acceleration for Z only moves in mm/s^2, 0 disables it, disabled by default. DO NOT SET ON A DELTA
acceleration_ticks_per_second 1000 # Number of times per second the speed is updated
junction_deviation 0.005
- Stepper module configuration
microseconds_per_step_pulse 5 # Duration of step pulses to stepper drivers, in microseconds
base_stepping_frequency 100000 # Base frequency for stepping
- Stepper module pins ( ports, and pin numbers, appending "!" to the number will invert a pin )
alpha_step_pin 2.1 # Pin for alpha stepper step signal
alpha_dir_pin 0.11! # Pin for alpha stepper direction
alpha_en_pin 0.10 # Pin for alpha enable pin 0.10
alpha_current 1.0 # X stepper motor current
x_axis_max_speed 20000 # mm/min
alpha_max_rate 20000.0 # mm/min actuator max speed
beta_step_pin 2.2 # Pin for beta stepper step signal
beta_dir_pin 0.20! # Pin for beta stepper direction
beta_en_pin 0.19 # Pin for beta enable
beta_current 1.0 # Y stepper motor current
y_axis_max_speed 20000 # mm/min
beta_max_rate 20000.0 # mm/min actuator max speed
gamma_step_pin 2.3 # Pin for gamma stepper step signal
gamma_dir_pin 0.22 # Pin for gamma stepper direction
gamma_en_pin 0.21 # Pin for gamma enable
gamma_current 1.0 # Z stepper motor current
z_axis_max_speed 1500 # mm/min
gamma_max_rate 1500.0 # mm/min actuator max speed
- Serial communications configuration ( baud rate default to 9600 if undefined )
uart0.baud_rate 250000 # Baud rate for the default hardware serial port
second_usb_serial_enable false # This enables a second usb serial port (to have both pronterface and a terminal connected)
msd_disable true # disable the MSD (USB SDCARD) when set to true
#player.on_boot_gcode_enable false
#player.on_boot_gcode /sd/on_boot.gcode
player.after_suspend_gcode G91_G0E-5_G0Z10_G90_G0X-50Y-50
player.before_resume_gcode G91_G1E1_G90
player.leave_heaters_on_suspend true
player.progress true
- Extruder module configuration
extruder.hotend.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend.steps_per_mm 1634 # Steps per mm for extruder stepper
extruder.hotend.default_feed_rate 500 # Default rate ( mm/minute ) for moves where only the extruder moves
extruder.hotend.acceleration 1500 # Acceleration for the stepper motor mm/sec²
extruder.hotend.max_speed 20 # mm/s
extruder.hotend.step_pin 2.0 # Pin for extruder step signal
extruder.hotend.dir_pin 0.5 # Pin for extruder dir signal
extruder.hotend.en_pin 0.4 # Pin for extruder enable signal
- extruder offset
extruder.hotend.x_offset 0 # x offset from origin in mm
extruder.hotend.y_offset 0 # y offset from origin in mm
extruder.hotend.z_offset 0 # z offset from origin in mm
- firmware retract settings when using G10/G11, these are the defaults if not defined, must be defined for each extruder if not using the defaults
#extruder.hotend.retract_length 2 # retract length in mm
#extruder.hotend.retract_feedrate 50 # retract feedrate in mm/sec
#extruder.hotend.retract_recover_length 0 # additional length for recover
#extruder.hotend.retract_recover_feedrate 8 # recover feedrate in mm/sec (should be less than retract feedrate)
#extruder.hotend.retract_zlift_length 0 # zlift on retract in mm, 0 disables
#extruder.hotend.retract_zlift_feedrate 6000 # zlift feedrate in mm/min (Note mm/min NOT mm/sec)
delta_current 1.0 # Extruder stepper motor current
- Second extruder module configuration
extruder.hotend2.enable false # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend2.steps_per_mm 154 # Steps per mm for extruder stepper
extruder.hotend2.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
extruder.hotend2.acceleration 500 # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
extruder.hotend2.max_speed 60 # mm/s
extruder.hotend2.step_pin 2.8 # Pin for extruder step signal
extruder.hotend2.dir_pin 2.13 # Pin for extruder dir signal
extruder.hotend2.en_pin 4.29 # Pin for extruder enable signal
extruder.hotend2.x_offset 0 # x offset from origin in mm
extruder.hotend2.y_offset 25.0 # y offset from origin in mm
extruder.hotend2.z_offset 0 # z offset from origin in mm
epsilon_current 1.5 # Second extruder stepper motor current
- Safety control is enabled by default and can be overidden here, the values show the defaults
temperature_control.hotend.max_temp 280
temperature_control.hotend.runaway_heating_timeout 300 # How long it can take to heat up, max is 2040 seconds.
temperature_control.hotend.runaway_cooling_timeout 240 # How long it can take to cool down if temp is set lower, max is 2040 seconds
temperature_control.hotend.runaway_range 20 # How far from the set temperature it can wander, max setting is 63°C
- Laser module configuration
laser_module_enable false # Whether to activate the laser module at all. All configuration is ignored if false.
#laser_module_pin 2.7 # this pin will be PWMed to control the laser
#laser_module_max_power 0.8 # this is the maximum duty cycle that will be applied to the laser
#laser_module_tickle_power 0.0 # this duty cycle will be used for travel moves to keep the laser active without actually burning
- Hotend temperature control configuration
temperature_control.hotend.enable true # Whether to activate this ( "hotend" ) module at all. All configuration is ignored if false.
temperature_control.hotend.thermistor_pin 0.23 # Pin for the thermistor to read
temperature_control.hotend.heater_pin 2.5 # Pin that controls the heater
temperature_control.hotend.thermistor EPCOS100K
#temperature_control.hotend.beta 4066 # or set the beta value
temperature_control.hotend.set_m_code 104 #
temperature_control.hotend.set_and_wait_m_code 109 #
temperature_control.hotend.designator T #
#E3D Lite
temperature_control.hotend.p_factor 45.7 #
temperature_control.hotend.i_factor 3.927 #
temperature_control.hotend.d_factor 133 #
#temperature_control.hotend.max_pwm 64 # max pwm, 64 is a good value if driving a 12v resistor with 24v.
- Hotend2 temperature control configuration
temperature_control.hotend2.enable false # Whether to activate this ( "hotend" ) module at all. All configuration is ignored if false.
temperature_control.hotend2.thermistor_pin 0.25 # Pin for the thermistor to read
temperature_control.hotend2.heater_pin 2.4 # Pin that controls the heater
temperature_control.hotend2.thermistor EPCOS100K
##temperature_control.hotend2.beta 4066 # or set the beta value
temperature_control.hotend2.set_m_code 104 #
temperature_control.hotend2.set_and_wait_m_code 109 #
temperature_control.hotend2.designator T1 #
- PID
temperature_control.hotend2.p_factor 57 # permanently set the PID values after an auto pid
temperature_control.hotend2.i_factor 0.097 #
temperature_control.hotend2.d_factor 4.55 #
temperature_control.hotend2.max_pwm 178 # max pwm, 64 is a good value if driving a 12v resistor with 24v.
temperature_control.bed.enable true #
temperature_control.bed.thermistor_pin 0.24 #
temperature_control.bed.heater_pin 2.7 #
#temperature_control.bed.thermistor EPCOS100K
temperature_control.bed.beta 3950 # or set the beta value
temperature_control.bed.set_m_code 140 #
temperature_control.bed.set_and_wait_m_code 190 #
temperature_control.bed.designator B #
#temperature_control.bed.max_pwm 128 # max pwm, 64 is a good value if driving a 12v resistor with 24v.
#PID BED L
temperature_control.bed.p_factor 174.5 # permanently set the PID values after an auto pid
temperature_control.bed.i_factor 15.076 #
temperature_control.bed.d_factor 505 #
- Switch module for fan control
switch.fan.enable true #
switch.fan.input_on_command M106 #
switch.fan.input_off_command M107 #
switch.fan.output_pin 2.4 #
switch.misc.enable false #
switch.misc.input_on_command M42 #
switch.misc.input_off_command M43 #
switch.misc.output_pin 2.4 #
- Switch module for spindle control
#switch.spindle.enable false #
- 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 hbit or corexy
alpha_min_endstop 1.24^ # add a ! to invert if endstop is NO connected to ground
#alpha_max_endstop 1.24^ #
alpha_homing_direction home_to_min # or set to home_to_max and set alpha_max
alpha_min -10 # this gets loaded after homing when home_to_min is set
alpha_max 390 # this gets loaded after homing when home_to_max is set
beta_min_endstop 1.26^ #
#beta_max_endstop 1.26^ #
beta_homing_direction home_to_min #
beta_min -10 #
beta_max 390 #
gamma_min_endstop 1.29^ #
#gamma_max_endstop 1.29^ #
gamma_homing_direction home_to_min #
gamma_min 0 #
gamma_max 400 #Obsolete
max_z 400
- optional enable limit switches, actions will stop if any enabled limit switch is triggered
#alpha_limit_enable false # set to true to enable X min and max limit switches
#beta_limit_enable false # set to true to enable Y min and max limit switches
#gamma_limit_enable false # set to true to enable Z min and max limit switches
#probe endstop
#probe_pin 1.29 # optional pin for probe
alpha_fast_homing_rate_mm_s 90 # feedrates in mm/second
beta_fast_homing_rate_mm_s 90 # "
gamma_fast_homing_rate_mm_s 16 # "
alpha_slow_homing_rate_mm_s 50 # "
beta_slow_homing_rate_mm_s 50 # "
gamma_slow_homing_rate_mm_s 5 # "
alpha_homing_retract_mm 5 # distance in mm
beta_homing_retract_mm 5 # "
gamma_homing_retract_mm 6 # "
endstop_debounce_count 100 # uncomment if you get noise on your endstops, default is 100
- optional Z probe
zprobe.enable true # set to true to enable a zprobe
zprobe.probe_pin 1.29^ # pin probe is attached to if NC remove the !
zprobe.slow_feedrate 5 # mm/sec probe feed rate
zprobe.fast_feedrate 200 # move feedrate mm/sec
#zprobe.debounce_count 100 # set if noisy
zprobe.probe_height 5 # how much above bed to start probe
- Bltouch
switch.servo.enable true
switch.servo.input_on_command M280 S3.0
switch.servo.input_off_command M281 S7.0
switch.servo.output_pin 1.20
switch.servo.output_type hwpwm
switch.servo.pwm_period_ms 20
switch.servo1.enable true # Enable servo1
switch.servo1.output_pin 1.20 # SER1 pin
switch.servo1.output_type hwpwm # PWM output
switch.servo1.startup_value 0 # Start with servo disabled
switch.servo1.max_pwm 100 # Max PWM
switch.servo1.pwm_period_ms 20 # PWM period
switch.servo1.input_on_command M280 S3.0 # G code to set PWM period. M280 S4 is full one direction, S7 would be midway, S10 is the other extreme.
switch.servo1.input_off_command M280 S7.0 # G code to set PWM period
switch.servo1.fail_safe_set_to 0
leveling-strategy.rectangular-grid.enable true # The strategy must be enabled in the config, as well as the zprobe module.
leveling-strategy.rectangular-grid.x_size 390 # size of bed in the X axis
leveling-strategy.rectangular-grid.y_size 390 # sizef of bed in the Y axis
leveling-strategy.rectangular-grid.size 3 # The size of the grid, for example, 7 causes a 7x7 grid with 49 points. Must be an odd number.
leveling-strategy.rectangular-grid.only_by_two_corners true
leveling-strategy.rectangular-grid.do_home false
#Probe offset E3D
leveling-strategy.rectangular-grid.probe_offsets 0, 25, 0 # Optional probe offsets from the nozzle or tool head
leveling-strategy.rectangular-grid.save false # If the saved grid is to be loaded on boot then this must be set to true
leveling-strategy.rectangular-grid.initial_height 5 # Optionally an initial_height can be set that tell the intial probe
# where to stop the fast decent before it probes, this should be
# around 5-10mm above the bed
- Pause button
pause_button_enable true #
panel.enable true # set to true to enable the panel code
- Example viki2 config for Re-ARM with IDC cable
panel.lcd viki2 # set type of panel
panel.spi_channel 0 # set spi channel to use P0_18,P0_15 MOSI,SCLK
panel.spi_cs_pin 0.16 # set spi chip select
panel.encoder_a_pin 3.25!^ # encoder pin
panel.encoder_b_pin 3.26!^ # encoder pin
panel.click_button_pin 2.11!^ # click button
panel.a0_pin 2.6 # st7565 needs an a0
panel.contrast 8 # override contrast setting (default is 9)
panel.encoder_resolution 4 # override number of clicks to move 1 item (default is 4)
#panel.button_pause_pin 1.22^ # kill/pause set one of these for the auxilliary button on viki2
#panel.back_button_pin 1.22!^ # back button recommended to use this on EXP1
panel.buzz_pin 1.30 # pin for buzzer on EXP2
panel.red_led_pin 0.26 # pin for red led on viki2 on EXP1
panel.blue_led_pin 1.21 # pin for blue led on viki2 on EXP1
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 0 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 1.23 # set spi chip select for the sdcard
panel.external_sd.sdcd_pin 1.31!^ # sd detect signal (set to nc if no sdcard detect)
panel.menu_offset 1 # some panels will need 1 here
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 220 # temp to set hotend when preheat is selected
panel.T1_temperature 220 # temp to set hotend when preheat is selected
panel.bed_temperature 60 # temp to set bed when preheat is selected
panel.hotend_temperature_abs 245 # temp to set hotend when preheat is selected
panel.bed_temperature_abs 90 # temp to set bed when preheat is selected
panel.hotend_temperature_petg 220 # temp to set hotend when preheat is selected
panel.bed_temperature_petg 80 # temp to set bed when preheat is selected
- RE-ARM specific settings do not change
currentcontrol_module_enable false #
digipot_max_current 2.4 # max current
digipot_factor 106.0 # factor for converting current to digipot value
leds_disable true # disable using leds after config loaded
- network settings
network.enable false # enable the ethernet network services
network.webserver.enable true # enable the webserver
network.telnet.enable true # enable the telnet server
network.plan9.enable true # enable the plan9 network filesystem
network.ip_address auto # the IP address
#network.ip_mask 255.255.255.0 # the ip mask
#network.ip_gateway 192.168.3.1 # the gateway address
return_error_on_unhandled_gcode false #
switch.psu.enable false # turn atx on/off
switch.psu.input_on_command M81 # set PSU_OFF => M81
switch.psu.input_off_command M80 # set PSU ON => M80
switch.psu.output_pin 2.12o # open drain, inverted
switch.psu.output_type digital # on/off only
#switch.psu.fail_safe_set_to 1 # so the ATX turns off on a system crash
switch.psu.ignore_on_halt false # so the ATX does not turn off on a HALT condition (like limit trigger)
#Runout
switch.suspend.enable false # Enable this module
switch.suspend.input_pin 1.17!^ # Pin where filament out button is connected
#switch.suspend.output_on_command suspend # Suspend command
switch.suspend.output_on_command G91|G1_Z0.6_F12000|G90|G1_X0_Y0|G91|G1_Z-0.6|G90|M25 # Suspend command
switch.resume.enable false # Enable this module
switch.resume.input_pin 1.14^ # Pin where resume button is connected
#switch.resume.output_on_command resume # Resume command
switch.resume.output_on_command M24 # Resume command
[[/code]]
Imported from wikidot