Dual Gantry Configuration

Alden Hart edited this page Mar 18, 2017 · 17 revisions

This page describes how to set up configuration for a Dual gantry setup. The example given is a Shapeoko with a Dual Y gantry.

Overview

A dual gantry setup uses 2 motors to drive a single axis. Commonly the dual gantry is the Y axis, but not always. The 4 motors on TinyG can be used to support a dual Y gantry like so:

Motor Axis
Motor1 X Axis
Motor2 Y1 Axis
Motor3 Y2 Axis
Motor4 Z Axis

The Y2 axis has reverse polarity from Y1 as the 2 motors are facing each other and therefore need to turn in the opposite direction from each other.

Note that the 'A' axis is not used. Only the 4 motors and the X, Y and Z axes.

Settings

Here are some example settings for a Shapeoko dual Y gantry setup. You will probably need to experiment to get exact settings for your machine, but this is a good starting point. The maximum velocities and feed rates are set intentionally low and can probably be set higher with tuning.

Motor 1 (X Axis)

Setting Description Notes
$1ma=0 Map to X axis 0=X axis, 1=Y axis, 2=Z axis
$1sa=1.8 Step angle in degrees Set 1.8 for 200 step / revolution motors, 0.9 for 400 step / revolution
$1tr=36.54 Travel per rev in mm This value should be calibrated to your setup
$1mi=8 Microsteps to 8 Experiment with 4x microstepping for more power
$1po=0 Polarity normal Set polarity so X travels to the right for positive values (G0 X10)
$1pm=0 Power management mode 0=axis remains powered when idle

Motor 2 (Y1 Axis)

Setting Description Notes
$2ma=1 Map to Y axis
$2sa=1.8 Step angle in degrees
$2tr=36.54 Travel per rev in mm This value should be calibrated to your setup
$2mi=8 Microsteps to 8 Try 4x for more power
$2po=0 Polarity normal Set polarity so Y travels to the rear of the machine for positive values (G0 Y10)
$2pm=0 Power management mode 0=axis remains powered when idle

Motor 3 (Y2 Axis)

Setting Description Notes
$3ma=1 Map to Y axis Same as Motor 2
$3sa=1.8 Step angle in degrees
$3tr=36.54 Travel per rev in mm MUST BE THE SAME AS MOTOR 2
$3mi=8 Microsteps to 8 Should be the same as motor 2
$3po=1 Polarity reversed MUST BE OPPOSITE MOTOR 2
$3pm=0 Power management mode Should be the same as motor 2

Motor 4 (Z Axis)

Setting Description Notes
$4ma=2 Map to Z axis
$4sa=1.8 Step angle in degrees
$4tr=1.25 Travel per rev in mm The stock Shapeoko Z screw is 1.25 mm / rev
$4mi=4 Microsteps to 4
$4po=0 Polarity normal Set polarity so Z travels up for positive values (G0 Z10)
$4pm=1 Power management mode 1=axis shuts off when idle. Can also use $4pm=0

X Axis

Setting Description Notes
$xam=1 Axis mode normal
$xvm=10000 Velocity maximum Max velocity for axis, aka "traverse rate" or "seek"
$xfr=10000 Feed rate maximum Maximum feed rate for that axis. Limits F words to this value
$xtm=220 Travel maximum 220mm Used by homing to know when to give up
$xjm=5000000000 Jerk maximum That's 5 billion
$xjh=10000000000 Jerk homing That's 10 billion - jerk used during homing operations
$xjd=0.01 Junction deviation For cornering control
$xsn=1 Minimum switch mode 1=homing-only
$xsx=0 Maximum switch mode 0=disabled
$xsv=3000 Search velocity Homing speed during search phase (drive to switch)
$xlv=100 Latch velocity Homing speed during latch phase (drive off switch)
$xzb=3 Zero backoff offset from switch for zero in absolute coordinate system

Y Axis

Y axis commands will drive both Y motors.

Setting Description Notes
$yam=1 Axis mode normal
$yvm=10000 Velocity maximum
$yfr=10000 Feed rate maximum
$ytm=220 Travel maximum 220mm
$yjm=5000000000 Jerk maximum That's 5 billion
$yjh=10000000000 Jerk homing That's 10 billion - jerk used during homing operations
$yjd=0.01 Junction deviation For cornering control
$ysn=1 Minimum switch mode 1=homing-only
$ysx=0 Maximum switch mode 0=disabled
$ysv=3000 Search velocity Homing speed during search phase (drive to switch)
$ylv=100 Latch velocity Homing speed during latch phase (drive off switch)
$yzb=3 Zero backoff offset from switch for zero in absolute coordinate system

Z Axis

Setting Description Notes
$zam=1 Axis mode normal
$zvm=600 Velocity maximum
$zfr=600 Feed rate maximum
$ztm=100 Travel maximum 220mm
$zjm=50000000 Jerk maximum That's 50 million
$zjh=100000000 Jerk homing That's 100 million - jerk used during homing operations
$zjd=0.01 Junction deviation For cornering control
$zsn=0 Minimum switch mode 0=disabled
$zsx=1 Maximum switch mode 1=homing-only
$zsv=600 Search velocity Homing speed during search phase (drive to switch)
$zlv=100 Latch velocity Homing speed during latch phase (drive off switch)
$zzb=3 Zero backoff offset from switch for zero in absolute coordinate system

Additional Settings

Setting Description Notes
$ja=2000000 Junction acceleration mode normal max centripetal acceleration around corners
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.