Smoothieboard peut travailler avec plus de 3 axes.

Nous ne parlons pas d'extrudeurs ici ( ceux-ci sont pris en charge séparément, visitez Extrudeur ), mais des axes rotatifs, comme ceux utilisés par des machines 4 ou 5 axes par exemple..

Cette fonctionnalité est une des rares qui demande de compiler Smoothieware. Comme elle augmente énormément la taille la file d'attente de planification de mouvement, nous ne pouvons malheureusement pas l'intégrer dans le micrologiciel de base.

Vous trouverez ici deux dossiers, écrits au moment de la sortie de cette fonctionnalité :

NOTEZ qu'actuellement WCS n'est pas pris en charge pour les axes ABC (G92, G10 Lx)

Compiler 6 axes.

Avant de commencer, merci de lire compiler Smoothie et compilez Smoothie “normallement” pour vous entraîner.

Une fois terminé ( et seulement après avoir terminé), vous répétez le même procédé, mais au lieu de faire :

make

Vous faites maintenant :

make clean
make AXIS=6 CNC=1

Vous pouvez utiliser 4 ou 5 au lieu des 6 axes. C'est une économie de mémoire et vous permet de l'utiliser pour autres choses.

Par défaut, Smoothie calcule des distances sur les trois premiers axes ( XYZ ). Vous pouvez changer de comportement en configurant le paramètre de compilation PAXIS, par exemple :

make AXIS=5 PAXIS=4 CNC=1

Smoothie est maintenant compilée avec les axes XYZAB et les distances sont calculées dans l'espace XYZA. REMARQUEZ que dans la majorité des cas vous N'AVEZ PAS besoin de configurer PAXIS. Ne l'utilisez que si vous comprenez la différence entre des axes Cartésiens et disons, des axes rotatifs.

Une fois votre micrologiciel compilé, vous pouvez maintenant l'installer sur votre carte et commencer à l'utiliser.

Utiliser des axes supplémentaires

Vous pouvez maintenant ajouter ceci à votre fichier de configuration :

# A axis
delta_steps_per_mm                    100     # may be steps per degree for example
delta_step_pin                               xx              # Pin for delta stepper step signal
delta_dir_pin                                xx             # Pin for delta stepper direction
delta_en_pin                                 xx             # Pin for delta enable
delta_current                                1.5              # Z stepper motor current
delta_max_rate                               300.0            # mm/min
delta_acceleration                          500.0            # mm/sec²

# B axis
epsilon_steps_per_mm                    100     # may be steps per degree for example
epsilon_step_pin                              xx              # Pin for delta stepper step signal
epsilon_dir_pin                                xx             # Pin for delta stepper direction
epsilon_en_pin                                xx             # Pin for delta enable
epsilon_current                                1.5              # Z stepper motor current
epsilon_max_rate                               300.0            # mm/min
epsilon_acceleration                          500.0            # mm/sec²

# C axis
zeta_steps_per_mm                    100     # may be steps per degree for example
zeta_step_pin                               xx              # Pin for delta stepper step signal
zeta_dir_pin                                xx             # Pin for delta stepper direction
zeta_en_pin                                 xx             # Pin for delta enable
zeta_current                                1.5              # Z stepper motor current
zeta_max_rate                               300.0            # mm/min
zeta_acceleration                          500.0            # mm/sec²

Cette configuration est similaire à celle de vos axes XYZ et vous devez modifier les valeurs pour correspondre à votre machine.

Facultatif : si vous utilisez des interrupteurs de fin de course sur les axes A, B, C, vous devez remplacer votre section Endstop par celle-ci ( vous la trouverez aussi ici ) :

NOTE N'utilisez pas la syntaxe suivante si vous utilisez uniquement les axes XYZ ! Utilisez la syntaxe habituelle de configuration de fin de course.

NOTE A cause d'un bug, vous devez définir tous les axe Due to a bug vous devez définir tous les axes précédents comme des butées de référencement, donc si vous voulez la faire un repérage sur la butées C, XYZAB doivent aussi être définies, pas seulement XYZC. Cela sera éventuellement corrigé.

## Endstops new syntax (the name is not significant)
# NOTE only a min or a max homing endstop maybe defined
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                         5                # bounce off endstop in mm

# uncomment for homing to max and comment the minx above
#endstop.maxx.enable                          true             # enable an endstop
#endstop.maxx.pin                             1.25             # pin
#endstop.maxx.homing_direction                home_to_max      # direction it moves to the endstop
#endstop.maxx.homing_position                 200              # the cartesian coordinate this is set to when it homes
#endstop.maxx.axis                            X                # the axis designator
#endstop.maxx.max_travel                      500              # the maximum travel in mm before it times out
#endstop.maxx.fast_rate                       50               # fast homing rate in mm/sec
#endstop.maxx.slow_rate                       25               # slow homing rate in mm/sec
#endstop.maxx.retract                         5                # bounce off endstop in mm

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                         5                # bounce off endstop in mm

# uncomment for homing to max and comment the min above
#endstop.maxy.enable                          true             # enable an endstop
#endstop.maxy.pin                             1.27             # pin
#endstop.maxy.homing_direction                home_to_max      # direction it moves to the endstop
#endstop.maxy.homing_position                 200              # the cartesian coordinate this is set to when it homes
#endstop.maxy.axis                            Y                # the axis designator
#endstop.maxy.max_travel                      500              # the maximum travel in mm before it times out
#endstop.maxy.fast_rate                       50               # fast homing rate in mm/sec
#endstop.maxy.slow_rate                       25               # slow homing rate in mm/sec
#endstop.maxy.retract                         5                # bounce off endstop in mm

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                         5                # bounce off endstop in mm

# uncomment for homing to max and comment the min above
#endstop.maxz.enable                          true             # enable an endstop
#endstop.maxz.pin                             1.29             # pin
#endstop.maxz.homing_direction                home_to_max      # direction it moves to the endstop
#endstop.maxz.homing_position                 200              # the cartesian coordinate this is set to when it homes
#endstop.maxz.axis                            Z                # the axis designator
#endstop.maxz.max_travel                      100              # the maximum travel in mm before it times out
#endstop.maxz.fast_rate                       10               # fast homing rate in mm/sec
#endstop.maxz.slow_rate                       2                # slow homing rate in mm/sec
#endstop.maxz.retract                         5                # 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

# OPTIONAL uncomment for homing the A axis to min
#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                 200              # the cartesian coordinate this is set to when it homes
#endstop.mina.axis                            A                # the axis designator
#endstop.mina.max_travel                      100              # the maximum travel in mm before it times out
#endstop.mina.fast_rate                       10               # fast homing rate in mm/sec
#endstop.mina.slow_rate                       2                # slow homing rate in mm/sec
#endstop.mina.retract                         5                # bounce off endstop in mm

# type of machine
#corexy_homing                               false            # set to true if homing on a hbot or corexy

# 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                                 XYZ              # x axis followed by y then z last
#move_to_origin_after_home                    false            # move XY to 0,0 after homing
#endstop_debounce_count                       100              # uncomment if you get noise on your endstops, default is 100
#endstop_debounce_ms                          1                # uncomment if you get noise on your endstops, default is 1 millisecond debounce
#home_z_first true # uncomment and set to true to home the Z first, otherwise Z homes after XY