Marlin to Smoothieware

Hi All, I have a Ultibots MK delta kit that came with a RAMPS board, but I wanted to try a 32bit board as it was said to overcome some of the ridging artifacts that deltas get with Arduino based systems. I have the settings for Marlin for the printer, and am trying to adapt them for the smoothieware delta config to run on a Azteeg x5 board.

Mostly, I think I have a handle on it, arm length and radius being the big ones, MM/sec converted to MM/Min. Some settings I am not sure about either what exactly they do, or what they should be set to, so if there is any insight people here have to offer I would greatly Appreciate it.

delta_segments_per_second is default 100, I had it set in Marlin to 200, should I set it to 200?

junction_deviation 0.05 in Marlin - #define DEFAULT_XYJERK 2.0; this seems much much higher so what would the equivalent be?

Stepper Motor currents, what is a good baseline for a Kysan NEMA 17 Stepper Motor? is this a setting that needs to be calibrated?

Also, the thermosister for the heated bed I have is I believe 100K QWG-104F-3950, but on github, I couldnt find a list of compatible thermosisters in src/modules/tools/temperaturecontrol/TemperatureControl.cpp:64.

Any advice would be appreciated. thanks

Imported from wikidot

There is absolutely nothing to be gained setting delta_segments_per_second to a value greater than 100, you can do it but there is no gain and things will be slower.

junction_deviation is NOT the same as JERK, I’d suggest leaving it at the default value for now.

I set my Kysan steppers to 1-1.2 amps. They do run a tad warm at 1.2

Look at the current wiki page for temperature control. You only need to set the beta to 3950 for your thermistor, looking at the code is an old suggestion and is no longer relevant.

That is presuming the beta for your thermistor is 3950, check the data sheet for it.

Thanks, I was able to try out these suggestions, I left the Junction Deviation and Delta Segments at default.

I tried using the PID tuning for the Extruder, but is there is a similar setting for the PID measurements for the heater bed? (is using the BEta value preferred? I thought the PID tuning seemed like a neat idea, but maybe I don’t need to use that).

So I think I have something wrong in my Smoothieware settings, While printing a test 30mm cube, the side nearest the Z pillar is 30mm, but the side opposite is about 1mm short, so it prints trapezoidal (possibly with a slight cupping of those two edges as well, hard to tell). So, I double checked with my Marlin/RAMPS board, and that prints the same file fine. Is it possibly my delta radius is way off? Something else that may cause that?

Thanks

L:F

So, as I said, I tried again with my marlin/RAMPS board and I didn’t have any trapezoidal distortion. So, I am pretty sure I have an issue with my software/config, rather then a hardware issue. I double checked my settings, and can’t figure out what I have messed up, maybe somebody could take a look?

# Robot module configurations : general handling of movement G-codes and slicing into moves

arm_solution linear_delta # delta selection
arm_length 240.00 # this is the length of an arm from hinge to hinge
arm_radius 177.25 # this is the horiontal distance from hinge to hinge when the effector is centered

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 5 # Lines can be cut into segments ( not usefull with cartesian coordinates robots ).
delta_segments_per_second 100 # segments per second used for deltas

Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions

alpha_steps_per_mm 80 # Steps per mm for alpha stepper
beta_steps_per_mm 80 # Steps per mm for beta stepper
gamma_steps_per_mm 80 # 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 1500 # Acceleration in mm/second/second.
acceleration_ticks_per_second 1000 # Number of times per second the speed is updated
junction_deviation 0.05 # Similar to the old “max_jerk”, in millimeters,
# and Lower values mean being more careful, higher values means being faster and have more jerk

Stepper module configuration

microseconds_per_step_pulse 1 # Duration of step pulses to stepper drivers, in microseconds
minimum_steps_per_minute 1200 # Never step slower than this
base_stepping_frequency 100000 # Base frequency for stepping, higher gives smoother movement

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
alpha_current 1.2 # X stepper motor current
alpha_max_rate 30000.0 # mm/min actuator max speed
x_axis_max_speed 30000.0 # mm/min cartesian 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.2 # Y stepper motor current
beta_max_rate 30000.0 # mm/min
y_axis_max_speed 30000.0 # mm/min

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.2 # Z stepper motor current
gamma_max_rate 30000.0 # mm/min
z_axis_max_speed 30000.0 # mm/min

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

uart0.baud_rate 115200 # 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 false # disable the MSD (USB SDCARD) when set to true

Extruder module configuration

extruder_module_enable true # Whether to activate the extruder module at all. All configuration is ignored if false
extruder_steps_per_mm 880.00 # Steps per mm for extruder stepper
extruder_default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
extruder_acceleration 500 # Acceleration in mm/sec^2 only used for retracts
extruder_max_speed 20 # mm/sec NOTE only used for retracts

extruder_step_pin 2.0 # Pin for extruder step signal
extruder_dir_pin 0.5 # Pin for extruder dir signal
extruder_en_pin 0.4 # Pin for extruder enable signal
delta_current 0.7 # Extruder stepper motor current

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.24 # Pin for the thermistor to read
temperature_control.hotend.heater_pin 2.5 # Pin that controls the heater
temperature_control.hotend.thermistor EPCOS100K # see src/modules/tools/temperaturecontrol/TemperatureControl.cpp:64 for a list of valid thermistor names
temperature_control.hotend.set_m_code 104 #
temperature_control.hotend.set_and_wait_m_code 109 #
temperature_control.hotend.designator T #

#P14.9 0.699 D79.91

temperature_control.hotend.p_factor 14.9

temperature_control.hotend.i_factor 0.699

temperature_control.hotend.d_factor 79.91

For EPCOS B57540G0104F000 Digikey 495-2125-ND change as needed

temperature_control.bed.enable true #
temperature_control.bed.thermistor_pin 0.23 #
temperature_control.bed.heater_pin 2.7 #
temperature_control.bed.beta 3950 #
temperature_control.bed.thermistor EPCOSB57540G0104F000 # B57891S0104F008 Digikey 495-2164-ND
temperature_control.bed.set_m_code 140 #
temperature_control.bed.set_and_wait_m_code 190 #
temperature_control.bed.designator B #

uncomment followng to use bang bang isntead of PID for the bed (best for relay conrolled hotbeds)

#temperature_control.bed.bang_bang true # set to true to use bang bang control rather than PID
#temperature_control.bed.hysteresis 2.0 # set to the temperature in degrees C to use as hysteresis when using bang bang

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 #

automatically toggle a switch at a specified temperature

useful to turn on a fan or water pump to cool the hotend

#temperatureswitch.hotend.enable true #
#temperatureswitch.hotend.type misc # select which MOSFET to use, fan or misc (small MOSFETs)
#temperatureswitch.hotend.threshold_temp 60.0 # temperature to turn on (if rising) or off the switch
#temperatureswitch.hotend.heatup_poll 15 # poll heatup at 15 sec intervals
#temperatureswitch.hotend.cooldown_poll 60 # poll cooldown at 60 sec intervals

switch.psu.enable false # turn atx on/off

switch.psu.input_on_command M80

switch.psu.input_off_command M81

switch.psu.output_pin 2.13o! # open drain, inverted

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
delta_homing true # forces all three axis to home a the same time regardless of what is specified in G28
alpha_max_endstop 1.24^ #
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 0 # this gets loaded after homing when home_to_max is set
beta_max_endstop 1.26^ #
beta_homing_direction home_to_max #
beta_min 0 #
beta_max 0 #
gamma_max_endstop 1.28^ #
gamma_homing_direction home_to_max #
gamma_min 0 #
gamma_max 310.000 # change to suit your height

#probe endstop
#probe_pin 1.29 # optional pin for probe

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

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

alpha_trim -10.2 # software trim for alpha stepper endstop (in mm) - moves down
beta_trim -10.55 # software trim for beta stepper endstop (in mm)
gamma_trim -10.95 # software trim for gamma stepper endstop (in mm)

optional Z probe

zprobe.enable false # 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.debounce_count 100 # set if noisy
zprobe.fast_feedrate 100 # move feedrate
zprobe.probe_height 5 # how much above bed to start probe

associated with zprobe the leveling strategy to use

#leveling-strategy.delta-calibration.enable true # basic delta calibration
#leveling-strategy.delta-calibration.radius 100 # the probe radius

Pause button

pause_button_enable true #

panel.enable false # set to true to enable the panel code
panel.lcd viki_lcd # set type of panel also viki_lcd, i2c_lcd is a generic i2c panel, panelolu2
panel.encoder_a_pin 3.25!^ # encoder pin
panel.encoder_b_pin 3.26!^ # encoder pin
panel.i2c_pins 3 # set i2c channel to use

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 185 # temp to set hotend when preheat is selected
panel.bed_temperature 60 # temp to set bed when preheat is selected

Azteeg specific settings do not change

currentcontrol_module_enable true #
digipot_max_current 2.4 # max current
digipot_factor 106.0 # factor for converting current to digipot value

return_error_on_unhandled_gcode false #

and for what it was worth my marlin delta settings were

// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD 237.0 // mm

// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 162.5 // mm

// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 20.0 // mm

// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 22.5 // mm

Thanks in advance for anyone that has an idea of what is going on, I appreciate it.

Just wrote : http://smoothieware.org/from-marlin