# Dual Gantry Configuration

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

Setting Description Notes
\$ja=2000000 Junction acceleration mode normal max centripetal acceleration around corners

Getting Started Pages

Reference Pages

Discussion Topics

Chilipeppr

Troubleshooting

Developer Pages

##### Clone this wiki locally
You can’t perform that action at this time.
Press h to open a hovercard with more details.