Marlin/RAMPS patch to use extruder drivers as additionnal X+Y drivers

Hi,

Using RAMPS boards for CNC is a great idea as they are cheap and widely supported in the 3D printing community.
They can support 5 stepper drivers, 2 of them being initially dedicated to driving extrusion motors.
The MPCNC has 5 stepper motors, so it would be great, for pure CNC use, to repurpose the extrusion drivers so that each motor of the MPCNC has its own driver (1st X motor on X, 1st Y motor on Y, 2nd X motor on E0, 2nd Y motor on E1 and Z on Z).
However, if the board doesn’t need any modification for that, the Marlin firware that drives the RAMPS board does.
Marlin can be configured to so that the second extrusion stepper powers an additionnal Y or Z motor, but has no option for doing the same on the first extrusion stepper.

I worked on that modification and tested it for a few days, and that seems to work pretty well (using Repetier or printing through SD with a reprapdiscount LCD controller).
Basically, “Dual Y” support in the code was duplicated for the X axis and E0 code was commented out so that extruding commands are not interfering.

The attached patch file is a before/after snapshot of my modifications on Marlin 1.0.2 for Dual X/Dual Y drive.
If you are familiar with patch/diff files you may directly apply it with appropriate version control software on a fresh version of Marlin 1.0.2
If not, open the patch file in a text editor and use it to locate files & lines that should be modified.
Lines that were removed from the original file are prefixed with a minus ‘-’ symbol, whereas lines that were added are prefixed with a plus ‘+’ symbol.

Good CNC cutting
Tom

Marlin-1.0.2-dualXY.patch_.zip (1.46 KB)

Wow, that’s awesome work. I started to do this initially, but as it turns out I use mine to print more that I do as a mill. Time for me to build a second machine.

You might just want to zip up a complete marlin ready to flash, I’m sure a lot of people will use it. Thanks for putting in the work!

I am thinking that this will allow full power out of the steppers. Am I right?

The steppers I have are rated at 2amp each. And the drivers are only rated at 2.5 amps. So parallel feed I would be getting 1.25 amp to each motor, roughly 62% of the rated torque.

As I have not assembled my machine is having two 76oz motors at full rating on each axis overkill?

Doesn’t work that way. You didn’t give enough information. 2 amps at what volts? lets say 4V, 2amps x 4V= 8watts…8watts /12v(what we use) = .6 amps. Plenty of room on the drivers.

Make sense?

Duh. That makes sense.

I purchased my motors on eBay and they only said “up to 1.4amp and up to 48volt”

What is the advantage of doing this then?

Drivers running cooler is always pretty good, or using nema 23’s, with the ramps board.

I think I am going to try and use this to run the 4 head printer. I don’t like having the 1 driver running so hot pushing all 4 extruders. Thanks for the inspiration.

Hi,

My modified firmware performs very well so far.
You asked for a complete .zip of the source code, but it weighs more than what the forum can stand.
Should you need help to apply the modifications, feel free to ask :slight_smile:

Thanks, I looked at it for about 10 minutes…wasn’t in the mood for code yesterday. So I rewired it instead to clean it up a bit.
You think I will still be able to do this since I use the dual head code? I need the the PWN for the second head as the heater controller but use the extra driver port for the z axis. I saw in your code you disabled the E1 commands but I wasn’t sure if that would disable the D9 port as well. I will fire it up in a few minutes and see if I need to look into this some more.

Thanks for offering. If I dig into in I’m sure I will have more questions

Tried modifying the firmware with your edits and it will not compile now. Not sure how to apply the .patch and google is getting me nowhere. Ideas on what I may be doing wrong?

getting Arduino: 1.6.7 (Windows 7), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

sketch\Marlin_main.cpp: In function ‘void process_commands()’:

fastio.h:45: error: ‘DIOX2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:117:61: note: in expansion of macro ‘WRITE’

 #define  enable_x() { WRITE(X_ENABLE_PIN, X_ENABLE_ON); WRITE(X2_ENABLE_PIN,  X_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1939:9: note: in expansion of macro ‘enable_x’

     enable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:45: error: ‘DIOY2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:130:61: note: in expansion of macro ‘WRITE’

 #define  enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN,  Y_ENABLE_ON); }

                                                         ^

sketch\Marlin_main.cpp:1940:9: note: in expansion of macro ‘enable_y’

     enable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:45: error: ‘DIOX2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2697:30: note: in expansion of macro ‘disable_x’

       if(code_seen('X')) disable_x();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:45: error: ‘DIOY2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:2698:30: note: in expansion of macro ‘disable_y’

       if(code_seen('Y')) disable_y();

                          ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

sketch\Marlin_main.cpp: In function ‘void manage_inactivity(bool)’:

fastio.h:45: error: ‘DIOX2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4359:9: note: in expansion of macro ‘disable_x’

     disable_x();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:45: error: ‘DIOY2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4360:9: note: in expansion of macro ‘disable_y’

     disable_y();

     ^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

sketch\Marlin_main.cpp: In function ‘void kill()’:

fastio.h:45: error: ‘DIOX2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

fastio.h:30: error: ‘DIOX2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:118:61: note: in expansion of macro ‘WRITE’

 #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); WRITE(X2_ENABLE_PIN, !X_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4464:3: note: in expansion of macro ‘disable_x’

disable_x();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:45: error: ‘DIOY2_ENABLE_PIN_RPORT’ was not declared in this scope

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:34: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT |= MASK(DIO ## IO ## _PIN); }\

                                                                    ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                       ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

In file included from sketch\Marlin.h:21:0,

             from sketch\Marlin_main.cpp:30:

fastio.h:39: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

                                      {DIO ##  IO ## _WPORT &amp;= ~MASK(DIO ## IO ## _PIN); }\

                                                                     ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:80: note: in expansion of macro ‘_WRITE_C’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                            ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                    ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                 ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_WPORT’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                             ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

fastio.h:30: error: ‘DIOY2_ENABLE_PIN_PIN’ was not declared in this scope

#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= MASK(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~MASK(DIO ## IO ## _PIN); }; } while (0)

                                                                                                                           ^

sketch\fastio.h:17:26: note: in definition of macro ‘MASK’

#define MASK(PIN) (1 << PIN)

                      ^

sketch\fastio.h:45:105: note: in expansion of macro ‘_WRITE_NC’

#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)

                                                                                                     ^

sketch\fastio.h:68:23: note: in expansion of macro ‘_WRITE’

#define WRITE(IO, v) _WRITE(IO, v)

                   ^

sketch\Marlin.h:131:61: note: in expansion of macro ‘WRITE’

 #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }

                                                         ^

sketch\Marlin_main.cpp:4465:3: note: in expansion of macro ‘disable_y’

disable_y();

^

exit status 1
‘DIOX2_ENABLE_PIN_RPORT’ was not declared in this scope

This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.

Hi,

I guess you are trying to apply the patch to a newer version than the 1.0.2 I did the patch for.
There’s little chance that this works.
You should either apply the patch to Marlin 1.0.2 or open the .patch file manually and report each modification by yourself in a newer version.
I will upgrade to a newer version of Marlin also (I have GLCD issues with 1.0.2) and publish a new patch some time soon, but not for now.

I thought it was 1.0.2 ( downloaded right from GITHUB) but maybe not. I’ll have to try it again. At the moment I’m fighting other issues with my steppers so may be a while. Would like to get my motion figured out in parallel first but can’t get any torque out of them. Thank you for the reply! I look forward to trying it out in the future.

For torque issues, I’d check the wiring first, then the current setting on the motor driver.
Also make sure that there’s a reasonable load on the motor, by moving each axis by hand (maybe there’s too much friction somewhere).