Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
OneUp V2 Build Log.
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 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.
Good information was found in the following RepRap thread:,137069 and the troubleshoot procedure seems to be the following:
  1. 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.)
  2. 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.)
  3. 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.)
  4. While your polulus are swapped, try operating the axis motor with which you swapped polulus with the extruder.  (Absolutely verifies the polulu driver.)
  5. 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.)
Let me stress that two of those steps begin with: "Put everything back to normal from previous step."  This is where you will screw up your troubleshoot if you do not do this.  If you swap motor plugs, swap them back before swapping the pololus.  If you swap pololus, swap them back before plugging in to E1.

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.
[Image: avatar_23.png?dateline=1515658171]
(2018-04-25, 05:46 PM)mr_intensity Wrote: Tweaking the firmware

There isn't much thermistor wiring to check.

So, I had a long layoff from the OneUp. As mentioned in a previous post, part of the problem was that I lost my operating system...literally.  For about a month, my OneUp resided in the back seat of my car.  However, I found my missing OS, and was back on the war path.

There has been movement on both the hardware and software front, but first let's review a boo-boo from a previous post:

Tip:  Once you have the power rails wired up to the green connector on the RAMPS board, ***NEVER*** touch those screws unless you absolutely have to.

I did not realize how badly I screwed this up until I was reviewing my previous entries.  The fan cooling the RAMPS board does NOT connect to the RAMPS board green connector.  Rather, it connects directly to the power rails.  Thus, the following statement is false: "So, I just treated it like the cooling fan on the electronics board.  I hooked it in to the screw terminals on the RAMPS board at one of the 12V rails."  I should have connected it directly to the power supply rails and avoided the RAMPS connector completely.

As Denis Lemieux would say: "Two minutes, by yourself, you know and you feel shame, you know. And then you get free."


I have not got around to adding handles to my 3D-Printer stand, but I did add a switch to the thing.  I picked up a toggle switch and some electrical wire from Lowes, and had Jake (the Boy Wonder, who is in Electrician School) do the honors of wiring everything up.

It was required for me to remove the Back panel of the stand, and drill two holes in it.  One hole was to run the electrical cable out, while the other was for mounting the switch.  I had to countersink a large area behind the switch-mounting hole, as the wood was too thick to mount the switch.

Jake stuffed the electrical wire in the hole, then wrapped the thing in electrical tape, to form a sort of strain relief, and then backed it out so the taped up area filled the hole. Then he wired in the switch, and used some of the extra wire to run everything to the power supply.

I left the front panel of the stand unmolested, as I plan to someday mount a panel controller there.


Repetier-Host (RH) gave me no information in the logs.  As a matter of fact, it gave me no logs.  I decided to look at an alternative that might give me better logging.  In the Knoppix repositories is a package called printrun, and it's GUI console program is called pronterface.  It gave me no logs, either, which made no sense.  It gave me a running dialogue down the right hand side of the screen.  It might have even told me that the log directory did not exist (oops! my bad).  Anyway, I typo-ed the log directories in the configuration...on BOTH pronterface and RH.  Anyway, once logging was fixed, the magic error message that pronterface gave to me was...

[ERROR] ErrorTonguerinter stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting) Please check thermistor wiring

There isn't really much to check.  The thermistor has two white wires that go from the thermistor to a plug that plugs onto the T0 posts.  It isn't rocket science.  It isn't even rocket engineering.  It is pretty much cut and dry.  Current will flow either way through the thing, so polarity is not an issue (even though I turned the plug over, and tried it the other way, anyway).

Googling the error message brought me to this discussion thread on RepRap.  To quote the post:

Quote:In Configuration.h, just change the TEMP_SENSOR_0 from 1 to 0. This will change it from being defined as a 100k thermistor to not used. Then you can run your motors without a temp. That's what I'm doing right now to test movement on my machine.

I was surprised, upon editing Configuration.h, to find that not only was TEMP_SENSOR set to 1, but also TEMP_SENSOR_BED was set to 1.  Waitaminute - I don't have a heated bed!  So, my first step is to set TEMP_SENSOR_BED to 0, and see if that fixes the problem.

Nope.  Same error.

Next, I set TEMP_SENSOR to 0, and was now able to move the motors.  And what did I learn?

I got everything backwards.

No, really.  All three axes were wired backwards.  When I told Y to come forward, it went back, when I told Z to go down it went up.  When I told X to go left, it went right.  Do you realize how much talent it took to screw up ALL THREE axes like that?  I mean, it is a simple fix (pull the wire out of the RAMPS board, flip it around the other way, and plug it back in).  But one would think I would have gotten at least ONE of them right.  I owe it all to clean living, and knowing something about electronics.

While the connectors are square, and really have no polarity, there is a very small arrow (triangle) raised on one side of the connector, and it points to "pin one."  The RAMPS board labels pin one on all of its connectors.  All I had to do was match pin one to pin one, and rely on the improving quality of Chinese industry.  Their repeatability and reproducibility allowed them to screw up the wiring on all three motors in exactly the same way.  In days of old, there would have been no rhyme nor reason to how they wired the motors.  Now they are consistent.

As of now, the only motor that is backward (i.e. pin one still goes to pin one) is the extruder motor.  Neither Pronterface nor RH would permit me to move the extruder motor with the extruder temp disabled.  So, it is the one motor I did not test.

More Hardware

Running my cheap but somewhat reliable Cen-Tech meter across the thermistor read a little over 36 ohms.  The longer I left the meter across the leads, the higher the reading climbed (well over 37 ohms).  Running the meter across the T0 leads yielded close to 5 volts (4.97, if I remember correctly).

According to comments in Configuation.h, as well as in the post that pointed me to disabling the thermistor, the thermistor is supposed to be 100K ohms.  Hm.  What if I got a plug like the one on the end of the thermistor, and wired up a 100K resistor to it?  I could plug this thing in, in place of the thermistor, and fake out Marlin into thinking a working thermistor is plugged in.  If this idea works, I should be able to move the extruder motor, and feel if the print head is getting hot.  If it passes both tests, I can shut down before the thing gets too hot.  This will confirm that the problem is with the thermistor, and not RAMPS or Marlin.

What follows is a diagram of what I am talking about.  Since one has to be a forum member to view pictures, and I believe many people (both members and non-members) will be looking to troubleshoot this problem, I will diagram this with "ASCII Art:"

RAMPS Thermistor Test Plug wiring diagram:

+----------+      100K
|  Plug    |____/\/\/\/\___
|   To     |               |
|   T0     |---------------+

Legaleese:  WARNING - Use of the above plug could cause your extruder to overheat, resulting in potential fire, destruction of property, or even injury or death.  Only use above plug sparingly, and only for testing the extruder motor/heating element in printhead.  DO NOT USE FOR 3D PRINTING.  You have been warned.

I might have a 100K resistor in my Arduino project pack.  The adventure will be finding a plug...

So, after several years of neglect (family growing three movings across houses and countries), I decided to give it a try, and assemble the whole QU-BD Two-Up. I am at a point where I can say that there is pretty much nothing else but make sure that all the components are correctly wired.

Do you have a closer picture of your board, cable colours and other cables in and out?

And another picture of your final extruder thermistor setting, please?

Thank you in advance.

QU-BD Up 2, Original Kickstarter with heated bed (heavy basalt stone), red PC Board
Prusa i3 V2
Snapmaker I, Original Kickstarter with 1600nm laser, Ziflex bed add-on
Snapmaker II A-350, Original Kickstarter (Pending)
Mayku Formbox, Original Kickstarter
Hi EdOliver7,

Welcome to the forum!

I don't know if mr_intensity has visited the forum lately (since one doesn't actually have to log in to visit). I can try to send him a PM, which actually worked in the past.

(2020-04-04, 10:04 AM)MisterAcoustic Wrote: Hi EdOliver7,

Welcome to the forum!

I don't know if mr_intensity has visited the forum lately (since one doesn't actually have to log in to visit). I can try to send him a PM, which actually worked in the past.


Thank you!

And while we're at it, I tried to upload several documents (Original One/Two-Up assembly manual, One/Two-Up parts for cutting/printing, and the original flash files for the Red board) but the site didn't allow me to. 
Is there any extra step(s) that I need to take?


QU-BD Up 2, Original Kickstarter with heated bed (heavy basalt stone), red PC Board
Prusa i3 V2
Snapmaker I, Original Kickstarter with 1600nm laser, Ziflex bed add-on
Snapmaker II A-350, Original Kickstarter (Pending)
Mayku Formbox, Original Kickstarter
Hi EdOliver7,

The problem with attaching files should be fixed now. At least, I was finally able to upload one on another thread.

Please try again, and let me know if you have any issues.


Forum Jump:

Users browsing this thread: 1 Guest(s)