Marlin: using E drivers to run 2nd X and Y motors

In the interests of keeping things cool, I’d like to run X and Y on the E0 and E1 drivers, a la Estlcam’s firmware installer mentions (which I can’t seem to get working, BTW).

I’ve enabled the two options in configurations_adv.h (X_DUAL_STEPPER_DRIVERS andY_DUAL_STEPPER_DRIVERS) and set EXTRUDERS 0 and MOTHERBOARD BOARD_RAMPS_14_SF Configuration.h but get an array error (presumably because Marlin doesn’t account for not having an extruder?) when compiling.

Anyone get this going like that? I tried Repetier, and the configurator gives you the option of enabling dual on X and Y and removing the Extruder, but it doesn’t seem to actually enable the E0 stepper to X as I chose in the dropdown. I am confused with why he names the X dual option as DUAL_X_AXIS and the Y as FEATURE_TWO_YSTEPPER, and I find the Repetier code setup confusing to navigate compared to Marlin so haven’t gone mucking through it much, I’d rather get Marlin working.

When wired in series with the motors I include we can easily max them out without the need for active cooling. To change it in marlin takes a ton of work for no improvements.

Yah, so far I haven’t figured out the Marlin issue, but I did go through the Repetier FW and found the X Axis fix. I think the other one that was listed was if you want to run 2 X-carriages (!) but when I was poking through the stepper code trying to figure out how to convince it to mirror the signals I found the flag.

Changed the following:


Obviously set the EXTRUDERS to 0 so I freed up the E0 pins as above. Seems to work well enough, got a few test prints on and now just figuring out how to get some endstops attached because I can’t imagine using these things without homing.

I have a Github issue asking the Marlin crew why I get the compile issue, since I’d prefer to use Marlin, I’m much more used to it.

I’m currently using Marlin RC8 BugFix with 5 stepper drivers, one for each motor. I’ll try to translate how it has been explained to me.

Configuration.h —> Extruders = 1, you can not have 0 in here.

Then you go to Pins_RAMPS.h and make this changes:

#define SERVO3_PIN 4 —> -1

#define X_MAX_PIN 2 ----> -1
#define Y_MAX_PIN 15 —> -1
#define Z_MAX_PIN 19 —> -1

After that, you create a new E0 with the “freed” (I think this word maybe don’t exist) pins and change pins from E1 to E2.

#define E0_STEP_PIN 4
#define E0_DIR_PIN 2
#define E0_ENABLE_PIN 15
#define E0_CS_PIN 19

#define E1_STEP_PIN 26
#define E1_DIR_PIN 28
#define E1_ENABLE_PIN 24
#define E1_CS_PIN 42

#define E2_STEP_PIN 36
#define E2_DIR_PIN 34
#define E2_ENABLE_PIN 30
#define E2_CS_PIN 44

I hope you can understand me (:

Thanks for the reply, AntTuru.

Yes, essentially that was the response I got to the GIthub issue I asked on the issue. I’ve pretty much got Repetier working without having to muck around in pins.h just because they don’t account for lack of an extruder, and there’s some things like M401/M402 that I like in that firmware. So while I might give Marlin a try, I’m getting more comfortable with Repetier and it’s slight leaning to CNC that Marlin doesn’t have as much of. I also like the ability to add custom events and scripts, and I haven’t seen that in Marlin.

I’ve seen some mention of being able to add a second endstop on each axis to be able to straighten out the gantry runner on homing. I haven’t found it again in my reading, not even sure if it was Reptier or Marlin, but I’d love to figure that out because I’m see a fair slant in the gantry runners every time I home.

You mean this: Dual end stops

Hi Ian,

I’m in the process of building a Lowrider and would like to use Repetier’s firmware - I was just wondering how you are still using it and if so how you were getting on.

I love the configuration web page they have!!!



Ian’s last post was over a year ago. Not sure you’ll get a reply.