2019-05-23, 03:50 PM
Extruder Troubleshoot - Theory
The more they overhaul the plumbing, the easier it is to stop up the drain.
When I was researching why my extruder motor was not running, I started writing down a procedure to do the troubleshoot.
Googling "ramps 1.4 extruder does not work" yields many results. This appears to be a common problem. For this reason, I feel I should go over my procedure (and even try parts of it out) so that anyone else running into this problem on the OneUp (and possibily other Q3D printers) has a procedure to follow.
For one thing, there is talk about a PREVENT_COLD_EXTRUSION setting in Marlin, which could be disabled. I assumed such a setting existed, and never questioned the extruder motor not working when my extruder heater was not working. It would damage things if you tried to force filament through a cold head. So, this is a self-preservation setting for the printer. With the heater now working properly (and the thermocouple reporting temperatures properly), this should not be a factor (and it isn't).
However, grepping on COLD in my Marlin folder only uncovered MSG_ERR_COLD_EXTRUDE_STOP in language.h, which defines the following error message:
cold extrusion prevented
There was no PREVENT_COLD_EXTRUSION defined. The proper definition is listed below, along with other settings of interest in my StainlessFDG.zip Marlin Firmware:
Important: Unplug power before swapping anything! This means unplugging both the OneUp power supply and OneUp's USB connection, since the RAMPS 1.4 board can draw power from the USB. Then swap things. Then power up, and see if things work. Then unplug power to undo previous step, and swap something else, etc.
My RAMPS 1.4 board has an unpopulated driver socket for E1, so when swapping the E0 plug to E1, I will also need to swap a polulu to that socket as well.
If you still have no joy, swap pololus back, swap plug back to E0, and undo your Marlin changes so E0 is E0 [and E1 is E1] again. That way, your board is back to its "base configuration" for future troubleshooting.
NOTE: The term "pololu," here, refers to stepper driver sub-boards running either the Allegro A4983 or A4988, or the Texas Instruments DRV8825. The manufacturer of your driver mini-boards may or may not be Pololu. It's called a proprietary eponym - where an individual product trademark (or producer name) becomes the generic descriptor for all brands of the product - kind of like all facial tissues are called Kleenex.
So, that is the troubleshoot plan, in general.
I'll discuss the specifics of the polulus and the associated Marlin firmware tweaks in a future post.
The more they overhaul the plumbing, the easier it is to stop up the drain.
When I was researching why my extruder motor was not running, I started writing down a procedure to do the troubleshoot.
Googling "ramps 1.4 extruder does not work" yields many results. This appears to be a common problem. For this reason, I feel I should go over my procedure (and even try parts of it out) so that anyone else running into this problem on the OneUp (and possibily other Q3D printers) has a procedure to follow.
For one thing, there is talk about a PREVENT_COLD_EXTRUSION setting in Marlin, which could be disabled. I assumed such a setting existed, and never questioned the extruder motor not working when my extruder heater was not working. It would damage things if you tried to force filament through a cold head. So, this is a self-preservation setting for the printer. With the heater now working properly (and the thermocouple reporting temperatures properly), this should not be a factor (and it isn't).
However, grepping on COLD in my Marlin folder only uncovered MSG_ERR_COLD_EXTRUDE_STOP in language.h, which defines the following error message:
cold extrusion prevented
There was no PREVENT_COLD_EXTRUSION defined. The proper definition is listed below, along with other settings of interest in my StainlessFDG.zip Marlin Firmware:
- PREVENT_DANGEROUS_EXTRUDE - This is this firmware's version of PREVENT_COLD_EXTRUSION, mentioned above.
- EXTRUDER_RUNOUT_PREVENT - This #define is commented out, probably because OneUp does not have a filament sensor.
- PREVENT_LENGTHY_EXTRUDE - Prevents extrusions over EXTRUDE_MAXLENGTH, defined elsewhere in the firmware.
- Make sure that the extruder is at extrusion temperature. Operate extruder motor, and see if it turns. (Verifies you made sure things were at temperature.)
- Swap motor plugs with one of the (working) axes. Operate that axis, and see if the extruder motor turns. (Verifies motor-did that already-motor good.)
- Put everything back to normal from previous step. Swap extruder pololu driver with one from a working axis. Bring extruder up to extrusion temperature, and operate extruder motor. See if it turns. (Verifies pololu driver.)
- While your polulus are swapped, try operating the axis motor with which you swapped polulus with the extruder. (Absolutely verifies the polulu driver.)
- Put everything back to normal from previous step. Swap motor plug (and possibly pololu - see below) from E0 to E1. Reconfigure Marlin to treat E1 as E0. Bring extruder up to extrusion temperature, and operate extruder. See if it turns. (Verifies that E0 on RAMPS 1.4 is the problem.)
Important: Unplug power before swapping anything! This means unplugging both the OneUp power supply and OneUp's USB connection, since the RAMPS 1.4 board can draw power from the USB. Then swap things. Then power up, and see if things work. Then unplug power to undo previous step, and swap something else, etc.
My RAMPS 1.4 board has an unpopulated driver socket for E1, so when swapping the E0 plug to E1, I will also need to swap a polulu to that socket as well.
If you still have no joy, swap pololus back, swap plug back to E0, and undo your Marlin changes so E0 is E0 [and E1 is E1] again. That way, your board is back to its "base configuration" for future troubleshooting.
NOTE: The term "pololu," here, refers to stepper driver sub-boards running either the Allegro A4983 or A4988, or the Texas Instruments DRV8825. The manufacturer of your driver mini-boards may or may not be Pololu. It's called a proprietary eponym - where an individual product trademark (or producer name) becomes the generic descriptor for all brands of the product - kind of like all facial tissues are called Kleenex.
So, that is the troubleshoot plan, in general.
I'll discuss the specifics of the polulus and the associated Marlin firmware tweaks in a future post.