# Problem with swapping E0 for E1 (TEVO TARANTULA MARLIN 1.1.x)

Looking at the following code, from Line 139, pins_RAMPS.h

Here is the actual code:

#if ENABLED(EXTRUDER_USE_E1)
#define E0_STEP_PIN        36
#define E0_DIR_PIN         34
#define E0_ENABLE_PIN      30
#ifndef E0_CS_PIN
#define E0_CS_PIN        44
#endif
#else
#define E0_STEP_PIN        26
#define E0_DIR_PIN         28
#define E0_ENABLE_PIN      24
#ifndef E0_CS_PIN
#define E0_CS_PIN        42
#endif
#endif

#if DISABLED(X_AXIS_USE_E1) && DISABLED(Y_AXIS_USE_E1) && DISABLED(Z_AXIS_USE_E1) && DISABLED(EXTRUDER_USE_E1)
#define E1_STEP_PIN        36
#define E1_DIR_PIN         34
#define E1_ENABLE_PIN      30
#ifndef E1_CS_PIN
#define E1_CS_PIN        44
#endif
#endif


I've already tried everything that the online community tells me to do to solve this problem, but that all doesn't help me. Almost everyone is saying that I just have to swap these lines of code and it will work, but it's not working. Any ideas ?

By the way E0 is not working because I've burnt a pot on it :)

• Possible duplicate of How to change E0 to E1 on Marlin 1.1?
– 0scar
May 13, 2018 at 18:20
• No, my question is different. I have lines of code changed, but it's not working while on the other post there were no such lines at all May 13, 2018 at 19:19
• please check this one and let me know if that helps: 3dprinting.stackexchange.com/a/5916/9730 May 13, 2018 at 21:50
• @IlyaSmirnoff the linked topic describes what you need to do to change the pin layout to swap E0 for E1, so that will work if you alter the pins in the correct pin layout file for your motherboard. Where is the snippet you posted taken from? I cannot find this in default Marlin.
– 0scar
May 14, 2018 at 7:34
• Hi, as you say that 0scar's and Professor's proposed solutions didn't work for you, I was wondering whether you ever fixed your problem and found a solution? If so, could you post it..? May 29, 2019 at 8:59

At first it was unclear from where the snippet you posted is taken from as it was not stated in the question (this has now been addressed by a moderator edit).

Depending on the value of EXTRUDER_USE_E1 (and where and how it is set) the underlying code of the if statement will be carried out. Albeit said, swapping lines will not work, if you want to use the E1 connector of your motherboard, you have to make the printer think that it is using the E0 while it is redirecting to E1! This implies that you need to assign the pins of the E1 to the E0 extruder (so swap the pins, not the lines). This has been explained before in this topic by editing the correct pin layout file of the Marlin firmware.

EDIT : Further investigation shows that you have a custom Marlin for the TEVO Tarantula and are using the fork of Marlin maintained by JimBrown (this is essential information for your question). I have looked into the files, the only thing you would need to do is define the constant EXTRUDER_USE_E1 in your configuration.h file:

//#define EXTRUDER_USE_E1


to:

#define EXTRUDER_USE_E1


So do not swap anything. Once this constant is defined, the pin re-allocation is done for you automatically! (see the pins_RAMPS.h file)

Basically, this is exactly the same as is explained in topic How to change E0 to E1 on Marlin 1.1? and hence a duplicate. ;)

I simply swapped the pins

#define E1_STEP_PIN        26  //swapping to E1 FRED
#define E1_DIR_PIN         28
#define E1_ENABLE_PIN      24
#ifndef E1_CS_PIN
#define E1_CS_PIN        42
#endif

#define E0_STEP_PIN        36  //swapping to E0 FRED
#define E0_DIR_PIN         34
#define E0_ENABLE_PIN      30
#ifndef E0_CS_PIN
#define E0_CS_PIN        44
#endif


Which worked for the basic operation, however now that I've tried to add Autoleveling it stopped moving E1 motor. My configuration.h file does not have:
#define EXTRUDER_USE_E1 apparently as its an older version also, just like RAMPS.h doesn't have those conditional statements.

• Basically this is a similar answer as the one linked in this answer. Why not post your own question on the auto bed levelling so that others may help you! Please note that #define EXTRUDER_USE_E1 is something specific for the JimBrown fork of Marlin. And last but not least: "Welcome to 3D Printing.SE!"
– 0scar
May 29, 2019 at 6:17