6 axes
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é :
- ABC pull request on github.
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