corexy + 2 linear axis

Hi

I read about implementation of new axis, but i am not sure if it is working with corexy. On my machine now I use two motors for corexy and one for linear axe (Z). I also use all six endswitches. Now I want to add another linear axe and two end switches. Is this possible with new firmware?

Imported from wikidot

I believe it would work if you use http://smoothieware.org/6axis

Hi Artur

I compiled firmware with AXIS=4 PAXIS=4 CNC=1 . Corexy and Z are working normal, but for A axe i don’t understand how to setup it correctly. What units are used here? I played around delta_steps_per_mm and end-stops parameters for A axe with various numbers range but without success. The situation is that motor is loosing steps or it rotates for a little time. Home switch seems to work fine. This is my config.

# NOTE Lines must not exceed 132 characters
# Robot module configurations : general handling of movement G-codes and slicing into moves
default_feed_rate                            12000             # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate                            25000            # 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 ).

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

arm_solution corexy

type of machine

corexy_homing true # set to true if homing on a hbot or corexy

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 1500 # Acceleration in mm/second/second.
z_acceleration 400 # Acceleration for Z only moves in mm/s^2, 0 uses acceleration which is the default. DO NOT SET ON A DELTA
acceleration_ticks_per_second 1000 # Number of times per second the speed is updated
junction_deviation 0.01 # Similar to the old “max_jerk”, in millimeters,

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

Cartesian axis speed limits

x_axis_max_speed 2500 # mm/min
y_axis_max_speed 2500 # mm/min
z_axis_max_speed 300 # mm/min
a_axis_max_speed 300 # mm/min

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

#X axis
alpha_steps_per_mm 80 # Steps per mm for alpha stepper
alpha_step_pin 2.0 # Pin for alpha stepper step signal
alpha_dir_pin 0.5! # Pin for alpha stepper direction
alpha_en_pin 0.4 # Pin for alpha enable pin
alpha_current 1.9 # X stepper motor current
alpha_max_rate 25000.0 # mm/min

#Y axis
beta_steps_per_mm 80 # Steps per mm for beta stepper
beta_step_pin 2.1 # Pin for beta stepper step signal
beta_dir_pin 0.11! # Pin for beta stepper direction
beta_en_pin 0.10 # Pin for beta enable
beta_current 1.9 # Y stepper motor current
beta_max_rate 25000.0 # mm/min

#Z axis
gamma_steps_per_mm 158 # Steps per mm for gamma stepper
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.5 # Z stepper motor current
gamma_max_rate 300.0 # mm/min
gamma_acceleration 500.0 # mm/sec²

#A axis
delta_steps_per_mm 1.8 # may be steps per degree for example
delta_step_pin 2.2 # Pin for delta stepper step signal
delta_dir_pin 0.20! # Pin for delta stepper direction
delta_en_pin 0.19 # Pin for delta enable
delta_current 0.6 # Z stepper motor current
delta_max_rate 0.03 # 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 true # This enables a second usb serial port (to have both pronterface
# and a terminal connected)

Endstops new syntax (the name is not significant)

#X axis
endstop.minx.enable true # enable an endstop
endstop.minx.pin 1.24^! # pin
endstop.minx.homing_direction home_to_min # direction it moves to the endstop
endstop.minx.homing_position 0 # the cartesian coordinate this is set to when it homes
endstop.minx.axis X # the axis designator
endstop.minx.max_travel 500 # the maximum travel in mm before it times out
endstop.minx.fast_rate 50 # fast homing rate in mm/sec
endstop.minx.slow_rate 25 # slow homing rate in mm/sec
endstop.minx.retract 0 # bounce off endstop in mm

#Y axis
endstop.miny.enable true # enable an endstop
endstop.miny.pin 1.26! # pin
endstop.miny.homing_direction home_to_min # direction it moves to the endstop
endstop.miny.homing_position 0 # the cartesian coordinate this is set to when it homes
endstop.miny.axis Y # the axis designator
endstop.miny.max_travel 500 # the maximum travel in mm before it times out
endstop.miny.fast_rate 50 # fast homing rate in mm/sec
endstop.miny.slow_rate 25 # slow homing rate in mm/sec
endstop.miny.retract 0 # bounce off endstop in mm

#Z axis
endstop.minz.enable true # enable an endstop
endstop.minz.pin 1.28! # pin
endstop.minz.homing_direction home_to_min # direction it moves to the endstop
endstop.minz.homing_position 0 # the cartesian coordinate this is set to when it homes
endstop.minz.axis Z # the axis designator
endstop.minz.max_travel 100 # the maximum travel in mm before it times out
endstop.minz.fast_rate 10 # fast homing rate in mm/sec
endstop.minz.slow_rate 2 # slow homing rate in mm/sec
endstop.minz.retract 0 # bounce off endstop in mm

#A axis
endstop.mina.enable true # enable an endstop
endstop.mina.pin 1.29! # pin
endstop.mina.homing_direction home_to_min # direction it moves to the endstop
endstop.mina.homing_position 0 # the cartesian coordinate this is set to when it homes
endstop.mina.axis A # the axis designator
endstop.mina.max_travel 50000 # the maximum travel in mm before it times out
endstop.mina.fast_rate 0.1 # fast homing rate in mm/sec
endstop.mina.slow_rate 0.1 # slow homing rate in mm/sec
endstop.mina.retract 0 # bounce off endstop in mm

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

#endstop.minx.limit_enable false # set to true to enable the limit on this endstop
#endstop.miny.limit_enable false # set to true to enable the limit on this endstop
#endstop.minz.limit_enable false # set to true to enable the limit on this endstop

also define the pin needed and the Axis designator if limit on a max pin not defined above

endstop.maxx.enable true # enable an endstop
endstop.maxx.pin 1.25! # pin
endstop.maxx.limit_enable true # set to true to enable the limit on this endstop
endstop.maxx.axis X # the axis designator

endstop.maxy.enable true # enable an endstop
endstop.maxy.pin 1.27! # pin
endstop.maxy.limit_enable true # set to true to enable the limit on this endstop
endstop.maxy.axis Y # the axis designator

#endstop.maxz.enable true # enable an endstop
#endstop.maxz.pin 1.29! # pin
#endstop.maxz.limit_enable true # set to true to enable the limit on this endstop
#endstop.maxz.axis Z # the axis designator

Only needed on a smoothieboard

currentcontrol_module_enable true #

return_error_on_unhandled_gcode true #

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 # use dhcp to get ip address

uncomment the 3 below to manually setup ip address

network.ip_address 192.168.1.222 # the IP address
network.ip_mask 255.255.255.0 # the ip mask
network.ip_gateway 192.168.1.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

delta_max_rate 0.03 # mm/min

sounds incredibly low, not even sure we support values this low.

This setting remained from the testing. If I configure A axe with the same parameters like X axe on x motor works normally on A not. Is something missing in configuration file maybe?

After commenting out planner_queue_size it seems that all is working normal.