<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Extruder direction voltage question</title>
        <description> I&#039;m running an Arduino Mega 2560 with a RAMPS 1.4 board. We have installed the 1.1.X Marlin firmware. 

I have a question about modifying the idle direction voltage for our extruder. Our project is a bit unconventional. Rather than using a stepper driver with the extruder&#039;s direction and pulse, I have the direction used as the logic signal to a relay. The relay then controls a separate pump and valve. The direction values work when the extruder is actively retracting or extruding, but is inverted (compared to what I want) when idle. It looks like the direction signal of the extruder when idle is the same value as when it is extruding. I would like to set the idle direction value of the extruder to the same value as the &quot;retract&quot; direction instead. I&#039;m thinking this can be done through modification of the firmware, but am only passingly familiar with the Marlin solution. Any advice or pointers as to where the relevant code could be found would be greatly appreciated.</description>
        <link>https://reprap.org/forum/read.php?415,840859,840859#msg-840859</link>
        <lastBuildDate>Wed, 22 Apr 2026 13:41:02 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?415,840859,841102#msg-841102</guid>
            <title>Re: Extruder direction voltage question</title>
            <link>https://reprap.org/forum/read.php?415,840859,841102#msg-841102</link>
            <description><![CDATA[ I think I found a solid solution. In <i>planner.cpp</i> I changed line 789(ish) from<br />
<br />
 <i>if (de &lt; 0) SBI(dm, E_AXIS);</i><br />
<br />
to<br />
<br />
 <i>if (de &lt;<b>=</b> 0) SBI(dm, E_AXIS);</i><br />
<br />
With this change, Idle direction for the extruder appears to be in the retract direction rather than the extrude direction. I do need to confirm more thoroughly that I haven't catastrophically damaged some other section of code.  Logically direction shouldn't matter for the extruder when it isn't extruding or retracting, but I guess we will see.]]></description>
            <dc:creator>bluenovajinx</dc:creator>
            <category>Firmware - Marlin</category>
            <pubDate>Tue, 11 Dec 2018 19:17:08 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?415,840859,840936#msg-840936</guid>
            <title>Re: Extruder direction voltage question</title>
            <link>https://reprap.org/forum/read.php?415,840859,840936#msg-840936</link>
            <description><![CDATA[ Thanks for the suggestion enif. I think this is a good line of thinking. I'm going to try some experiments with <i>DISABLE_E</i> and <i>DISABLE_INACTIVE_EXTRUDER</i> tonight.]]></description>
            <dc:creator>bluenovajinx</dc:creator>
            <category>Firmware - Marlin</category>
            <pubDate>Mon, 10 Dec 2018 11:20:40 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?415,840859,840896#msg-840896</guid>
            <title>Re: Extruder direction voltage question</title>
            <link>https://reprap.org/forum/read.php?415,840859,840896#msg-840896</link>
            <description><![CDATA[ Maybe you could solve the problem by enabling your extruder stepper externally with a constant signal and then use an external gate to combine the <i>E_ENABLE</i> and <i>E0_DIR</i> signals generated by Marlin for activating your relay. To do this, you would need to set <i>DISABLE_E</i> to <i>true</i> in your <i>Configuration.h</i>, so that the generated <i>E_ENABLE</i> signal shows the active/idling state of the extruder.]]></description>
            <dc:creator>enif</dc:creator>
            <category>Firmware - Marlin</category>
            <pubDate>Mon, 10 Dec 2018 02:54:36 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?415,840859,840879#msg-840879</guid>
            <title>Re: Extruder direction voltage question</title>
            <link>https://reprap.org/forum/read.php?415,840859,840879#msg-840879</link>
            <description><![CDATA[ Thank you Roberts_Clif for the quick reply. With my current build I have the flag you mentioned set to true. The 0.14V signal opens the relay I have but the 5V does not. This keeps my logic straight where if the board is off, the pump and valve are closed/off. Unfortunately if the flag is set to true or false, the Idle value still matches the Extrude value like I have listed below. I also tried <br />
#define INVERT_E_STEP_PIN<br />
in configuration_adv.h<br />
with both combinations of INVERT_E0_DIR to no avail<br />
<br />
<u>Extruder Direction Inverted</u><br />
Retracted                            5V<br />
Extrude                               0.14V<br />
Move while Extruder Idle    0.14V<br />
<br />
<u>Extruder Direction Normal</u><br />
Retracted                           0.14V<br />
Extrude                              5V<br />
Move while Extruder Idle   5V<br />
<br />
My goal is to get the voltage of the direction pin when idle to match the voltage when the extruder is retracting. Like I have listed below.  I hope this helps clarify what I'm trying to do. I apologize if my terminology or formatting is poor.<br />
<br />
<u>Ideal Direction Signals</u><br />
Retracted                            5V<br />
Extrude                               0.14V<br />
Move while Extruder Idle    <b>5V</b>]]></description>
            <dc:creator>bluenovajinx</dc:creator>
            <category>Firmware - Marlin</category>
            <pubDate>Sun, 09 Dec 2018 17:33:02 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?415,840859,840874#msg-840874</guid>
            <title>Re: Extruder direction voltage question</title>
            <link>https://reprap.org/forum/read.php?415,840859,840874#msg-840874</link>
            <description><![CDATA[ Depending on your version of Marlin 1.1.X<br />
<br />
In configuration.h<br />
<br />
// For direct drive extruder v9 set to true, for geared extruder set to false.<br />
#define INVERT_E0_DIR false<br />
#define INVERT_E1_DIR false]]></description>
            <dc:creator>Roberts_Clif</dc:creator>
            <category>Firmware - Marlin</category>
            <pubDate>Sun, 09 Dec 2018 16:36:22 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?415,840859,840859#msg-840859</guid>
            <title>Extruder direction voltage question</title>
            <link>https://reprap.org/forum/read.php?415,840859,840859#msg-840859</link>
            <description><![CDATA[ I'm running an Arduino Mega 2560 with a RAMPS 1.4 board. We have installed the 1.1.X Marlin firmware. <br />
<br />
I have a question about modifying the idle direction voltage for our extruder. Our project is a bit unconventional. Rather than using a stepper driver with the extruder's direction and pulse, I have the direction used as the logic signal to a relay. The relay then controls a separate pump and valve. The direction values work when the extruder is actively retracting or extruding, but is inverted (compared to what I want) when idle. It looks like the direction signal of the extruder when idle is the same value as when it is extruding. I would like to set the idle direction value of the extruder to the same value as the "retract" direction instead. I'm thinking this can be done through modification of the firmware, but am only passingly familiar with the Marlin solution. Any advice or pointers as to where the relevant code could be found would be greatly appreciated.]]></description>
            <dc:creator>bluenovajinx</dc:creator>
            <category>Firmware - Marlin</category>
            <pubDate>Sun, 09 Dec 2018 14:30:33 -0500</pubDate>
        </item>
    </channel>
</rss>
