Work to allow AXES == 6 or 9, TOOLS to be 5 or 32, and to allow disabling __USER_DATA

Also added `HAS_HOBBY_SERVO_MOTOR` where, if defined, the Quintic will output motor 6 to a PWM
This commit is contained in:
Rob Giseburt
2020-01-10 19:25:12 -06:00
parent 26412ffd9e
commit ee40d7884c
11 changed files with 158 additions and 14 deletions
+8 -2
View File
@@ -53,9 +53,12 @@ HOT_DATA Trinamic2130<SPIBus_used_t::SPIBusDevice,
Motate::kSocket5_DirPinNumber,
Motate::kSocket5_EnablePinNumber>
motor_4 {spiBus, spiCSPinMux.getCS(0)};
#if HAS_HOBBY_SERVO_MOTOR
HOT_DATA StepDirHobbyServo<Motate::kServo1_PinNumber> motor_5;
Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4, &motor_5};
#else
Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4};
#endif
#endif // 'C'
#if QUINTIC_REVISION == 'D'
@@ -84,9 +87,12 @@ HOT_DATA Trinamic2130<SPIBus_used_t::SPIBusDevice,
Motate::kSocket5_DirPinNumber,
Motate::kSocket5_EnablePinNumber>
motor_5 {spiBus, spiCSPinMux.getCS(0)};
#if HAS_HOBBY_SERVO_MOTOR
HOT_DATA StepDirHobbyServo<Motate::kServo1_PinNumber> motor_6;
Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4, &motor_5, &motor_6};
#else
Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4, &motor_5};
#endif
#endif // 'D'
#if (KINEMATICS == KINE_FOUR_CABLE)
+4
View File
@@ -55,7 +55,9 @@ extern Trinamic2130<SPIBus_used_t::SPIBusDevice,
Motate::kSocket5_DirPinNumber,
Motate::kSocket5_EnablePinNumber>
motor_4;
#if HAS_HOBBY_SERVO_MOTOR
extern StepDirHobbyServo<Motate::kServo1_PinNumber> motor_5;
#endif
#endif // 'C'
#if QUINTIC_REVISION == 'D'
@@ -88,7 +90,9 @@ extern Trinamic2130<SPIBus_used_t::SPIBusDevice,
Motate::kSocket5_DirPinNumber,
Motate::kSocket5_EnablePinNumber>
motor_5;
#if HAS_HOBBY_SERVO_MOTOR
extern StepDirHobbyServo<Motate::kServo1_PinNumber> motor_6;
#endif
#endif // 'D'
extern Stepper* const Motors[MOTORS];
+1 -1
View File
@@ -66,7 +66,7 @@
*/
#include <MotateTimers.h>
// #include <MotateTimers.h>
// We don't have all of the inputs, so we have to indicate as much:
#define INPUT1_AVAILABLE 1
+8 -3
View File
@@ -45,12 +45,17 @@
// These must be defines (not enums) so expressions like this:
// #if (MOTORS >= 6) will work
#if QUINTIC_REVISION == 'C'
#define MOTORS 5 // number of motors on the board - 4 Trinamics + 1 servo
#ifndef HAS_HOBBY_SERVO_MOTOR
#define HAS_HOBBY_SERVO_MOTOR 0
#endif
#if QUINTIC_REVISION == 'C' or !HAS_HOBBY_SERVO_MOTOR
#define MOTORS 5 // number of motors on the board - 5Trinamics OR 4 Trinamics + 1 servo
#else
#define MOTORS 6 // number of motors on the board - 5 Trinamics + 1 servo
#endif
#define PWMS 2 // number of PWM channels supported the hardware
#define AXES 6 // axes to support -- must be 6 or 9
#define MOTOR_1_IS_TRINAMIC
#define MOTOR_2_IS_TRINAMIC
@@ -127,7 +132,7 @@ using Motate::OutputPin;
// #define MIN_SEGMENT_MS ((float)0.125) // S70 can handle much much smaller segements
#define MIN_SEGMENT_MS ((float)0.5) // S70 can handle much much smaller segements
#define PLANNER_QUEUE_SIZE (60)
// #define PLANNER_QUEUE_SIZE (60)
/**** Motate Definitions ****/
+18 -3
View File
@@ -581,7 +581,7 @@ float cm_get_display_position(const GCodeState_t *gcode_state, const uint8_t axi
} else {
position = mp_get_runtime_display_position(axis);
}
if (axis <= AXIS_W) { // linears
if (axis <= LAST_LINEAR_AXIS) { // linears
if (gcode_state->units_mode == INCHES) {
position /= MM_PER_INCH;
}
@@ -639,7 +639,11 @@ stat_t cm_deferred_write_callback()
nvObj_t nv;
for (uint8_t i=1; i<=COORDS; i++) {
for (uint8_t j=0; j<AXES; j++) {
#if (AXES == 9)
sprintf((char *)nv.token, "g%2d%c", 53+i, ("xyzuvwabc")[j]);
#else
sprintf((char *)nv.token, "g%2d%c", 53+i, ("xyzabc")[j]);
#endif
nv.index = nv_get_index((const char *)"", nv.token);
nv.value_flt = cm->coord_offset[i][j];
nv_persist(&nv); // Note: nv_persist() only writes values that have changed
@@ -827,7 +831,7 @@ void cm_set_model_target(const float target[], const bool flags[])
copy_vector(cm->gm.target, cm->gmx.position);
// process linear axes (XYZUVW) first
for (axis=AXIS_X; axis<=AXIS_W; axis++) {
for (axis=AXIS_X; axis<=LAST_LINEAR_AXIS; axis++) {
if (!flags[axis] || cm->a[axis].axis_mode == AXIS_DISABLED) {
continue; // skip axis if not flagged for update or its disabled
} else if ((cm->a[axis].axis_mode == AXIS_STANDARD) || (cm->a[axis].axis_mode == AXIS_INHIBITED)) {
@@ -1250,7 +1254,9 @@ stat_t cm_straight_traverse(const float *target, const bool *flags, const uint8_
// it's legal for a G0 to have no axis words but we don't want to process it
if (!(flags[AXIS_X] | flags[AXIS_Y] | flags[AXIS_Z] |
#if (AXES == 9)
flags[AXIS_U] | flags[AXIS_V] | flags[AXIS_W] |
#endif
flags[AXIS_A] | flags[AXIS_B] | flags[AXIS_C])) {
return(STAT_OK);
}
@@ -1409,7 +1415,9 @@ stat_t cm_straight_feed(const float *target, const bool *flags, const uint8_t mo
// it's legal for a G0 to have no axis words but we don't want to process it
if (!(flags[AXIS_X] | flags[AXIS_Y] | flags[AXIS_Z] |
#if (AXES == 9)
flags[AXIS_U] | flags[AXIS_V] | flags[AXIS_W] |
#endif
flags[AXIS_A] | flags[AXIS_B] | flags[AXIS_C])) {
return(STAT_OK);
}
@@ -1908,8 +1916,11 @@ static int8_t _axis(const nvObj_t *nv)
// otherwise it's an axis. Or undefined, which is usually a global.
char *ptr;
#if (AXES == 9)
char axes[] = {"xyzuvwabc"};
#else
char axes[] = {"xyzabc"};
#endif
if ((ptr = strchr(axes, c)) == NULL) { // not NULL indicates a prefixed axis
c = *(cfgArray[nv->index].token + strlen(cfgArray[nv->index].token) -1); // get the last character
if ((ptr = strchr(axes, c)) == NULL) { // test for a postfixed axis
@@ -1933,7 +1944,11 @@ cmAxisType cm_get_axis_type(const nvObj_t *nv)
char cm_get_axis_char(const int8_t axis) // Uses internal axis numbering
{
#if (AXES == 9)
char axis_char[] = "XYZUVWABC";
#else
char axis_char[] = "XYZABC";
#endif
if ((axis < 0) || (axis > AXES)) return (' ');
return (axis_char[axis]);
}
+81 -1
View File
@@ -479,6 +479,7 @@ const cfgItem_t cfgArray[] = {
{ "z","zlb",_fipc, 5, cm_print_lb, cm_get_lb, cm_set_lb, nullptr, Z_LATCH_BACKOFF },
{ "z","zzb",_fipc, 5, cm_print_zb, cm_get_zb, cm_set_zb, nullptr, Z_ZERO_BACKOFF },
#if (AXES == 9)
{ "u","uam",_iip, 0, cm_print_am, cm_get_am, cm_set_am, nullptr, U_AXIS_MODE },
{ "u","uvm",_fipc, 0, cm_print_vm, cm_get_vm, cm_set_vm, nullptr, U_VELOCITY_MAX },
{ "u","ufr",_fipc, 0, cm_print_fr, cm_get_fr, cm_set_fr, nullptr, U_FEEDRATE_MAX },
@@ -520,6 +521,7 @@ const cfgItem_t cfgArray[] = {
{ "w","wlv",_fipc, 2, cm_print_lv, cm_get_lv, cm_set_lv, nullptr, W_LATCH_VELOCITY },
{ "w","wlb",_fipc, 5, cm_print_lb, cm_get_lb, cm_set_lb, nullptr, W_LATCH_BACKOFF },
{ "w","wzb",_fipc, 5, cm_print_zb, cm_get_zb, cm_set_zb, nullptr, W_ZERO_BACKOFF },
#endif
{ "a","aam",_iip, 0, cm_print_am, cm_get_am, cm_set_am, nullptr, A_AXIS_MODE },
{ "a","avm",_fipc, 0, cm_print_vm, cm_get_vm, cm_set_vm, nullptr, A_VELOCITY_MAX },
@@ -1133,9 +1135,11 @@ const cfgItem_t cfgArray[] = {
{ "tof","tofx",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
{ "tof","tofy",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
{ "tof","tofz",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
#if (AXES == 9)
{ "tof","tofu",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
{ "tof","tofv",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
{ "tof","tofw",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
#endif
{ "tof","tofa",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
{ "tof","tofb",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
{ "tof","tofc",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 },
@@ -1144,9 +1148,11 @@ const cfgItem_t cfgArray[] = {
{ "tt1","tt1x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_X_OFFSET },
{ "tt1","tt1y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_Y_OFFSET },
{ "tt1","tt1z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_Z_OFFSET },
#if (AXES == 9)
{ "tt1","tt1u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_U_OFFSET },
{ "tt1","tt1v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_V_OFFSET },
{ "tt1","tt1w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_W_OFFSET },
#endif
{ "tt1","tt1a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_A_OFFSET },
{ "tt1","tt1b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_B_OFFSET },
{ "tt1","tt1c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_C_OFFSET },
@@ -1154,9 +1160,11 @@ const cfgItem_t cfgArray[] = {
{ "tt2","tt2x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_X_OFFSET },
{ "tt2","tt2y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_Y_OFFSET },
{ "tt2","tt2z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_Z_OFFSET },
#if (AXES == 9)
{ "tt2","tt2u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_U_OFFSET },
{ "tt2","tt2v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_V_OFFSET },
{ "tt2","tt2w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_W_OFFSET },
#endif
{ "tt2","tt2a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_A_OFFSET },
{ "tt2","tt2b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_B_OFFSET },
{ "tt2","tt2c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_C_OFFSET },
@@ -1164,9 +1172,11 @@ const cfgItem_t cfgArray[] = {
{ "tt3","tt3x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_X_OFFSET },
{ "tt3","tt3y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_Y_OFFSET },
{ "tt3","tt3z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_Z_OFFSET },
#if (AXES == 9)
{ "tt3","tt3u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_U_OFFSET },
{ "tt3","tt3v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_V_OFFSET },
{ "tt3","tt3w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_W_OFFSET },
#endif
{ "tt3","tt3a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_A_OFFSET },
{ "tt3","tt3b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_B_OFFSET },
{ "tt3","tt3c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_C_OFFSET },
@@ -1174,9 +1184,11 @@ const cfgItem_t cfgArray[] = {
{ "tt4","tt4x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_X_OFFSET },
{ "tt4","tt4y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_Y_OFFSET },
{ "tt4","tt4z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_Z_OFFSET },
#if (AXES == 9)
{ "tt4","tt4u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_U_OFFSET },
{ "tt4","tt4v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_V_OFFSET },
{ "tt4","tt4w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_W_OFFSET },
#endif
{ "tt4","tt4a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_A_OFFSET },
{ "tt4","tt4b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_B_OFFSET },
{ "tt4","tt4c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_C_OFFSET },
@@ -1184,19 +1196,24 @@ const cfgItem_t cfgArray[] = {
{ "tt5","tt5x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_X_OFFSET },
{ "tt5","tt5y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_Y_OFFSET },
{ "tt5","tt5z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_Z_OFFSET },
#if (AXES == 9)
{ "tt5","tt5u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_U_OFFSET },
{ "tt5","tt5v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_V_OFFSET },
{ "tt5","tt5w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_W_OFFSET },
#endif
{ "tt5","tt5a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_A_OFFSET },
{ "tt5","tt5b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_B_OFFSET },
{ "tt5","tt5c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_C_OFFSET },
#if (TOOLS > 5)
{ "tt6","tt6x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_X_OFFSET },
{ "tt6","tt6y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_Y_OFFSET },
{ "tt6","tt6z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_Z_OFFSET },
#if (AXES == 9)
{ "tt6","tt6u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_U_OFFSET },
{ "tt6","tt6v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_V_OFFSET },
{ "tt6","tt6w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_W_OFFSET },
#endif
{ "tt6","tt6a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_A_OFFSET },
{ "tt6","tt6b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_B_OFFSET },
{ "tt6","tt6c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_C_OFFSET },
@@ -1204,9 +1221,11 @@ const cfgItem_t cfgArray[] = {
{ "tt7","tt7x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_X_OFFSET },
{ "tt7","tt7y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_Y_OFFSET },
{ "tt7","tt7z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_Z_OFFSET },
#if (AXES == 9)
{ "tt7","tt7u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_U_OFFSET },
{ "tt7","tt7v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_V_OFFSET },
{ "tt7","tt7w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_W_OFFSET },
#endif
{ "tt7","tt7a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_A_OFFSET },
{ "tt7","tt7b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_B_OFFSET },
{ "tt7","tt7c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_C_OFFSET },
@@ -1214,9 +1233,11 @@ const cfgItem_t cfgArray[] = {
{ "tt8","tt8x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_X_OFFSET },
{ "tt8","tt8y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_Y_OFFSET },
{ "tt8","tt8z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_Z_OFFSET },
#if (AXES == 9)
{ "tt8","tt8u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_U_OFFSET },
{ "tt8","tt8v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_V_OFFSET },
{ "tt8","tt8w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_W_OFFSET },
#endif
{ "tt8","tt8a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_A_OFFSET },
{ "tt8","tt8b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_B_OFFSET },
{ "tt8","tt8c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_C_OFFSET },
@@ -1224,9 +1245,11 @@ const cfgItem_t cfgArray[] = {
{ "tt9","tt9x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_X_OFFSET },
{ "tt9","tt9y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_Y_OFFSET },
{ "tt9","tt9z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_Z_OFFSET },
#if (AXES == 9)
{ "tt9","tt9u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_U_OFFSET },
{ "tt9","tt9v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_V_OFFSET },
{ "tt9","tt9w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_W_OFFSET },
#endif
{ "tt9","tt9a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_A_OFFSET },
{ "tt9","tt9b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_B_OFFSET },
{ "tt9","tt9c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_C_OFFSET },
@@ -1234,9 +1257,11 @@ const cfgItem_t cfgArray[] = {
{ "tt10","tt10x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_X_OFFSET },
{ "tt10","tt10y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_Y_OFFSET },
{ "tt10","tt10z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_Z_OFFSET },
#if (AXES == 9)
{ "tt10","tt10u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_U_OFFSET },
{ "tt10","tt10v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_V_OFFSET },
{ "tt10","tt10w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_W_OFFSET },
#endif
{ "tt10","tt10a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_A_OFFSET },
{ "tt10","tt10b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_B_OFFSET },
{ "tt10","tt10c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_C_OFFSET },
@@ -1244,9 +1269,11 @@ const cfgItem_t cfgArray[] = {
{ "tt11","tt11x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_X_OFFSET },
{ "tt11","tt11y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_Y_OFFSET },
{ "tt11","tt11z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_Z_OFFSET },
#if (AXES == 9)
{ "tt11","tt11u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_U_OFFSET },
{ "tt11","tt11v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_V_OFFSET },
{ "tt11","tt11w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_W_OFFSET },
#endif
{ "tt11","tt11a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_A_OFFSET },
{ "tt11","tt11b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_B_OFFSET },
{ "tt11","tt11c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_C_OFFSET },
@@ -1254,9 +1281,11 @@ const cfgItem_t cfgArray[] = {
{ "tt12","tt12x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_X_OFFSET },
{ "tt12","tt12y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_Y_OFFSET },
{ "tt12","tt12z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_Z_OFFSET },
#if (AXES == 9)
{ "tt12","tt12u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_U_OFFSET },
{ "tt12","tt12v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_V_OFFSET },
{ "tt12","tt12w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_W_OFFSET },
#endif
{ "tt12","tt12a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_A_OFFSET },
{ "tt12","tt12b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_B_OFFSET },
{ "tt12","tt12c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_C_OFFSET },
@@ -1264,9 +1293,11 @@ const cfgItem_t cfgArray[] = {
{ "tt13","tt13x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_X_OFFSET },
{ "tt13","tt13y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_Y_OFFSET },
{ "tt13","tt13z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_Z_OFFSET },
#if (AXES == 9)
{ "tt13","tt13u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_U_OFFSET },
{ "tt13","tt13v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_V_OFFSET },
{ "tt13","tt13w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_W_OFFSET },
#endif
{ "tt13","tt13a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_A_OFFSET },
{ "tt13","tt13b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_B_OFFSET },
{ "tt13","tt13c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_C_OFFSET },
@@ -1274,9 +1305,11 @@ const cfgItem_t cfgArray[] = {
{ "tt14","tt14x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_X_OFFSET },
{ "tt14","tt14y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_Y_OFFSET },
{ "tt14","tt14z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_Z_OFFSET },
#if (AXES == 9)
{ "tt14","tt14u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_U_OFFSET },
{ "tt14","tt14v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_V_OFFSET },
{ "tt14","tt14w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_W_OFFSET },
#endif
{ "tt14","tt14a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_A_OFFSET },
{ "tt14","tt14b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_B_OFFSET },
{ "tt14","tt14c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_C_OFFSET },
@@ -1284,9 +1317,11 @@ const cfgItem_t cfgArray[] = {
{ "tt15","tt15x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_X_OFFSET },
{ "tt15","tt15y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_Y_OFFSET },
{ "tt15","tt15z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_Z_OFFSET },
#if (AXES == 9)
{ "tt15","tt15u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_U_OFFSET },
{ "tt15","tt15v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_V_OFFSET },
{ "tt15","tt15w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_W_OFFSET },
#endif
{ "tt15","tt15a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_A_OFFSET },
{ "tt15","tt15b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_B_OFFSET },
{ "tt15","tt15c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_C_OFFSET },
@@ -1294,9 +1329,11 @@ const cfgItem_t cfgArray[] = {
{ "tt16","tt16x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_X_OFFSET },
{ "tt16","tt16y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_Y_OFFSET },
{ "tt16","tt16z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_Z_OFFSET },
#if (AXES == 9)
{ "tt16","tt16u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_U_OFFSET },
{ "tt16","tt16v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_V_OFFSET },
{ "tt16","tt16w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_W_OFFSET },
#endif
{ "tt16","tt16a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_A_OFFSET },
{ "tt16","tt16b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_B_OFFSET },
{ "tt16","tt16c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_C_OFFSET },
@@ -1304,9 +1341,11 @@ const cfgItem_t cfgArray[] = {
{ "tt17","tt17x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_X_OFFSET },
{ "tt17","tt17y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_Y_OFFSET },
{ "tt17","tt17z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_Z_OFFSET },
#if (AXES == 9)
{ "tt17","tt17u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_U_OFFSET },
{ "tt17","tt17v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_V_OFFSET },
{ "tt17","tt17w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_W_OFFSET },
#endif
{ "tt17","tt17a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_A_OFFSET },
{ "tt17","tt17b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_B_OFFSET },
{ "tt17","tt17c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_C_OFFSET },
@@ -1314,9 +1353,11 @@ const cfgItem_t cfgArray[] = {
{ "tt18","tt18x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_X_OFFSET },
{ "tt18","tt18y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_Y_OFFSET },
{ "tt18","tt18z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_Z_OFFSET },
#if (AXES == 9)
{ "tt18","tt18u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_U_OFFSET },
{ "tt18","tt18v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_V_OFFSET },
{ "tt18","tt18w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_W_OFFSET },
#endif
{ "tt18","tt18a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_A_OFFSET },
{ "tt18","tt18b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_B_OFFSET },
{ "tt18","tt18c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_C_OFFSET },
@@ -1324,9 +1365,11 @@ const cfgItem_t cfgArray[] = {
{ "tt19","tt19x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_X_OFFSET },
{ "tt19","tt19y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_Y_OFFSET },
{ "tt19","tt19z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_Z_OFFSET },
#if (AXES == 9)
{ "tt19","tt19u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_U_OFFSET },
{ "tt19","tt19v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_V_OFFSET },
{ "tt19","tt19w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_W_OFFSET },
#endif
{ "tt19","tt19a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_A_OFFSET },
{ "tt19","tt19b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_B_OFFSET },
{ "tt19","tt19c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_C_OFFSET },
@@ -1334,9 +1377,11 @@ const cfgItem_t cfgArray[] = {
{ "tt20","tt20x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_X_OFFSET },
{ "tt20","tt20y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_Y_OFFSET },
{ "tt20","tt20z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_Z_OFFSET },
#if (AXES == 9)
{ "tt20","tt20u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_U_OFFSET },
{ "tt20","tt20v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_V_OFFSET },
{ "tt20","tt20w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_W_OFFSET },
#endif
{ "tt20","tt20a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_A_OFFSET },
{ "tt20","tt20b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_B_OFFSET },
{ "tt20","tt20c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_C_OFFSET },
@@ -1344,9 +1389,11 @@ const cfgItem_t cfgArray[] = {
{ "tt21","tt21x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_X_OFFSET },
{ "tt21","tt21y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_Y_OFFSET },
{ "tt21","tt21z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_Z_OFFSET },
#if (AXES == 9)
{ "tt21","tt21u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_U_OFFSET },
{ "tt21","tt21v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_V_OFFSET },
{ "tt21","tt21w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_W_OFFSET },
#endif
{ "tt21","tt21a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_A_OFFSET },
{ "tt21","tt21b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_B_OFFSET },
{ "tt21","tt21c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_C_OFFSET },
@@ -1354,9 +1401,11 @@ const cfgItem_t cfgArray[] = {
{ "tt22","tt22x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_X_OFFSET },
{ "tt22","tt22y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_Y_OFFSET },
{ "tt22","tt22z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_Z_OFFSET },
#if (AXES == 9)
{ "tt22","tt22u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_U_OFFSET },
{ "tt22","tt22v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_V_OFFSET },
{ "tt22","tt22w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_W_OFFSET },
#endif
{ "tt22","tt22a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_A_OFFSET },
{ "tt22","tt22b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_B_OFFSET },
{ "tt22","tt22c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_C_OFFSET },
@@ -1364,9 +1413,11 @@ const cfgItem_t cfgArray[] = {
{ "tt23","tt23x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_X_OFFSET },
{ "tt23","tt23y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_Y_OFFSET },
{ "tt23","tt23z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_Z_OFFSET },
#if (AXES == 9)
{ "tt23","tt23u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_U_OFFSET },
{ "tt23","tt23v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_V_OFFSET },
{ "tt23","tt23w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_W_OFFSET },
#endif
{ "tt23","tt23a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_A_OFFSET },
{ "tt23","tt23b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_B_OFFSET },
{ "tt23","tt23c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_C_OFFSET },
@@ -1374,9 +1425,11 @@ const cfgItem_t cfgArray[] = {
{ "tt24","tt24x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_X_OFFSET },
{ "tt24","tt24y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_Y_OFFSET },
{ "tt24","tt24z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_Z_OFFSET },
#if (AXES == 9)
{ "tt24","tt24u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_U_OFFSET },
{ "tt24","tt24v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_V_OFFSET },
{ "tt24","tt24w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_W_OFFSET },
#endif
{ "tt24","tt24a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_A_OFFSET },
{ "tt24","tt24b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_B_OFFSET },
{ "tt24","tt24c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_C_OFFSET },
@@ -1384,9 +1437,11 @@ const cfgItem_t cfgArray[] = {
{ "tt25","tt25x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_X_OFFSET },
{ "tt25","tt25y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_Y_OFFSET },
{ "tt25","tt25z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_Z_OFFSET },
#if (AXES == 9)
{ "tt25","tt25u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_U_OFFSET },
{ "tt25","tt25v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_V_OFFSET },
{ "tt25","tt25w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_W_OFFSET },
#endif
{ "tt25","tt25a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_A_OFFSET },
{ "tt25","tt25b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_B_OFFSET },
{ "tt25","tt25c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_C_OFFSET },
@@ -1394,9 +1449,11 @@ const cfgItem_t cfgArray[] = {
{ "tt26","tt26x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_X_OFFSET },
{ "tt26","tt26y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_Y_OFFSET },
{ "tt26","tt26z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_Z_OFFSET },
#if (AXES == 9)
{ "tt26","tt26u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_U_OFFSET },
{ "tt26","tt26v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_V_OFFSET },
{ "tt26","tt26w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_W_OFFSET },
#endif
{ "tt26","tt26a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_A_OFFSET },
{ "tt26","tt26b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_B_OFFSET },
{ "tt26","tt26c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_C_OFFSET },
@@ -1404,9 +1461,11 @@ const cfgItem_t cfgArray[] = {
{ "tt27","tt27x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_X_OFFSET },
{ "tt27","tt27y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_Y_OFFSET },
{ "tt27","tt27z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_Z_OFFSET },
#if (AXES == 9)
{ "tt27","tt27u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_U_OFFSET },
{ "tt27","tt27v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_V_OFFSET },
{ "tt27","tt27w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_W_OFFSET },
#endif
{ "tt27","tt27a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_A_OFFSET },
{ "tt27","tt27b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_B_OFFSET },
{ "tt27","tt27c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_C_OFFSET },
@@ -1414,9 +1473,11 @@ const cfgItem_t cfgArray[] = {
{ "tt28","tt28x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_X_OFFSET },
{ "tt28","tt28y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_Y_OFFSET },
{ "tt28","tt28z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_Z_OFFSET },
#if (AXES == 9)
{ "tt28","tt28u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_U_OFFSET },
{ "tt28","tt28v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_V_OFFSET },
{ "tt28","tt28w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_W_OFFSET },
#endif
{ "tt28","tt28a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_A_OFFSET },
{ "tt28","tt28b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_B_OFFSET },
{ "tt28","tt28c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_C_OFFSET },
@@ -1424,9 +1485,11 @@ const cfgItem_t cfgArray[] = {
{ "tt29","tt29x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_X_OFFSET },
{ "tt29","tt29y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_Y_OFFSET },
{ "tt29","tt29z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_Z_OFFSET },
#if (AXES == 9)
{ "tt29","tt29u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_U_OFFSET },
{ "tt29","tt29v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_V_OFFSET },
{ "tt29","tt29w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_W_OFFSET },
#endif
{ "tt29","tt29a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_A_OFFSET },
{ "tt29","tt29b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_B_OFFSET },
{ "tt29","tt29c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_C_OFFSET },
@@ -1434,9 +1497,11 @@ const cfgItem_t cfgArray[] = {
{ "tt30","tt30x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_X_OFFSET },
{ "tt30","tt30y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_Y_OFFSET },
{ "tt30","tt30z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_Z_OFFSET },
#if (AXES == 9)
{ "tt30","tt30u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_U_OFFSET },
{ "tt30","tt30v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_V_OFFSET },
{ "tt30","tt30w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_W_OFFSET },
#endif
{ "tt30","tt30a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_A_OFFSET },
{ "tt30","tt30b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_B_OFFSET },
{ "tt30","tt30c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_C_OFFSET },
@@ -1444,9 +1509,11 @@ const cfgItem_t cfgArray[] = {
{ "tt31","tt31x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_X_OFFSET },
{ "tt31","tt31y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_Y_OFFSET },
{ "tt31","tt31z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_Z_OFFSET },
#if (AXES == 9)
{ "tt31","tt31u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_U_OFFSET },
{ "tt31","tt31v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_V_OFFSET },
{ "tt31","tt31w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_W_OFFSET },
#endif
{ "tt31","tt31a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_A_OFFSET },
{ "tt31","tt31b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_B_OFFSET },
{ "tt31","tt31c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_C_OFFSET },
@@ -1454,12 +1521,15 @@ const cfgItem_t cfgArray[] = {
{ "tt32","tt32x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_X_OFFSET },
{ "tt32","tt32y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_Y_OFFSET },
{ "tt32","tt32z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_Z_OFFSET },
#if (AXES == 9)
{ "tt32","tt32u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_U_OFFSET },
{ "tt32","tt32v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_V_OFFSET },
{ "tt32","tt32w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_W_OFFSET },
#endif
{ "tt32","tt32a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_A_OFFSET },
{ "tt32","tt32b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_B_OFFSET },
{ "tt32","tt32c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_C_OFFSET },
#endif // TOOLS > 5
// Diagnostic parameters
#ifdef __DIAGNOSTIC_PARAMETERS
@@ -1590,9 +1660,11 @@ const cfgItem_t cfgArray[] = {
{ "","x", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // axis groups
{ "","y", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
{ "","z", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
#if (AXES == 9)
{ "","u", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
{ "","v", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
{ "","w", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
#endif
{ "","a", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
{ "","b", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
{ "","c", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 },
@@ -1689,13 +1761,14 @@ const cfgItem_t cfgArray[] = {
{ "","g28",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // g28 home position
{ "","g30",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // g30 home position
#define TOOL_OFFSET_GROUPS 33
#define TOOL_OFFSET_GROUPS (TOOLS+1)
{ "","tof",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // current tool offsets
{ "","tt1",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt2",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt3",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt4",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt5",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
#if (TOOLS > 5)
{ "","tt6",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt7",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt8",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
@@ -1723,6 +1796,7 @@ const cfgItem_t cfgArray[] = {
{ "","tt30",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt31",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
{ "","tt32",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets
#endif
#define MACHINE_STATE_GROUPS 9
{ "","mpo",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // machine position group
@@ -1749,6 +1823,8 @@ const cfgItem_t cfgArray[] = {
{ "","udb", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // user data group
{ "","udc", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // user data group
{ "","udd", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // user data group
#else
#define USER_DATA_GROUPS 0
#endif
#ifdef __DIAGNOSTIC_PARAMETERS
@@ -2027,7 +2103,11 @@ static stat_t _do_motors(nvObj_t *nv) // print parameters for all motor groups
static stat_t _do_axes(nvObj_t *nv) // print parameters for all axis groups
{
#if (AXES == 9)
char list[][TOKEN_LEN+1] = {"x","y","z","u","v","w","a","b","c",""}; // must have a terminating element
#else
char list[][TOKEN_LEN+1] = {"x","y","z","a","b","c",""}; // must have a terminating element
#endif
return (_do_group_list(nv, list));
}
+20 -3
View File
@@ -34,7 +34,6 @@
#include <string.h>
#include <math.h>
#include "MotatePins.h" // comment in if Motate / ARM
#include "error.h" // Status code definitions and strings
#include "g2core_info.h" // see this file for build number and other identifying information
@@ -60,18 +59,28 @@ typedef uint16_t magic_t; // magic number size
// Note: If you change COORDS you must adjust the entries in cfgArray table in config.c
#define AXES 9 // number of axes supported in this version
#include "hardware.h" // Status code definitions and strings
#ifndef AXES
#define AXES 9 // number of axes supported in this version
#elif (AXES != 6 && AXES != 9)
#error AXES must be undefined (defaulting to 9) or defined as 6 or 9
#endif
#define HOMING_AXES 4 // number of axes that can be homed (assumes Zxyabc sequence)
#define COORDS 6 // number of supported coordinate systems (index starts at 1)
#define TOOLS 32 // number of entries in tool table (index starts at 1)
#ifndef TOOLS
#warning Defining tools
#define TOOLS 32 // number of entries in tool table (index starts at 1)
#endif
typedef enum {
AXIS_X = 0,
AXIS_Y,
AXIS_Z,
#if (AXES == 9)
AXIS_U,
AXIS_V,
AXIS_W,
#endif
AXIS_A,
AXIS_B,
AXIS_C,
@@ -84,6 +93,12 @@ typedef enum {
AXIS_4WIRE_Z = AXIS_B, // 4Wire uses A, B, C, D
} cmAxes;
#if (AXES == 9)
constexpr cmAxes LAST_LINEAR_AXIS = AXIS_W;
#else
constexpr cmAxes LAST_LINEAR_AXIS = AXIS_Z;
#endif
typedef enum { // external representation of axes (used in initialization)
AXIS_X_EXTERNAL = 0,
AXIS_Y_EXTERNAL,
@@ -91,9 +106,11 @@ typedef enum { // external representation of axes (used in initialization)
AXIS_A_EXTERNAL,
AXIS_B_EXTERNAL,
AXIS_C_EXTERNAL,
#if (AXES == 9)
AXIS_U_EXTERNAL,
AXIS_V_EXTERNAL,
AXIS_W_EXTERNAL
#endif
} cmAxesExternal;
typedef enum {
+2
View File
@@ -862,9 +862,11 @@ static stat_t _parse_gcode_block(char *buf, char *active_comment)
case 'A': SET_NON_MODAL (target[AXIS_A], value);
case 'B': SET_NON_MODAL (target[AXIS_B], value);
case 'C': SET_NON_MODAL (target[AXIS_C], value);
#if (AXES == 9)
case 'U': SET_NON_MODAL (target[AXIS_U], value);
case 'V': SET_NON_MODAL (target[AXIS_V], value);
case 'W': SET_NON_MODAL (target[AXIS_W], value);
#endif
case 'H': SET_NON_MODAL (H_word, value);
case 'I': SET_NON_MODAL (arc_offset[0], value);
case 'J': SET_NON_MODAL (arc_offset[1], value);
+2
View File
@@ -182,10 +182,12 @@ stat_t mp_aline(GCodeState_t* _gm)
_gm->target[AXIS_Z] * cm->rotation_matrix[2][2] +
cm->rotation_z_offset;
#if (AXES == 9)
// copy rotation axes for UVW (no changes)
target_rotated[AXIS_U] = _gm->target[AXIS_U];
target_rotated[AXIS_V] = _gm->target[AXIS_V];
target_rotated[AXIS_W] = _gm->target[AXIS_W];
#endif
// copy rotation axes for ABC (no changes)
target_rotated[AXIS_A] = _gm->target[AXIS_A];
+8
View File
@@ -953,7 +953,11 @@ static float _set_motor_steps_per_unit(nvObj_t *nv)
*/
stat_t st_get_ma(nvObj_t *nv)
{
#if (AXES == 9)
uint8_t remap_axis[9] = { 0,1,2,6,7,8,3,4,5 };
#else
uint8_t remap_axis[6] = { 0,1,2,3,4,5 };
#endif
ritorno(get_integer(nv, st_cfg.mot[_motor(nv->index)].motor_map));
nv->value_int = remap_axis[nv->value_int];
return(STAT_OK);
@@ -980,7 +984,11 @@ stat_t st_set_ma(nvObj_t *nv)
return (STAT_INPUT_EXCEEDS_MAX_VALUE);
}
uint8_t external_axis = nv->value_int;
#if (AXES == 9)
uint8_t remap_axis[9] = { 0,1,2,6,7,8,3,4,5 };
#else
uint8_t remap_axis[6] = { 0,1,2,3,4,5 };
#endif
nv->value_int = remap_axis[nv->value_int];
ritorno(set_integer(nv, st_cfg.mot[_motor(nv->index)].motor_map, 0, AXES));
nv->value_int = external_axis;
+6 -1
View File
@@ -78,8 +78,13 @@ float *set_vector_by_axis(float value, uint8_t axis);
#define INIT_AXES_ONES {1,1,1,1,1,1,1,1,1}
#define INIT_AXES_FALSE INIT_AXES_ZEROES
#define INIT_AXES_TRUE INIT_AXES_ONES
#elif (AXES == 6)
#define INIT_AXES_ZEROES {0,0,0,0,0,0}
#define INIT_AXES_ONES {1,1,1,1,1,1}
#define INIT_AXES_FALSE INIT_AXES_ZEROES
#define INIT_AXES_TRUE INIT_AXES_ONES
#else
#warning UNSUPPORTED AXES SETTING!
#error UNSUPPORTED AXES SETTING!
#endif
//*** math utilities ***