synthetos / g2

g2core - The Next Generation
Other
633 stars 296 forks source link

Help getting started with a Due #412

Closed SketchThis closed 1 year ago

SketchThis commented 5 years ago

Hey all, I'm graduating myself from GRBL and looking to build a 5 axis system.

I've built several control systems before, GRBL included, but this is my first G2 system. I was drawn to it after using (and owning) a Handibot that's got G2 on it.

My setup right now is a bench test where I've got 5 stepper drivers, 5 steppers, some limit switches and a relay board. I've also got a Due, and will be using CNCjs on a PC/Raspberry Pi.

Here's where I'm stuck: I flashed the Due with this: https://github.com/synthetos/g2/releases/download/101.03/g2core-TestV9-g2v9k-101.03.bin

I used Chilipepprs online hardware fiddle to do it (because it was so easy) I've got the Due connected to CNCjs and they're talking just fine.

I used the pinout diagram I found here: https://github.com/synthetos/g2/wiki/Arduino-DUE-Pinout-for-g2core

When I wire in any of the steppers I'm not getting any movement of any kind.

I suspect that it's because I flashed something that wasn't configured.

I've got the repository cloned, and I have X Code installed and I'm looking through the files to see if I can figure out what the stock setups/pin assignments are, and I can't seem to figure it out. I've also looked all over this github, and I just can't find the information I need to compile a version for my needs.

I tried doing a test build with X Code and I'm getting build errors even when I haven't made any changes to anything:

2019-04-19 at 8 04 PM

I'm either missing something obvious, or because I'm not actually a developer it's just not making sense to me.

Could someone head me in the right direction?

karoria commented 5 years ago
  1. By default, g2 keeps motors disabled. So you need to enable them (see for motor_disabled and change it to motor_always_powered) in settings_default.h and set other machine specific parameters in this file before compiling.
  2. Compile (I suggest master branch as you are first timer. You also need to download motate directory separately and paste contents in the empty motate folder of g2).
  3. Flash newly generated bin to due. That's it! Please remember that unlike grbl you cannot set machine parameters after flashing the firmware. You have to do it before compiling in the above mentioned file. That's why you almost cannot use a readymade firmware like you did.

Hope I am clear.

SketchThis commented 5 years ago

Ok, that sounds reasonably simple. I didn't know that you couldn't configure afterwards like you do on GRBL, or that the motors are disabled by default... I get why, but that would have taken me a while to figure out!

I'm assuming the compiling errors I was getting in the screenshot were because I didn't have the motate directory downloaded? (I thought I did as I see some of the motate settings in there...)

karoria commented 5 years ago

Most probably the compile errors may be due to empty motate directory. Remember to use gshield option for compiling. Optionally, you can also use command line for compiling in mac. Rest, you are on right path. All the best...

SketchThis commented 5 years ago

Ok, I figured out the empty Motate directory, running the X Code file that was in the G2 directory, not the main directory of G2. I made a little progress, but I'm still really stuck on this compiling thing... I tried to compile a stock Gshield version from the master branch just to see if I could get it to compile and this is what happened:

https://drive.google.com/file/d/1zYeSXztFbKogHjmHGWCbOCyDb_mphR-n/view?usp=sharing

Hopefully that video explains much better what I'm failing at. I fully realize that the problem is very likely me, I just don't know where I'm going wrong... Is X Code even the right utility to do this?

SketchThis commented 5 years ago

Ok, bit of an update, I got it to compile, I'm not sure how but I did!

image

I'm assuming this is the setting(s) I'm looking for.

I see that there are settings for different machine types, ShopBot, Ultimaker, etc... If I change the default settings, how do I know that when I do a build it's going to pull those default settings? Is there another "settings for my settings" somewhere?

Also, while I do have a pinout diagram, it does note that the pins are changing a lot. The latest diagram is a lot older than this build. I feel like it's a good idea to check which pins are assigned when I build.. I looked through and found a "Motate Pins" file.. Is that what assigns the pins? I couldn't really tell from the file...

karoria commented 5 years ago

You have almost done it. Have you flashed it to due?

  1. Yes, you can define the settings file while compiling. I am not experienced user of xcode. So cant exactly tell you where to define it. I always use settings_default.h to be safer as I am not a programmer.
  2. The only pinout diagram availabe for g2core still stays true for most of the default themes. So don't worry. But yes, there are instructions available if you want to change it. I suggest to use default pinout now, till you become an experienced user of g2. This is because there is still lot of development and changes going on and we may have additional issues with pinout changes. I am not sure but I suspect.
  3. Now, as you succeeded compiling it, the only experimentation you need is changing machine parameters and see which suits best to you.
karoria commented 5 years ago

Sorry, forgot to mention that the settings you are in as per screenshot is right.

SketchThis commented 5 years ago

I haven't flashed it just yet, but I'm going to take a crack at it this afternoon. I'll post the results!

SketchThis commented 5 years ago

Ok, I'm getting a little closer, I was able to alter the settings.config.h file and enable the X motor, and when I compiled it worked. I also used the command line tool to flash to the DUE, so that's working as well. I'm using CNCjs to connect to the DUE to control it, when I connect, that also works (I can do the $$ command to see all of the settings, etc so I know it's working)

However, I'm still getting no motor movement. On top of that, when I issue move commands, (X1 X2, etc) the DRO isn't changing.

So for some reason it's not taking the move commands.

I see in these settings files there are a bunch for different machines. How do I know that when I compile it's using the settings file I altered? Is there a way to check/change that? I'm thinking that this might be my problem...

BTW I'm using X Code to compile...

I checked the "makefile" and I saw that it's referencing the file I've been editing:

image

But it sounds like from the comment above that there is an exception to this rule, with certain boards it could be pulling different settings?

karoria commented 5 years ago

You figured it right. compile time file selection is as per "makefile". For time being, please don't experiment with other settings. "Motors not moving" is the problem of settings file only as I feel. Your compiling and flashing process doesn't have any issues what I can understand from your description. Kindly share your settings_default.h so I can see if there can be any problem with it.

SketchThis commented 5 years ago

There's my settings file.

First I started with ONLY changing the motor_disabled value, and that didn't give me anything. Then I added some random numbers to microsteps/steps per unit just to see if I could get some reaction.

Still nothing.

I have a feeling like this is a configuration problem and not a wiring problem because I'm not seeing any movement on any axis in the DRO. Once I see that, hopefully I'll get some physical motor movement, and if I don't at least seeing it in the DRO will convince me that the board is likely putting out steps...

settings_default.h.zip

karoria commented 5 years ago

OK. Got it. Please replace AXIS_DISABLED with AXIS_STANDARD for x, y and z axis and use AXIS_RADIUS for a, b and c axis if you want to use any of them. Rest seems ok. Compile and flash with this changes done and share the results..Hopefully you will get the axis moving. I suggest to enable all 3 axis (motors and axis both) in one go and then compile and flash. Best of luck.!!!

SketchThis commented 5 years ago

Ok that worked! I can now connect to the board and get "movement" in the DRO!

THANKS!!

However I'm still not getting physical motor movement. I know my bench setup works because I can use other controllers with it. Is there a way I can verify that the pins I'm using are accurate? I'm following the posted pinout PDF, but that PDF says that there are likely pin changes. Can I see in the firmware build where the pin assignments might be so I can make sure I'm using the right ones?

rkoe commented 5 years ago

I'm successfully using g2 with a Due on a milling-machine for quite some time now. I could probably check and send you some information in a few days. (But note that I'm using my own G-code-sender, since none of the GUIs I've tested worked well with g2. But this may have changed since then.)

Regards, Roland

SketchThis commented 5 years ago

I'm successfully using g2 with a Due on a milling-machine for quite some time now. I could probably check and send you some information in a few days. (But note that I'm using my own G-code-sender, since none of the GUIs I've tested worked well with g2. But this may have changed since then.) Regards, Roland

That would be awesome. Mainly what I'd be interested in knowing is how you have the axes wired (specifically what pins you're using).

Right now I can't tell if I'm using the wrong pins, or if I'm not getting any outputs at the pins. I suppose what I really need is a scope to check the pins on the board, but barring that making sure I've got everything setup properly seems like a prudent first step.

I'm using some basic open loop stepper drivers (cheap Chinese ones I got on Amazon for bench testing). For Step+ and Dir+ I've got them connected to pins 2 and 5 respectively. (I used this: https://github.com/synthetos/g2/wiki/Arduino-DUE-Pinout-for-g2core as a guide)

karoria commented 5 years ago

You are using right pins for x axis. So no worry. Still you can check the pulse with multimeter as you can be able to see the meter display some random numbers when the pulses actually being sent.

mhlong10 commented 5 years ago

One thing to double check is the ENABLE_POLARITY. Depending on how your hardware looks it might be backwards. I went thru a similar situation, scoped out the signals and then as it turns out it was simply that my enable was backwards.

SketchThis commented 5 years ago

Does that matter if I'm not using the enable pins on my stepper drivers though? Right now the way they're setup on the bench is that I don't need to hook up the Enable positive or Negative at all.

On Thu, May 9, 2019 at 7:16 AM mhlong10 notifications@github.com wrote:

One thing to double check is the ENABLE_POLARITY. Depending on how your hardware looks it might be backwards. I went thru a similar situation, scoped out the signals and then as it turns out it was simply that my enable was backwards.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/synthetos/g2/issues/412#issuecomment-490861720, or mute the thread https://github.com/notifications/unsubscribe-auth/ABMSBPIRX3JVVZYUTUJBXE3PUQBX3ANCNFSM4HHIL2OQ .

-- Eric Schimelpfenig www.ericschimel.com

mhlong10 commented 5 years ago

I didn't realize you are not using the enable pins. It shouldn't matter in that case.

SketchThis commented 5 years ago

Ok, I was worried that beyond the actual enable pins that the software looked at that setting... I'll continue to poke around at the hardware to see if I can work this out...

ril3y commented 5 years ago

High jacking thread.

Roland would you share your GUI sender? Also CNCjs works with G2. Thanks for helping us out on the issues.

Riley

turboproc commented 5 years ago

You should be able to make this work in the end. Running here a WorkBee with g2core on a DUE and LaserWeb4 as the gui. The DUE has been complimented with a rather trivial shield to allow easy connection to stepper drivers and end switches.

Below my config file. It's a bit long and could be cleaned up, nvertheless it;s the version that compiles without complains makes my machine move.

Regarding Laserweb4 I had to make some changes as this didn't work out of the box. Let me know in case you want the details.

`/*

// ***> NOTE: The init message must be a single line with no CRs or LFs

ifndef INIT_MESSAGE

define INIT_MESSAGE "Initializing configs to WorkBee 50x75 settings"

endif

//* // GLOBAL + GENERAL SETTINGS ** //*

// *** Machine configuration settings

ifndef JUNCTION_INTEGRATION_TIME

define JUNCTION_INTEGRATION_TIME 0.75 // {jt: cornering - between 0.05 and 2.00 (max)

endif

ifndef CHORDAL_TOLERANCE

define CHORDAL_TOLERANCE 0.01 // {ct: chordal tolerance for arcs (in mm)

endif

ifndef MOTOR_POWER_TIMEOUT

define MOTOR_POWER_TIMEOUT 2.00 // {mt: motor power timeout in seconds

endif

ifndef SOFT_LIMIT_ENABLE

define SOFT_LIMIT_ENABLE 1 // {sl: 0=off, 1=on

endif

ifndef HARD_LIMIT_ENABLE

define HARD_LIMIT_ENABLE 1 // {lim: 0=off, 1=on

endif

ifndef SAFETY_INTERLOCK_ENABLE

define SAFETY_INTERLOCK_ENABLE 1 // {saf: 0=off, 1=on

endif

ifndef SPINDLE_MODE

define SPINDLE_MODE 1 // {spmo; 0=diabled, 1=plan to stop, 2=continuous

endif

ifndef SPINDLE_ENABLE_POLARITY

define SPINDLE_ENABLE_POLARITY SPINDLE_ACTIVE_HIGH // {spep: 0=active low, 1=active high

endif

ifndef SPINDLE_DIR_POLARITY

define SPINDLE_DIR_POLARITY 0 // {spdp: 0=clockwise is low, 1=clockwise is high

endif

ifndef SPINDLE_PAUSE_ON_HOLD

define SPINDLE_PAUSE_ON_HOLD false // {spph:

endif

ifndef SPINDLE_SPINUP_DELAY

define SPINDLE_SPINUP_DELAY 0 // {spde:

endif

ifndef SPINDLE_DWELL_MAX

define SPINDLE_DWELL_MAX 10000000.0 // maximum allowable dwell time. May be overridden in settings files

endif

ifndef SPINDLE_SPEED_MIN

define SPINDLE_SPEED_MIN 0.0 // {spsn:

endif

ifndef SPINDLE_SPEED_MAX

define SPINDLE_SPEED_MAX 1000000.0 // {spsm:

endif

ifndef COOLANT_MIST_POLARITY

define COOLANT_MIST_POLARITY 1 // {comp: 0=active low, 1=active high

endif

ifndef COOLANT_FLOOD_POLARITY

define COOLANT_FLOOD_POLARITY 1 // {cofp: 0=active low, 1=active high

endif

ifndef COOLANT_PAUSE_ON_HOLD

define COOLANT_PAUSE_ON_HOLD true // {coph:

endif

ifndef FEEDHOLD_Z_LIFT

define FEEDHOLD_Z_LIFT 0 // {zl: mm to lift Z on feedhold

endif

ifndef PROBE_REPORT_ENABLE

define PROBE_REPORT_ENABLE true // {prbr:

endif

ifndef MANUAL_FEEDRATE_OVERRIDE_ENABLE

define MANUAL_FEEDRATE_OVERRIDE_ENABLE false

endif

ifndef MANUAL_FEEDRATE_OVERRIDE_PARAMETER

define MANUAL_FEEDRATE_OVERRIDE_PARAMETER 1.00

endif

// Communications and Reporting Settings //

ifndef USB_SERIAL_PORTS_EXPOSED

define USB_SERIAL_PORTS_EXPOSED 1 // Valid options are 1 or 2, only!

endif

ifndef XIO_ENABLE_FLOW_CONTROL

define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // {ex: FLOW_CONTROL_OFF, FLOW_CONTROL_XON, FLOW_CONTROL_RTS

endif

ifndef COMM_MODE

define COMM_MODE JSON_MODE // {ej: TEXT_MODE, JSON_MODE

endif

ifndef TEXT_VERBOSITY

define TEXT_VERBOSITY TV_VERBOSE // {tv: TV_SILENT, TV_VERBOSE

endif

ifndef XIO_UART_MUTES_WHEN_USB_CONNECTED

define XIO_UART_MUTES_WHEN_USB_CONNECTED 0 // UART will be muted when USB connected (off by default)

endif

ifndef JSON_VERBOSITY

define JSON_VERBOSITY JV_MESSAGES // {jv: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE

endif

ifndef QUEUE_REPORT_VERBOSITY

define QUEUE_REPORT_VERBOSITY QR_OFF // {qv: QR_OFF, QR_SINGLE, QR_TRIPLE

endif

ifndef STATUS_REPORT_VERBOSITY

define STATUS_REPORT_VERBOSITY SR_FILTERED // {sv: SR_OFF, SR_FILTERED, SR_VERBOSE

endif

ifndef STATUS_REPORT_MIN_MS

define STATUS_REPORT_MIN_MS 100 // (no JSON) milliseconds - enforces a viable minimum

endif

ifndef STATUS_REPORT_INTERVAL_MS

define STATUS_REPORT_INTERVAL_MS 250 // {si: milliseconds - set $SV=0 to disable

endif

ifndef STATUS_REPORT_DEFAULTS // {sr: See Status Reports wiki page

define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","feed","vel","unit","coor","dist","admo","frmo","momo","stat"

// Alternate SRs that report in drawable units //#define STATUS_REPORT_DEFAULTS "line","vel","mpox","mpoy","mpoz","mpoa","coor","ofsa","ofsx","ofsy","ofsz","dist","unit","stat","homz","homy","homx","momo"

endif

ifndef MARLIN_COMPAT_ENABLED

define MARLIN_COMPAT_ENABLED false // boolean, either true or false

endif

// Gcode Startup Defaults //

ifndef GCODE_DEFAULT_UNITS

define GCODE_DEFAULT_UNITS MILLIMETERS // {gun: MILLIMETERS or INCHES

endif

ifndef GCODE_DEFAULT_PLANE

define GCODE_DEFAULT_PLANE CANON_PLANE_XY // {gpl: CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ

endif

ifndef GCODE_DEFAULT_COORD_SYSTEM

define GCODE_DEFAULT_COORD_SYSTEM G54 // {gco: G54, G55, G56, G57, G58 or G59

endif

ifndef GCODE_DEFAULT_PATH_CONTROL

define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS // {gpa: PATH_EXACT_PATH, PATH_EXACT_STOP, PATH_CONTINUOUS

endif

ifndef GCODE_DEFAULT_DISTANCE_MODE

define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE // {gdi: ABSOLUTE_DISTANCE_MODE, INCREMENTAL_DISTANCE_MODE

endif

//*** //* Motor Settings ** //*****

// MOTOR 1

ifndef M1_MOTOR_MAP

define M1_MOTOR_MAP AXIS_X_EXTERNAL // {1ma: AXIS_X, AXIS_Y...

endif

ifndef M1_STEP_ANGLE

define M1_STEP_ANGLE 1.8 // {1sa: degrees per step

endif

ifndef M1_TRAVEL_PER_REV

define M1_TRAVEL_PER_REV 8 // {1tr: 1.25 is a typical value for a screw axis

endif

ifndef M1_MICROSTEPS

define M1_MICROSTEPS 16 // {1mi: 1,2,4,8, 16,32 (G2 ONLY)

endif

ifndef M1_STEPS_PER_UNIT

define M1_STEPS_PER_UNIT 0 // {1su: steps to issue per unit of length or degrees of rotation

endif

ifndef M1_POLARITY

define M1_POLARITY 1 // {1po: 0=normal direction, 1=inverted direction

endif

ifndef M1_ENABLE_POLARITY

define M1_ENABLE_POLARITY IO_ACTIVE_LOW // {1ep: IO_ACTIVE_LOW or IO_ACTIVE_HIGH

endif

ifndef M1_STEP_POLARITY

define M1_STEP_POLARITY IO_ACTIVE_HIGH // {1ps: IO_ACTIVE_LOW or IO_ACTIVE_HIGH

endif

ifndef M1_POWER_MODE

define M1_POWER_MODE MOTOR_DISABLED // {1pm: MOTOR_DISABLED, MOTOR_ALWAYS_POWERED, MOTOR_POWERED_IN_CYCLE, MOTOR_POWERED_ONLY_WHEN_MOVING

endif

ifndef M1_POWER_LEVEL

define M1_POWER_LEVEL 0.0 // {1pl: 0.0=no power, 1.0=max power

endif

// MOTOR 2

ifndef M2_MOTOR_MAP

define M2_MOTOR_MAP AXIS_Y_EXTERNAL

endif

ifndef M2_STEP_ANGLE

define M2_STEP_ANGLE 1.8

endif

ifndef M2_TRAVEL_PER_REV

define M2_TRAVEL_PER_REV 8

endif

ifndef M2_MICROSTEPS

define M2_MICROSTEPS 16

endif

ifndef M2_STEPS_PER_UNIT

define M2_STEPS_PER_UNIT 0

endif

ifndef M2_POLARITY

define M2_POLARITY 0

endif

ifndef M2_ENABLE_POLARITY

define M2_ENABLE_POLARITY IO_ACTIVE_LOW

endif

ifndef M2_STEP_POLARITY

define M2_STEP_POLARITY IO_ACTIVE_HIGH

endif

ifndef M2_POWER_MODE

define M2_POWER_MODE MOTOR_DISABLED

endif

ifndef M2_POWER_LEVEL

define M2_POWER_LEVEL 0.0

endif

// MOTOR 3

ifndef M3_MOTOR_MAP

define M3_MOTOR_MAP AXIS_Z_EXTERNAL

endif

ifndef M3_STEP_ANGLE

define M3_STEP_ANGLE 1.8

endif

ifndef M3_TRAVEL_PER_REV

define M3_TRAVEL_PER_REV 8 // 1.25 is a typical value for a screw axis

endif

ifndef M3_MICROSTEPS

define M3_MICROSTEPS 16

endif

ifndef M3_STEPS_PER_UNIT

define M3_STEPS_PER_UNIT 0

endif

ifndef M3_POLARITY

define M3_POLARITY 1

endif

ifndef M3_ENABLE_POLARITY

define M3_ENABLE_POLARITY IO_ACTIVE_LOW

endif

ifndef M3_STEP_POLARITY

define M3_STEP_POLARITY IO_ACTIVE_HIGH

endif

ifndef M3_POWER_MODE

define M3_POWER_MODE MOTOR_DISABLED

endif

ifndef M3_POWER_LEVEL

define M3_POWER_LEVEL 0.0

endif

// MOTOR 4

ifndef M4_MOTOR_MAP

define M4_MOTOR_MAP AXIS_Y_EXTERNAL

endif

ifndef M4_STEP_ANGLE

define M4_STEP_ANGLE 1.8

endif

ifndef M4_TRAVEL_PER_REV

define M4_TRAVEL_PER_REV 8 // in degrees if rotary axis (ABC)

endif

ifndef M4_MICROSTEPS

define M4_MICROSTEPS 16

endif

ifndef M4_STEPS_PER_UNIT

define M4_STEPS_PER_UNIT 0

endif

ifndef M4_POLARITY

define M4_POLARITY 0

endif

ifndef M4_ENABLE_POLARITY

define M4_ENABLE_POLARITY IO_ACTIVE_LOW

endif

ifndef M4_STEP_POLARITY

define M4_STEP_POLARITY IO_ACTIVE_HIGH

endif

ifndef M4_POWER_MODE

define M4_POWER_MODE MOTOR_DISABLED

endif

ifndef M4_POWER_LEVEL

define M4_POWER_LEVEL 0.0

endif

// MOTOR 5

ifndef M5_MOTOR_MAP

define M5_MOTOR_MAP AXIS_B_EXTERNAL

endif

ifndef M5_STEP_ANGLE

define M5_STEP_ANGLE 1.8

endif

ifndef M5_TRAVEL_PER_REV

define M5_TRAVEL_PER_REV 360.0

endif

ifndef M5_MICROSTEPS

define M5_MICROSTEPS 8

endif

ifndef M5_STEPS_PER_UNIT

define M5_STEPS_PER_UNIT 0

endif

ifndef M5_POLARITY

define M5_POLARITY 0

endif

ifndef M5_ENABLE_POLARITY

define M5_ENABLE_POLARITY IO_ACTIVE_LOW

endif

ifndef M5_STEP_POLARITY

define M5_STEP_POLARITY IO_ACTIVE_HIGH

endif

ifndef M5_POWER_MODE

define M5_POWER_MODE MOTOR_DISABLED

endif

ifndef M5_POWER_LEVEL

define M5_POWER_LEVEL 0.0

endif

// MOTOR 6

ifndef M6_MOTOR_MAP

define M6_MOTOR_MAP AXIS_C_EXTERNAL

endif

ifndef M6_STEP_ANGLE

define M6_STEP_ANGLE 1.8

endif

ifndef M6_TRAVEL_PER_REV

define M6_TRAVEL_PER_REV 360.0

endif

ifndef M6_MICROSTEPS

define M6_MICROSTEPS 8

endif

ifndef M6_STEPS_PER_UNIT

define M6_STEPS_PER_UNIT 0

endif

ifndef M6_POLARITY

define M6_POLARITY 0

endif

ifndef M6_ENABLE_POLARITY

define M6_ENABLE_POLARITY IO_ACTIVE_LOW

endif

ifndef M6_STEP_POLARITY

define M6_STEP_POLARITY IO_ACTIVE_HIGH

endif

ifndef M6_POWER_MODE

define M6_POWER_MODE MOTOR_DISABLED

endif

ifndef M6_POWER_LEVEL

define M6_POWER_LEVEL 0.0

endif

//*** //* Axis Settings * //***

// X AXIS

ifndef X_AXIS_MODE

define X_AXIS_MODE AXIS_STANDARD // {xam: see canonical_machine.h cmAxisMode for valid values

endif

ifndef X_VELOCITY_MAX

define X_VELOCITY_MAX 5000.0 // {xvm: G0 max velocity in mm/min

endif

ifndef X_FEEDRATE_MAX

define X_FEEDRATE_MAX 5000.0 // {xfr: G1 max feed rate in mm/min

endif

ifndef X_TRAVEL_MIN

define X_TRAVEL_MIN 0.0 // {xtn: minimum travel for soft limits

endif

ifndef X_TRAVEL_MAX

define X_TRAVEL_MAX 300.0 // {xtm: travel between switches or crashes

endif

ifndef X_JERK_MAX

define X_JERK_MAX 1000.0 // {xjm:

endif

ifndef X_JERK_HIGH_SPEED

define X_JERK_HIGH_SPEED 1000.0 // {xjh:

endif

ifndef X_HOMING_INPUT

define X_HOMING_INPUT 2 // {xhi: input used for homing or 0 to disable

endif

ifndef X_HOMING_DIRECTION

define X_HOMING_DIRECTION 1 // {xhd: 0=search moves negative, 1= search moves positive

endif

ifndef X_SEARCH_VELOCITY

define X_SEARCH_VELOCITY 500.0 // {xsv: minus means move to minimum switch

endif

ifndef X_LATCH_VELOCITY

define X_LATCH_VELOCITY 100.0 // {xlv: mm/min

endif

ifndef X_LATCH_BACKOFF

define X_LATCH_BACKOFF 10.0 // {xlb: mm

endif

ifndef X_ZERO_BACKOFF

define X_ZERO_BACKOFF 2.0 // {xzb: mm

endif

// Y AXIS

ifndef Y_AXIS_MODE

define Y_AXIS_MODE AXIS_STANDARD

endif

ifndef Y_VELOCITY_MAX

define Y_VELOCITY_MAX 5000.0

endif

ifndef Y_FEEDRATE_MAX

define Y_FEEDRATE_MAX 5000.0

endif

ifndef Y_TRAVEL_MIN

define Y_TRAVEL_MIN 0.0

endif

ifndef Y_TRAVEL_MAX

define Y_TRAVEL_MAX 510.0

endif

ifndef Y_JERK_MAX

define Y_JERK_MAX 1000.0

endif

ifndef Y_JERK_HIGH_SPEED

define Y_JERK_HIGH_SPEED 1000.0

endif

ifndef Y_HOMING_INPUT

define Y_HOMING_INPUT 4

endif

ifndef Y_HOMING_DIRECTION

define Y_HOMING_DIRECTION 1

endif

ifndef Y_SEARCH_VELOCITY

define Y_SEARCH_VELOCITY 500.0

endif

ifndef Y_LATCH_VELOCITY

define Y_LATCH_VELOCITY 100.0

endif

ifndef Y_LATCH_BACKOFF

define Y_LATCH_BACKOFF 10.0

endif

ifndef Y_ZERO_BACKOFF

define Y_ZERO_BACKOFF 2.0

endif

// Z AXIS

ifndef Z_AXIS_MODE

define Z_AXIS_MODE AXIS_STANDARD

endif

ifndef Z_VELOCITY_MAX

define Z_VELOCITY_MAX 1000.0

endif

ifndef Z_FEEDRATE_MAX

define Z_FEEDRATE_MAX 1000.0

endif

ifndef Z_TRAVEL_MAX

define Z_TRAVEL_MAX 80.0

endif

ifndef Z_TRAVEL_MIN

define Z_TRAVEL_MIN 0.0

endif

ifndef Z_JERK_MAX

define Z_JERK_MAX 500.0

endif

ifndef Z_JERK_HIGH_SPEED

define Z_JERK_HIGH_SPEED 500.0

endif

ifndef Z_HOMING_INPUT

define Z_HOMING_INPUT 6

endif

ifndef Z_HOMING_DIRECTION

define Z_HOMING_DIRECTION 1

endif

ifndef Z_SEARCH_VELOCITY

define Z_SEARCH_VELOCITY 250.0

endif

ifndef Z_LATCH_VELOCITY

define Z_LATCH_VELOCITY 100.0

endif

ifndef Z_LATCH_BACKOFF

define Z_LATCH_BACKOFF 4.0

endif

ifndef Z_ZERO_BACKOFF

define Z_ZERO_BACKOFF 2.0

endif

// U AXIS

ifndef U_AXIS_MODE

define U_AXIS_MODE AXIS_DISABLED // {xam: see canonical_machine.h cmAxisMode for valid values

endif

ifndef U_VELOCITY_MAX

define U_VELOCITY_MAX 1000.0 // {xvm: G0 max velocity in mm/min

endif

ifndef U_FEEDRATE_MAX

define U_FEEDRATE_MAX 1000.0 // {xfr: G1 max feed rate in mm/min

endif

ifndef U_TRAVEL_MIN

define U_TRAVEL_MIN 0.0 // {xtn: minimum travel for soft limits

endif

ifndef U_TRAVEL_MAX

define U_TRAVEL_MAX 0.0 // {xtm: travel between switches or crashes

endif

ifndef U_JERK_MAX

define U_JERK_MAX 1000.0 // {xjm:

endif

ifndef U_JERK_HIGH_SPEED

define U_JERK_HIGH_SPEED 1000.0 // {xjh:

endif

ifndef U_HOMING_INPUT

define U_HOMING_INPUT 0 // {xhi: input used for homing or 0 to disable

endif

ifndef U_HOMING_DIRECTION

define U_HOMING_DIRECTION 0 // {xhd: 0=search moves negative, 1= search moves positive

endif

ifndef U_SEARCH_VELOCITY

define U_SEARCH_VELOCITY 500.0 // {xsv: minus means move to minimum switch

endif

ifndef U_LATCH_VELOCITY

define U_LATCH_VELOCITY 100.0 // {xlv: mm/min

endif

ifndef U_LATCH_BACKOFF

define U_LATCH_BACKOFF 4.0 // {xlb: mm

endif

ifndef U_ZERO_BACKOFF

define U_ZERO_BACKOFF 2.0 // {xzb: mm

endif

// V AXIS

ifndef V_AXIS_MODE

define V_AXIS_MODE AXIS_DISABLED

endif

ifndef V_VELOCITY_MAX

define V_VELOCITY_MAX 1000.0

endif

ifndef V_FEEDRATE_MAX

define V_FEEDRATE_MAX 1000.0

endif

ifndef V_TRAVEL_MIN

define V_TRAVEL_MIN 0.0

endif

ifndef V_TRAVEL_MAX

define V_TRAVEL_MAX 0.0

endif

ifndef V_JERK_MAX

define V_JERK_MAX 1000.0

endif

ifndef V_JERK_HIGH_SPEED

define V_JERK_HIGH_SPEED 1000.0

endif

ifndef V_HOMING_INPUT

define V_HOMING_INPUT 0

endif

ifndef V_HOMING_DIRECTION

define V_HOMING_DIRECTION 0

endif

ifndef V_SEARCH_VELOCITY

define V_SEARCH_VELOCITY 500.0

endif

ifndef V_LATCH_VELOCITY

define V_LATCH_VELOCITY 100.0

endif

ifndef V_LATCH_BACKOFF

define V_LATCH_BACKOFF 4.0

endif

ifndef V_ZERO_BACKOFF

define V_ZERO_BACKOFF 2.0

endif

// W AXIS

ifndef W_AXIS_MODE

define W_AXIS_MODE AXIS_DISABLED

endif

ifndef W_VELOCITY_MAX

define W_VELOCITY_MAX 1000.0

endif

ifndef W_FEEDRATE_MAX

define W_FEEDRATE_MAX 1000.0

endif

ifndef W_TRAVEL_MAX

define W_TRAVEL_MAX 0.0

endif

ifndef W_TRAVEL_MIN

define W_TRAVEL_MIN 0.0

endif

ifndef W_JERK_MAX

define W_JERK_MAX 500.0

endif

ifndef W_JERK_HIGH_SPEED

define W_JERK_HIGH_SPEED 500.0

endif

ifndef W_HOMING_INPUT

define W_HOMING_INPUT 0

endif

ifndef W_HOMING_DIRECTION

define W_HOMING_DIRECTION 0

endif

ifndef W_SEARCH_VELOCITY

define W_SEARCH_VELOCITY 250.0

endif

ifndef W_LATCH_VELOCITY

define W_LATCH_VELOCITY 25.0

endif

ifndef W_LATCH_BACKOFF

define W_LATCH_BACKOFF 4.0

endif

ifndef W_ZERO_BACKOFF

define W_ZERO_BACKOFF 2.0

endif

/***

define A_AXIS_MODE AXIS_RADIUS

define A_RADIUS (M4_TRAVEL_PER_REV/(2*3.14159628))

define A_VELOCITY_MAX ((X_VELOCITY_MAX/M1_TRAVEL_PER_REV)*360) // set to the same speed as X axis

define A_FEEDRATE_MAX A_VELOCITY_MAX

define A_TRAVEL_MIN -1.0 // min/max the same means infinite, no limit

define A_TRAVEL_MAX -1.0

define A_JERK_MAX (X_JERK_MAX*(360/M1_TRAVEL_PER_REV))

define A_JERK_HIGH_SPEED A_JERK_MAX

define A_HOMING_INPUT 0

define A_HOMING_DIRECTION 0

define A_SEARCH_VELOCITY (A_VELOCITY_MAX * 0.500)

define A_LATCH_VELOCITY (A_VELOCITY_MAX * 0.100)

define A_LATCH_BACKOFF 5.0

define A_ZERO_BACKOFF 2.0

***/

// A AXIS

ifndef A_AXIS_MODE

define A_AXIS_MODE AXIS_DISABLED

endif

ifndef A_RADIUS

define A_RADIUS (M4_TRAVEL_PER_REV/(2*3.14159628))

endif

ifndef A_VELOCITY_MAX

define A_VELOCITY_MAX ((X_VELOCITY_MAX/M1_TRAVEL_PER_REV)*360) // set to the same speed as X axis

endif

ifndef A_FEEDRATE_MAX

define A_FEEDRATE_MAX A_VELOCITY_MAX

endif

ifndef A_TRAVEL_MIN

define A_TRAVEL_MIN -1.0 // min/max the same means infinite, no limit

endif

ifndef A_TRAVEL_MAX

define A_TRAVEL_MAX -1.0

endif

ifndef A_JERK_MAX

define A_JERK_MAX (X_JERK_MAX*(360/M1_TRAVEL_PER_REV))

endif

ifndef A_JERK_HIGH_SPEED

define A_JERK_HIGH_SPEED A_JERK_MAX

endif

ifndef A_HOMING_INPUT

define A_HOMING_INPUT 0

endif

ifndef A_HOMING_DIRECTION

define A_HOMING_DIRECTION 0

endif

ifndef A_SEARCH_VELOCITY

define A_SEARCH_VELOCITY (A_VELOCITY_MAX * 0.500)

endif

ifndef A_LATCH_VELOCITY

define A_LATCH_VELOCITY (A_VELOCITY_MAX * 0.100)

endif

ifndef A_LATCH_BACKOFF

define A_LATCH_BACKOFF 5.0

endif

ifndef A_ZERO_BACKOFF

define A_ZERO_BACKOFF 2.0

endif

// B AXIS

ifndef B_AXIS_MODE

define B_AXIS_MODE AXIS_DISABLED

endif

ifndef B_RADIUS

define B_RADIUS (M5_TRAVEL_PER_REV/(2*3.14159628))

endif

ifndef B_VELOCITY_MAX

define B_VELOCITY_MAX ((X_VELOCITY_MAX/M1_TRAVEL_PER_REV)*360)

endif

ifndef B_FEEDRATE_MAX

define B_FEEDRATE_MAX B_VELOCITY_MAX

endif

ifndef B_TRAVEL_MIN

define B_TRAVEL_MIN -1.0

endif

ifndef B_TRAVEL_MAX

define B_TRAVEL_MAX -1.0

endif

ifndef B_JERK_MAX

define B_JERK_MAX (X_JERK_MAX*(360/M1_TRAVEL_PER_REV))

endif

ifndef B_JERK_HIGH_SPEED

define B_JERK_HIGH_SPEED B_JERK_MAX

endif

ifndef B_HOMING_INPUT

define B_HOMING_INPUT 0

endif

ifndef B_HOMING_DIRECTION

define B_HOMING_DIRECTION 0

endif

ifndef B_SEARCH_VELOCITY

define B_SEARCH_VELOCITY (B_VELOCITY_MAX * 0.500)

endif

ifndef B_LATCH_VELOCITY

define B_LATCH_VELOCITY (B_VELOCITY_MAX * 0.100)

endif

ifndef B_LATCH_BACKOFF

define B_LATCH_BACKOFF 5.0

endif

ifndef B_ZERO_BACKOFF

define B_ZERO_BACKOFF 2.0

endif

// C AXIS

ifndef C_AXIS_MODE

define C_AXIS_MODE AXIS_DISABLED

endif

ifndef C_RADIUS

define C_RADIUS (M6_TRAVEL_PER_REV/(2*3.14159628))

endif

ifndef C_VELOCITY_MAX

define C_VELOCITY_MAX ((X_VELOCITY_MAX/M1_TRAVEL_PER_REV)*360)

endif

ifndef C_FEEDRATE_MAX

define C_FEEDRATE_MAX C_VELOCITY_MAX

endif

ifndef C_TRAVEL_MIN

define C_TRAVEL_MIN -1.0

endif

ifndef C_TRAVEL_MAX

define C_TRAVEL_MAX -1.0

endif

ifndef C_JERK_MAX

define C_JERK_MAX (X_JERK_MAX*(360/M1_TRAVEL_PER_REV))

endif

ifndef C_JERK_HIGH_SPEED

define C_JERK_HIGH_SPEED C_JERK_MAX

endif

ifndef C_HOMING_INPUT

define C_HOMING_INPUT 0

endif

ifndef C_HOMING_DIRECTION

define C_HOMING_DIRECTION 0

endif

ifndef C_SEARCH_VELOCITY

define C_SEARCH_VELOCITY (C_VELOCITY_MAX * 0.500)

endif

ifndef C_LATCH_VELOCITY

define C_LATCH_VELOCITY (C_VELOCITY_MAX * 0.100)

endif

ifndef C_LATCH_BACKOFF

define C_LATCH_BACKOFF 5.0

endif

ifndef C_ZERO_BACKOFF

define C_ZERO_BACKOFF 2.0

endif

//*** //* GPIO Input / Output Settings **** //*****

// DIGITAL INPUTS // Set to allow the board to function if not otherwise set up // (least disruptive settings)

/* Legend: IO_MODE_DISABLED IO_ACTIVE_LOW aka NORMALLY_OPEN IO_ACTIVE_HIGH aka NORMALLY_CLOSED

INPUT_ACTION_NONE
INPUT_ACTION_STOP
INPUT_ACTION_FAST_STOP
INPUT_ACTION_HALT
INPUT_ACTION_RESET

INPUT_FUNCTION_NONE
INPUT_FUNCTION_LIMIT
INPUT_FUNCTION_INTERLOCK
INPUT_FUNCTION_SHUTDOWN
INPUT_FUNCTION_PANIC

*/

// Xmin on v9 board

ifndef DI1_MODE

define DI1_MODE IO_MODE_DISABLED // Normally open

endif

ifndef DI1_ACTION

define DI1_ACTION INPUT_ACTION_NONE

endif

ifndef DI1_FUNCTION

define DI1_FUNCTION INPUT_FUNCTION_LIMIT

endif

// Xmax

ifndef DI2_MODE

define DI2_MODE IO_ACTIVE_HIGH // Normally open

endif

ifndef DI2_ACTION

define DI2_ACTION INPUT_ACTION_NONE

endif

ifndef DI2_FUNCTION

define DI2_FUNCTION INPUT_FUNCTION_LIMIT

endif

// Ymin

ifndef DI3_MODE

define DI3_MODE IO_MODE_DISABLED // Normally open

endif

ifndef DI3_ACTION

define DI3_ACTION INPUT_ACTION_NONE

endif

ifndef DI3_FUNCTION

define DI3_FUNCTION INPUT_FUNCTION_LIMIT

endif

// Ymax

ifndef DI4_MODE

define DI4_MODE IO_ACTIVE_HIGH // Normally open

endif

ifndef DI4_ACTION

define DI4_ACTION INPUT_ACTION_NONE

endif

ifndef DI4_FUNCTION

define DI4_FUNCTION INPUT_FUNCTION_LIMIT

endif

// Zmin

ifndef DI5_MODE

define DI5_MODE IO_MODE_DISABLED // Normally open

endif

ifndef DI5_ACTION

define DI5_ACTION INPUT_ACTION_NONE

endif

ifndef DI5_FUNCTION

define DI5_FUNCTION INPUT_FUNCTION_LIMIT

endif

// Zmax

ifndef DI6_MODE

define DI6_MODE IO_ACTIVE_HIGH // Normally open

endif

ifndef DI6_ACTION

define DI6_ACTION INPUT_ACTION_NONE

endif

ifndef DI6_FUNCTION

define DI6_FUNCTION INPUT_FUNCTION_LIMIT

endif

// Amin

ifndef DI7_MODE

define DI7_MODE IO_MODE_DISABLED // Normally open

endif

ifndef DI7_ACTION

define DI7_ACTION INPUT_ACTION_NONE

endif

ifndef DI7_FUNCTION

define DI7_FUNCTION INPUT_FUNCTION_NONE

endif

// Amax

ifndef DI8_MODE

define DI8_MODE IO_MODE_DISABLED // Normally open

endif

ifndef DI8_ACTION

define DI8_ACTION INPUT_ACTION_NONE

endif

ifndef DI8_FUNCTION

define DI8_FUNCTION INPUT_FUNCTION_NONE

endif

// Safety line

ifndef DI9_MODE

define DI9_MODE IO_ACTIVE_HIGH // Normally closed

endif

ifndef DI9_ACTION

define DI9_ACTION INPUT_ACTION_NONE

endif

ifndef DI9_FUNCTION

define DI9_FUNCTION INPUT_FUNCTION_NONE

endif

ifndef DI10_MODE

define DI10_MODE IO_ACTIVE_LOW // Normally open

endif

ifndef DI10_ACTION

define DI10_ACTION INPUT_ACTION_NONE

endif

ifndef DI10_FUNCTION

define DI10_FUNCTION INPUT_FUNCTION_NONE

endif

ifndef DI11_MODE

define DI11_MODE IO_ACTIVE_LOW // Normally open

endif

ifndef DI11_ACTION

define DI11_ACTION INPUT_ACTION_NONE

endif

ifndef DI11_FUNCTION

define DI11_FUNCTION INPUT_FUNCTION_NONE

endif

ifndef DI12_MODE

define DI12_MODE IO_ACTIVE_LOW // Normally open

endif

ifndef DI12_ACTION

define DI12_ACTION INPUT_ACTION_NONE

endif

ifndef DI12_FUNCTION

define DI12_FUNCTION INPUT_FUNCTION_NONE

endif

// DIGITAL OUTPUTS - Currently these are hard-wired to extruders

//Extruder1_PWM

ifndef DO1_MODE

define DO1_MODE IO_ACTIVE_HIGH

endif

//Extruder2_PWM

ifndef DO2_MODE

define DO2_MODE IO_ACTIVE_HIGH

endif

//Fan1A_PWM

ifndef DO3_MODE

define DO3_MODE IO_ACTIVE_HIGH

endif

//Fan1B_PWM

ifndef DO4_MODE

define DO4_MODE IO_ACTIVE_HIGH

endif

ifndef DO5_MODE

define DO5_MODE IO_ACTIVE_HIGH

endif

ifndef DO6_MODE

define DO6_MODE IO_ACTIVE_HIGH

endif

ifndef DO7_MODE

define DO7_MODE IO_ACTIVE_HIGH

endif

ifndef DO8_MODE

define DO8_MODE IO_ACTIVE_HIGH

endif

//SAFEin (Output) signal

ifndef DO9_MODE

define DO9_MODE IO_ACTIVE_HIGH

endif

ifndef DO10_MODE

define DO10_MODE IO_ACTIVE_HIGH

endif

//Header Bed FET

ifndef DO11_MODE

define DO11_MODE IO_ACTIVE_HIGH

endif

//Indicator_LED

ifndef DO12_MODE

define DO12_MODE IO_ACTIVE_HIGH

endif

ifndef DO13_MODE

define DO13_MODE IO_ACTIVE_HIGH

endif

// PWM Settings //

ifndef P1_PWM_FREQUENCY

define P1_PWM_FREQUENCY 100 // in Hz

endif

ifndef P1_CW_SPEED_LO

define P1_CW_SPEED_LO 7900 // in RPM (arbitrary units)

endif

ifndef P1_CW_SPEED_HI

define P1_CW_SPEED_HI 12800

endif

ifndef P1_CW_PHASE_LO

define P1_CW_PHASE_LO 0.13 // phase [0..1]

endif

ifndef P1_CW_PHASE_HI

define P1_CW_PHASE_HI 0.17

endif

ifndef P1_CCW_SPEED_LO

define P1_CCW_SPEED_LO 7900 // 0.0

endif

ifndef P1_CCW_SPEED_HI

define P1_CCW_SPEED_HI 12800 // 0.0

endif

ifndef P1_CCW_PHASE_LO

define P1_CCW_PHASE_LO 0.13 // 0.1

endif

ifndef P1_CCW_PHASE_HI

define P1_CCW_PHASE_HI 0.17 // 0.1

endif

ifndef P1_PWM_PHASE_OFF

define P1_PWM_PHASE_OFF 0.1

endif

// Heater Settings - relevant to 3dp machines //

ifndef MIN_FAN_TEMP

define MIN_FAN_TEMP 40.0 // Temperature that the upper-extruder fan starts

endif

ifndef MIN_FAN_VALUE

define MIN_FAN_VALUE 0.4 // Minimum output value (0.0-1.0) of the upper-extruder fan

endif

ifndef MAX_FAN_VALUE

define MAX_FAN_VALUE 1.0 // Maximum output value (0.0-1.0) of the upper-extruder fan

endif

ifndef MAX_FAN_TEMP

define MAX_FAN_TEMP 150.0 // Temperature at and above which the upper-extruder fan is at 1.0

endif

ifndef H1_DEFAULT_ENABLE

define H1_DEFAULT_ENABLE false

endif

ifndef H1_DEFAULT_P

define H1_DEFAULT_P 9.0

endif

ifndef H1_DEFAULT_I

define H1_DEFAULT_I 0.12

endif

ifndef H1_DEFAULT_D

define H1_DEFAULT_D 400.0

endif

ifndef H2_DEFAULT_ENABLE

define H2_DEFAULT_ENABLE false

endif

ifndef H2_DEFAULT_P

define H2_DEFAULT_P 9.0

endif

ifndef H2_DEFAULT_I

define H2_DEFAULT_I 0.12

endif

ifndef H2_DEFAULT_D

define H2_DEFAULT_D 400.0

endif

ifndef H3_DEFAULT_ENABLE

define H3_DEFAULT_ENABLE false

endif

ifndef H3_DEFAULT_P

define H3_DEFAULT_P 9.0

endif

ifndef H3_DEFAULT_I

define H3_DEFAULT_I 0.12

endif

ifndef H3_DEFAULT_D

define H3_DEFAULT_D 400.0

endif

// DEFAULT COORDINATE SYSTEM OFFSETS

ifndef G54_X_OFFSET

define G54_X_OFFSET 0 // G54 is often set to all zeros

endif

ifndef G54_Y_OFFSET

define G54_Y_OFFSET 0

endif

ifndef G54_Z_OFFSET

define G54_Z_OFFSET 0

endif

ifndef G54_U_OFFSET

define G54_U_OFFSET 0

endif

ifndef G54_V_OFFSET

define G54_V_OFFSET 0

endif

ifndef G54_W_OFFSET

define G54_W_OFFSET 0

endif

ifndef G54_A_OFFSET

define G54_A_OFFSET 0

endif

ifndef G54_B_OFFSET

define G54_B_OFFSET 0

endif

ifndef G54_C_OFFSET

define G54_C_OFFSET 0

endif

ifndef G55_X_OFFSET

define G55_X_OFFSET 0

endif

ifndef G55_Y_OFFSET

define G55_Y_OFFSET 0

endif

ifndef G55_Z_OFFSET

define G55_Z_OFFSET 0

endif

ifndef G55_U_OFFSET

define G55_U_OFFSET 0

endif

ifndef G55_V_OFFSET

define G55_V_OFFSET 0

endif

ifndef G55_W_OFFSET

define G55_W_OFFSET 0

endif

ifndef G55_A_OFFSET

define G55_A_OFFSET 0

endif

ifndef G55_B_OFFSET

define G55_B_OFFSET 0

endif

ifndef G55_C_OFFSET

define G55_C_OFFSET 0

endif

ifndef G56_X_OFFSET

define G56_X_OFFSET 0

endif

ifndef G56_Y_OFFSET

define G56_Y_OFFSET 0

endif

ifndef G56_Z_OFFSET

define G56_Z_OFFSET 0

endif

ifndef G56_U_OFFSET

define G56_U_OFFSET 0

endif

ifndef G56_V_OFFSET

define G56_V_OFFSET 0

endif

ifndef G56_W_OFFSET

define G56_W_OFFSET 0

endif

ifndef G56_A_OFFSET

define G56_A_OFFSET 0

endif

ifndef G56_B_OFFSET

define G56_B_OFFSET 0

endif

ifndef G56_C_OFFSET

define G56_C_OFFSET 0

endif

ifndef G57_X_OFFSET

define G57_X_OFFSET 0

endif

ifndef G57_Y_OFFSET

define G57_Y_OFFSET 0

endif

ifndef G57_Z_OFFSET

define G57_Z_OFFSET 0

endif

ifndef G57_U_OFFSET

define G57_U_OFFSET 0

endif

ifndef G57_V_OFFSET

define G57_V_OFFSET 0

endif

ifndef G57_W_OFFSET

define G57_W_OFFSET 0

endif

ifndef G57_A_OFFSET

define G57_A_OFFSET 0

endif

ifndef G57_B_OFFSET

define G57_B_OFFSET 0

endif

ifndef G57_C_OFFSET

define G57_C_OFFSET 0

endif

ifndef G58_X_OFFSET

define G58_X_OFFSET 0

endif

ifndef G58_Y_OFFSET

define G58_Y_OFFSET 0

endif

ifndef G58_Z_OFFSET

define G58_Z_OFFSET 0

endif

ifndef G58_U_OFFSET

define G58_U_OFFSET 0

endif

ifndef G58_V_OFFSET

define G58_V_OFFSET 0

endif

ifndef G58_W_OFFSET

define G58_W_OFFSET 0

endif

ifndef G58_A_OFFSET

define G58_A_OFFSET 0

endif

ifndef G58_B_OFFSET

define G58_B_OFFSET 0

endif

ifndef G58_C_OFFSET

define G58_C_OFFSET 0

endif

ifndef G59_X_OFFSET

define G59_X_OFFSET 0

endif

ifndef G59_Y_OFFSET

define G59_Y_OFFSET 0

endif

ifndef G59_Z_OFFSET

define G59_Z_OFFSET 0

endif

ifndef G59_U_OFFSET

define G59_U_OFFSET 0

endif

ifndef G59_V_OFFSET

define G59_V_OFFSET 0

endif

ifndef G59_W_OFFSET

define G59_W_OFFSET 0

endif

ifndef G59_A_OFFSET

define G59_A_OFFSET 0

endif

ifndef G59_B_OFFSET

define G59_B_OFFSET 0

endif

ifndef G59_C_OFFSET

define G59_C_OFFSET 0

endif

// Tool Table Defaults //

ifndef TT1_X_OFFSET

define TT1_X_OFFSET 0

endif

ifndef TT1_Y_OFFSET

define TT1_Y_OFFSET 0

endif

ifndef TT1_Z_OFFSET

define TT1_Z_OFFSET 0

endif

ifndef TT1_U_OFFSET

define TT1_U_OFFSET 0

endif

ifndef TT1_V_OFFSET

define TT1_V_OFFSET 0

endif

ifndef TT1_W_OFFSET

define TT1_W_OFFSET 0

endif

ifndef TT1_A_OFFSET

define TT1_A_OFFSET 0

endif

ifndef TT1_B_OFFSET

define TT1_B_OFFSET 0

endif

ifndef TT1_C_OFFSET

define TT1_C_OFFSET 0

endif

ifndef TT2_X_OFFSET

define TT2_X_OFFSET 0

endif

ifndef TT2_Y_OFFSET

define TT2_Y_OFFSET 0

endif

ifndef TT2_Z_OFFSET

define TT2_Z_OFFSET 0

endif

ifndef TT2_U_OFFSET

define TT2_U_OFFSET 0

endif

ifndef TT2_V_OFFSET

define TT2_V_OFFSET 0

endif

ifndef TT2_W_OFFSET

define TT2_W_OFFSET 0

endif

ifndef TT2_A_OFFSET

define TT2_A_OFFSET 0

endif

ifndef TT2_B_OFFSET

define TT2_B_OFFSET 0

endif

ifndef TT2_C_OFFSET

define TT2_C_OFFSET 0

endif

ifndef TT3_X_OFFSET

define TT3_X_OFFSET 0

endif

ifndef TT3_Y_OFFSET

define TT3_Y_OFFSET 0

endif

ifndef TT3_Z_OFFSET

define TT3_Z_OFFSET 0

endif

ifndef TT3_U_OFFSET

define TT3_U_OFFSET 0

endif

ifndef TT3_V_OFFSET

define TT3_V_OFFSET 0

endif

ifndef TT3_W_OFFSET

define TT3_W_OFFSET 0

endif

ifndef TT3_A_OFFSET

define TT3_A_OFFSET 0

endif

ifndef TT3_B_OFFSET

define TT3_B_OFFSET 0

endif

ifndef TT3_C_OFFSET

define TT3_C_OFFSET 0

endif

ifndef TT4_X_OFFSET

define TT4_X_OFFSET 0

endif

ifndef TT4_Y_OFFSET

define TT4_Y_OFFSET 0

endif

ifndef TT4_Z_OFFSET

define TT4_Z_OFFSET 0

endif

ifndef TT4_U_OFFSET

define TT4_U_OFFSET 0

endif

ifndef TT4_V_OFFSET

define TT4_V_OFFSET 0

endif

ifndef TT4_W_OFFSET

define TT4_W_OFFSET 0

endif

ifndef TT4_A_OFFSET

define TT4_A_OFFSET 0

endif

ifndef TT4_B_OFFSET

define TT4_B_OFFSET 0

endif

ifndef TT4_C_OFFSET

define TT4_C_OFFSET 0

endif

ifndef TT5_X_OFFSET

define TT5_X_OFFSET 0

endif

ifndef TT5_Y_OFFSET

define TT5_Y_OFFSET 0

endif

ifndef TT5_Z_OFFSET

define TT5_Z_OFFSET 0

endif

ifndef TT5_U_OFFSET

define TT5_U_OFFSET 0

endif

ifndef TT5_V_OFFSET

define TT5_V_OFFSET 0

endif

ifndef TT5_W_OFFSET

define TT5_W_OFFSET 0

endif

ifndef TT5_A_OFFSET

define TT5_A_OFFSET 0

endif

ifndef TT5_B_OFFSET

define TT5_B_OFFSET 0

endif

ifndef TT5_C_OFFSET

define TT5_C_OFFSET 0

endif

ifndef TT6_X_OFFSET

define TT6_X_OFFSET 0

endif

ifndef TT6_Y_OFFSET

define TT6_Y_OFFSET 0

endif

ifndef TT6_Z_OFFSET

define TT6_Z_OFFSET 0

endif

ifndef TT6_U_OFFSET

define TT6_U_OFFSET 0

endif

ifndef TT6_V_OFFSET

define TT6_V_OFFSET 0

endif

ifndef TT6_W_OFFSET

define TT6_W_OFFSET 0

endif

ifndef TT6_A_OFFSET

define TT6_A_OFFSET 0

endif

ifndef TT6_B_OFFSET

define TT6_B_OFFSET 0

endif

ifndef TT6_C_OFFSET

define TT6_C_OFFSET 0

endif

ifndef TT7_X_OFFSET

define TT7_X_OFFSET 0

endif

ifndef TT7_Y_OFFSET

define TT7_Y_OFFSET 0

endif

ifndef TT7_Z_OFFSET

define TT7_Z_OFFSET 0

endif

ifndef TT7_U_OFFSET

define TT7_U_OFFSET 0

endif

ifndef TT7_V_OFFSET

define TT7_V_OFFSET 0

endif

ifndef TT7_W_OFFSET

define TT7_W_OFFSET 0

endif

ifndef TT7_A_OFFSET

define TT7_A_OFFSET 0

endif

ifndef TT7_B_OFFSET

define TT7_B_OFFSET 0

endif

ifndef TT7_C_OFFSET

define TT7_C_OFFSET 0

endif

ifndef TT8_X_OFFSET

define TT8_X_OFFSET 0

endif

ifndef TT8_Y_OFFSET

define TT8_Y_OFFSET 0

endif

ifndef TT8_U_OFFSET

define TT8_U_OFFSET 0

endif

ifndef TT8_V_OFFSET

define TT8_V_OFFSET 0

endif

ifndef TT8_W_OFFSET

define TT8_W_OFFSET 0

endif

ifndef TT8_Z_OFFSET

define TT8_Z_OFFSET 0

endif

ifndef TT8_A_OFFSET

define TT8_A_OFFSET 0

endif

ifndef TT8_B_OFFSET

define TT8_B_OFFSET 0

endif

ifndef TT8_C_OFFSET

define TT8_C_OFFSET 0

endif

ifndef TT9_X_OFFSET

define TT9_X_OFFSET 0

endif

ifndef TT9_Y_OFFSET

define TT9_Y_OFFSET 0

endif

ifndef TT9_Z_OFFSET

define TT9_Z_OFFSET 0

endif

ifndef TT9_U_OFFSET

define TT9_U_OFFSET 0

endif

ifndef TT9_V_OFFSET

define TT9_V_OFFSET 0

endif

ifndef TT9_W_OFFSET

define TT9_W_OFFSET 0

endif

ifndef TT9_A_OFFSET

define TT9_A_OFFSET 0

endif

ifndef TT9_B_OFFSET

define TT9_B_OFFSET 0

endif

ifndef TT9_C_OFFSET

define TT9_C_OFFSET 0

endif

ifndef TT10_X_OFFSET

define TT10_X_OFFSET 0

endif

ifndef TT10_Y_OFFSET

define TT10_Y_OFFSET 0

endif

ifndef TT10_Z_OFFSET

define TT10_Z_OFFSET 0

endif

ifndef TT10_U_OFFSET

define TT10_U_OFFSET 0

endif

ifndef TT10_V_OFFSET

define TT10_V_OFFSET 0

endif

ifndef TT10_W_OFFSET

define TT10_W_OFFSET 0

endif

ifndef TT10_A_OFFSET

define TT10_A_OFFSET 0

endif

ifndef TT10_B_OFFSET

define TT10_B_OFFSET 0

endif

ifndef TT10_C_OFFSET

define TT10_C_OFFSET 0

endif

ifndef TT11_X_OFFSET

define TT11_X_OFFSET 0

endif

ifndef TT11_Y_OFFSET

define TT11_Y_OFFSET 0

endif

ifndef TT11_Z_OFFSET

define TT11_Z_OFFSET 0

endif

ifndef TT11_U_OFFSET

define TT11_U_OFFSET 0

endif

ifndef TT11_V_OFFSET

define TT11_V_OFFSET 0

endif

ifndef TT11_W_OFFSET

define TT11_W_OFFSET 0

endif

ifndef TT11_A_OFFSET

define TT11_A_OFFSET 0

endif

ifndef TT11_B_OFFSET

define TT11_B_OFFSET 0

endif

ifndef TT11_C_OFFSET

define TT11_C_OFFSET 0

endif

ifndef TT12_X_OFFSET

define TT12_X_OFFSET 0

endif

ifndef TT12_Y_OFFSET

define TT12_Y_OFFSET 0

endif

ifndef TT12_Z_OFFSET

define TT12_Z_OFFSET 0

endif

ifndef TT12_U_OFFSET

define TT12_U_OFFSET 0

endif

ifndef TT12_V_OFFSET

define TT12_V_OFFSET 0

endif

ifndef TT12_W_OFFSET

define TT12_W_OFFSET 0

endif

ifndef TT12_A_OFFSET

define TT12_A_OFFSET 0

endif

ifndef TT12_B_OFFSET

define TT12_B_OFFSET 0

endif

ifndef TT12_C_OFFSET

define TT12_C_OFFSET 0

endif

ifndef TT13_X_OFFSET

define TT13_X_OFFSET 0

endif

ifndef TT13_Y_OFFSET

define TT13_Y_OFFSET 0

endif

ifndef TT13_Z_OFFSET

define TT13_Z_OFFSET 0

endif

ifndef TT13_U_OFFSET

define TT13_U_OFFSET 0

endif

ifndef TT13_V_OFFSET

define TT13_V_OFFSET 0

endif

ifndef TT13_W_OFFSET

define TT13_W_OFFSET 0

endif

ifndef TT13_A_OFFSET

define TT13_A_OFFSET 0

endif

ifndef TT13_B_OFFSET

define TT13_B_OFFSET 0

endif

ifndef TT13_C_OFFSET

define TT13_C_OFFSET 0

endif

ifndef TT14_X_OFFSET

define TT14_X_OFFSET 0

endif

ifndef TT14_Y_OFFSET

define TT14_Y_OFFSET 0

endif

ifndef TT14_Z_OFFSET

define TT14_Z_OFFSET 0

endif

ifndef TT14_U_OFFSET

define TT14_U_OFFSET 0

endif

ifndef TT14_V_OFFSET

define TT14_V_OFFSET 0

endif

ifndef TT14_W_OFFSET

define TT14_W_OFFSET 0

endif

ifndef TT14_A_OFFSET

define TT14_A_OFFSET 0

endif

ifndef TT14_B_OFFSET

define TT14_B_OFFSET 0

endif

ifndef TT14_C_OFFSET

define TT14_C_OFFSET 0

endif

ifndef TT15_X_OFFSET

define TT15_X_OFFSET 0

endif

ifndef TT15_Y_OFFSET

define TT15_Y_OFFSET 0

endif

ifndef TT15_Z_OFFSET

define TT15_Z_OFFSET 0

endif

ifndef TT15_U_OFFSET

define TT15_U_OFFSET 0

endif

ifndef TT15_V_OFFSET

define TT15_V_OFFSET 0

endif

ifndef TT15_W_OFFSET

define TT15_W_OFFSET 0

endif

ifndef TT15_A_OFFSET

define TT15_A_OFFSET 0

endif

ifndef TT15_B_OFFSET

define TT15_B_OFFSET 0

endif

ifndef TT15_C_OFFSET

define TT15_C_OFFSET 0

endif

ifndef TT16_X_OFFSET

define TT16_X_OFFSET 0

endif

ifndef TT16_Y_OFFSET

define TT16_Y_OFFSET 0

endif

ifndef TT16_Z_OFFSET

define TT16_Z_OFFSET 0

endif

ifndef TT16_U_OFFSET

define TT16_U_OFFSET 0

endif

ifndef TT16_V_OFFSET

define TT16_V_OFFSET 0

endif

ifndef TT16_W_OFFSET

define TT16_W_OFFSET 0

endif

ifndef TT16_A_OFFSET

define TT16_A_OFFSET 0

endif

ifndef TT16_B_OFFSET

define TT16_B_OFFSET 0

endif

ifndef TT16_C_OFFSET

define TT16_C_OFFSET 0

endif

ifndef TT17_X_OFFSET

define TT17_X_OFFSET 0

endif

ifndef TT17_Y_OFFSET

define TT17_Y_OFFSET 0

endif

ifndef TT17_Z_OFFSET

define TT17_Z_OFFSET 0

endif

ifndef TT17_U_OFFSET

define TT17_U_OFFSET 0

endif

ifndef TT17_V_OFFSET

define TT17_V_OFFSET 0

endif

ifndef TT17_W_OFFSET

define TT17_W_OFFSET 0

endif

ifndef TT17_A_OFFSET

define TT17_A_OFFSET 0

endif

ifndef TT17_B_OFFSET

define TT17_B_OFFSET 0

endif

ifndef TT17_C_OFFSET

define TT17_C_OFFSET 0

endif

ifndef TT18_X_OFFSET

define TT18_X_OFFSET 0

endif

ifndef TT18_Y_OFFSET

define TT18_Y_OFFSET 0

endif

ifndef TT18_Z_OFFSET

define TT18_Z_OFFSET 0

endif

ifndef TT18_U_OFFSET

define TT18_U_OFFSET 0

endif

ifndef TT18_V_OFFSET

define TT18_V_OFFSET 0

endif

ifndef TT18_W_OFFSET

define TT18_W_OFFSET 0

endif

ifndef TT18_A_OFFSET

define TT18_A_OFFSET 0

endif

ifndef TT18_B_OFFSET

define TT18_B_OFFSET 0

endif

ifndef TT18_C_OFFSET

define TT18_C_OFFSET 0

endif

ifndef TT19_X_OFFSET

define TT19_X_OFFSET 0

endif

ifndef TT19_Y_OFFSET

define TT19_Y_OFFSET 0

endif

ifndef TT19_Z_OFFSET

define TT19_Z_OFFSET 0

endif

ifndef TT19_U_OFFSET

define TT19_U_OFFSET 0

endif

ifndef TT19_V_OFFSET

define TT19_V_OFFSET 0

endif

ifndef TT19_W_OFFSET

define TT19_W_OFFSET 0

endif

ifndef TT19_A_OFFSET

define TT19_A_OFFSET 0

endif

ifndef TT19_B_OFFSET

define TT19_B_OFFSET 0

endif

ifndef TT19_C_OFFSET

define TT19_C_OFFSET 0

endif

ifndef TT20_X_OFFSET

define TT20_X_OFFSET 0

endif

ifndef TT20_Y_OFFSET

define TT20_Y_OFFSET 0

endif

ifndef TT20_Z_OFFSET

define TT20_Z_OFFSET 0

endif

ifndef TT20_U_OFFSET

define TT20_U_OFFSET 0

endif

ifndef TT20_V_OFFSET

define TT20_V_OFFSET 0

endif

ifndef TT20_W_OFFSET

define TT20_W_OFFSET 0

endif

ifndef TT20_A_OFFSET

define TT20_A_OFFSET 0

endif

ifndef TT20_B_OFFSET

define TT20_B_OFFSET 0

endif

ifndef TT20_C_OFFSET

define TT20_C_OFFSET 0

endif

ifndef TT21_X_OFFSET

define TT21_X_OFFSET 0

endif

ifndef TT21_Y_OFFSET

define TT21_Y_OFFSET 0

endif

ifndef TT21_Z_OFFSET

define TT21_Z_OFFSET 0

endif

ifndef TT21_U_OFFSET

define TT21_U_OFFSET 0

endif

ifndef TT21_V_OFFSET

define TT21_V_OFFSET 0

endif

ifndef TT21_W_OFFSET

define TT21_W_OFFSET 0

endif

ifndef TT21_A_OFFSET

define TT21_A_OFFSET 0

endif

ifndef TT21_B_OFFSET

define TT21_B_OFFSET 0

endif

ifndef TT21_C_OFFSET

define TT21_C_OFFSET 0

endif

ifndef TT22_X_OFFSET

define TT22_X_OFFSET 0

endif

ifndef TT22_Y_OFFSET

define TT22_Y_OFFSET 0

endif

ifndef TT22_Z_OFFSET

define TT22_Z_OFFSET 0

endif

ifndef TT22_U_OFFSET

define TT22_U_OFFSET 0

endif

ifndef TT22_V_OFFSET

define TT22_V_OFFSET 0

endif

ifndef TT22_W_OFFSET

define TT22_W_OFFSET 0

endif

ifndef TT22_A_OFFSET

define TT22_A_OFFSET 0

endif

ifndef TT22_B_OFFSET

define TT22_B_OFFSET 0

endif

ifndef TT22_C_OFFSET

define TT22_C_OFFSET 0

endif

ifndef TT23_X_OFFSET

define TT23_X_OFFSET 0

endif

ifndef TT23_Y_OFFSET

define TT23_Y_OFFSET 0

endif

ifndef TT23_Z_OFFSET

define TT23_Z_OFFSET 0

endif

ifndef TT23_U_OFFSET

define TT23_U_OFFSET 0

endif

ifndef TT23_V_OFFSET

define TT23_V_OFFSET 0

endif

ifndef TT23_W_OFFSET

define TT23_W_OFFSET 0

endif

ifndef TT23_A_OFFSET

define TT23_A_OFFSET 0

endif

ifndef TT23_B_OFFSET

define TT23_B_OFFSET 0

endif

ifndef TT23_C_OFFSET

define TT23_C_OFFSET 0

endif

ifndef TT24_X_OFFSET

define TT24_X_OFFSET 0

endif

ifndef TT24_Y_OFFSET

define TT24_Y_OFFSET 0

endif

ifndef TT24_Z_OFFSET

define TT24_Z_OFFSET 0

endif

ifndef TT24_U_OFFSET

define TT24_U_OFFSET 0

endif

ifndef TT24_V_OFFSET

define TT24_V_OFFSET 0

endif

ifndef TT24_W_OFFSET

define TT24_W_OFFSET 0

endif

ifndef TT24_A_OFFSET

define TT24_A_OFFSET 0

endif

ifndef TT24_B_OFFSET

define TT24_B_OFFSET 0

endif

ifndef TT24_C_OFFSET

define TT24_C_OFFSET 0

endif

ifndef TT25_X_OFFSET

define TT25_X_OFFSET 0

endif

ifndef TT25_Y_OFFSET

define TT25_Y_OFFSET 0

endif

ifndef TT25_Z_OFFSET

define TT25_Z_OFFSET 0

endif

ifndef TT25_U_OFFSET

define TT25_U_OFFSET 0

endif

ifndef TT25_V_OFFSET

define TT25_V_OFFSET 0

endif

ifndef TT25_W_OFFSET

define TT25_W_OFFSET 0

endif

ifndef TT25_A_OFFSET

define TT25_A_OFFSET 0

endif

ifndef TT25_B_OFFSET

define TT25_B_OFFSET 0

endif

ifndef TT25_C_OFFSET

define TT25_C_OFFSET 0

endif

ifndef TT26_X_OFFSET

define TT26_X_OFFSET 0

endif

ifndef TT26_Y_OFFSET

define TT26_Y_OFFSET 0

endif

ifndef TT26_Z_OFFSET

define TT26_Z_OFFSET 0

endif

ifndef TT26_U_OFFSET

define TT26_U_OFFSET 0

endif

ifndef TT26_V_OFFSET

define TT26_V_OFFSET 0

endif

ifndef TT26_W_OFFSET

define TT26_W_OFFSET 0

endif

ifndef TT26_A_OFFSET

define TT26_A_OFFSET 0

endif

ifndef TT26_B_OFFSET

define TT26_B_OFFSET 0

endif

ifndef TT26_C_OFFSET

define TT26_C_OFFSET 0

endif

ifndef TT27_X_OFFSET

define TT27_X_OFFSET 0

endif

ifndef TT27_Y_OFFSET

define TT27_Y_OFFSET 0

endif

ifndef TT27_Z_OFFSET

define TT27_Z_OFFSET 0

endif

ifndef TT27_U_OFFSET

define TT27_U_OFFSET 0

endif

ifndef TT27_V_OFFSET

define TT27_V_OFFSET 0

endif

ifndef TT27_W_OFFSET

define TT27_W_OFFSET 0

endif

ifndef TT27_A_OFFSET

define TT27_A_OFFSET 0

endif

ifndef TT27_B_OFFSET

define TT27_B_OFFSET 0

endif

ifndef TT27_C_OFFSET

define TT27_C_OFFSET 0

endif

ifndef TT28_X_OFFSET

define TT28_X_OFFSET 0

endif

ifndef TT28_Y_OFFSET

define TT28_Y_OFFSET 0

endif

ifndef TT28_Z_OFFSET

define TT28_Z_OFFSET 0

endif

ifndef TT28_U_OFFSET

define TT28_U_OFFSET 0

endif

ifndef TT28_V_OFFSET

define TT28_V_OFFSET 0

endif

ifndef TT28_W_OFFSET

define TT28_W_OFFSET 0

endif

ifndef TT28_A_OFFSET

define TT28_A_OFFSET 0

endif

ifndef TT28_B_OFFSET

define TT28_B_OFFSET 0

endif

ifndef TT28_C_OFFSET

define TT28_C_OFFSET 0

endif

ifndef TT29_X_OFFSET

define TT29_X_OFFSET 0

endif

ifndef TT29_Y_OFFSET

define TT29_Y_OFFSET 0

endif

ifndef TT29_Z_OFFSET

define TT29_Z_OFFSET 0

endif

ifndef TT29_U_OFFSET

define TT29_U_OFFSET 0

endif

ifndef TT29_V_OFFSET

define TT29_V_OFFSET 0

endif

ifndef TT29_W_OFFSET

define TT29_W_OFFSET 0

endif

ifndef TT29_A_OFFSET

define TT29_A_OFFSET 0

endif

ifndef TT29_B_OFFSET

define TT29_B_OFFSET 0

endif

ifndef TT29_C_OFFSET

define TT29_C_OFFSET 0

endif

ifndef TT30_X_OFFSET

define TT30_X_OFFSET 0

endif

ifndef TT30_Y_OFFSET

define TT30_Y_OFFSET 0

endif

ifndef TT30_Z_OFFSET

define TT30_Z_OFFSET 0

endif

ifndef TT30_U_OFFSET

define TT30_U_OFFSET 0

endif

ifndef TT30_V_OFFSET

define TT30_V_OFFSET 0

endif

ifndef TT30_W_OFFSET

define TT30_W_OFFSET 0

endif

ifndef TT30_A_OFFSET

define TT30_A_OFFSET 0

endif

ifndef TT30_B_OFFSET

define TT30_B_OFFSET 0

endif

ifndef TT30_C_OFFSET

define TT30_C_OFFSET 0

endif

ifndef TT31_X_OFFSET

define TT31_X_OFFSET 0

endif

ifndef TT31_Y_OFFSET

define TT31_Y_OFFSET 0

endif

ifndef TT31_Z_OFFSET

define TT31_Z_OFFSET 0

endif

ifndef TT31_U_OFFSET

define TT31_U_OFFSET 0

endif

ifndef TT31_V_OFFSET

define TT31_V_OFFSET 0

endif

ifndef TT31_W_OFFSET

define TT31_W_OFFSET 0

endif

ifndef TT31_A_OFFSET

define TT31_A_OFFSET 0

endif

ifndef TT31_B_OFFSET

define TT31_B_OFFSET 0

endif

ifndef TT31_C_OFFSET

define TT31_C_OFFSET 0

endif

ifndef TT32_X_OFFSET

define TT32_X_OFFSET 0

endif

ifndef TT32_Y_OFFSET

define TT32_Y_OFFSET 0

endif

ifndef TT32_Z_OFFSET

define TT32_Z_OFFSET 0

endif

ifndef TT32_U_OFFSET

define TT32_U_OFFSET 0

endif

ifndef TT32_V_OFFSET

define TT32_V_OFFSET 0

endif

ifndef TT32_W_OFFSET

define TT32_W_OFFSET 0

endif

ifndef TT32_A_OFFSET

define TT32_A_OFFSET 0

endif

ifndef TT32_B_OFFSET

define TT32_B_OFFSET 0

endif

ifndef TT32_C_OFFSET

define TT32_C_OFFSET 0

endif

// User-Defined Data Defaults //

ifndef USER_DATA_A0

define USER_DATA_A0 0

endif

ifndef USER_DATA_A1

define USER_DATA_A1 0

endif

ifndef USER_DATA_A2

define USER_DATA_A2 0

endif

ifndef USER_DATA_A3

define USER_DATA_A3 0

endif

ifndef USER_DATA_B0

define USER_DATA_B0 0

endif

ifndef USER_DATA_B1

define USER_DATA_B1 0

endif

ifndef USER_DATA_B2

define USER_DATA_B2 0

endif

ifndef USER_DATA_B3

define USER_DATA_B3 0

endif

ifndef USER_DATA_C0

define USER_DATA_C0 0

endif

ifndef USER_DATA_C1

define USER_DATA_C1 0

endif

ifndef USER_DATA_C2

define USER_DATA_C2 0

endif

ifndef USER_DATA_C3

define USER_DATA_C3 0

endif

ifndef USER_DATA_D0

define USER_DATA_D0 0

endif

ifndef USER_DATA_D1

define USER_DATA_D1 0

endif

ifndef USER_DATA_D2

define USER_DATA_D2 0

endif

ifndef USER_DATA_D3

define USER_DATA_D3 0

endif

`

StanislavPr commented 4 years ago

Not sure where you're at in this, but you should change the power level to your motors.

define M1_POWER_LEVEL 0.0 // {1pl: 0.0=no power, 1.0=max power

Change that too M1_POWER_LEVEL 1.0 and all other motors of course M2 etc... That should give you motor movement.