3D Printing: The Stepper Conundrum

Posted by on October 29, 2013

Today’s conundrum from my 3D printer has vexed me for three days now.

So, an update since the last one.

Last time, I estimated I was at 60% complete with the build and needed to finish that, install the firmware, get the filament, and begin printing. Well… that was almost what I had to do.

I’ve completed the physical build, as much as I can but more on that later. I’ve installed the firmware and tested that it works with the software on my computer. I’ve even attempted to do a test print to start calibrating the settings. Oh, and I got the filament (after ordering the wrong type of plastic the first time).

Filament, just realized that some of you might not know what that is. Filament for 3D printers is basically thread made of plastic. Really thick thread, but it comes on a spool and is fed into the 3D printer like thread into a sewing machine. It comes in two main sizes 3 mm and 1.75 mm. I am using the 1.75 mm, since it has been found to work better than the 3 mm filament. which sometimes overwhelms the heater that melts the plastic.

So anyway, that’s where the problems started.

The trouble presented itself as an inability to push the plastic out to be printed. It comes out like frosting from a cake funnel, or like toothpaste from a tube, and is supposed to be layered up, one on top of the other, until you have a completed object.

At least that’s the idea.

You see, there’s a motor that pushes the filament into the extruder (that’s the toothpaste tube). The motor is a special kind, called a stepper motor. Named that because it can take individual steps of rotation, unlike most DC motors that just spin. Because it can do this, it can push just a little, or a lot, of plastic through the hot end of the extruder in measured amounts.

Mine however, was not doing that.

What it was doing was pushing a little of plastic out, but then reversing direction and pulling the filament back, then pushing it back in or pulling it out more, depending on fate and whimsy. It wasn’t so whimsical for me though. The melted plastic cools very fast, but ends up leaving little spiderweb threads of plastic as it comes out. I went through a fair amount of plastic in the last three days troubleshooting things.

Something said at work today, along with thinking about all of the settings are available finally led me to the solution.

I had tried everything I could think of over the last few days. Switching stepper motors, switching driver circuits, changing the amount of plastic to be extruded. All of those things done one at a time to see the result of the change, and making note of how it improved or made worse the problem. At work yesterday though, one of my co-workers was wrestling with an issue and it was suggested that while he was going through the same process as I was with the 3D printer (it’s a common troubleshooting process for code), that perhaps he had more than just one problem to fix.

This was no surprise to me, having just come off another project where I was tracking down a bug that led to several other bugs being uncovered and needing fixing before I could fix what the client actually wanted fixed. It wasn’t until I got home and looked through the firmware that I realized there was a setting I missed.

Going through the calculations, I realized that the stepping code wasn’t set correctly for my printer. I adjusted that, but still had a problem. It was a bit better, but still would reverse seemingly at random. I switched stepper drivers again, and voila! a working stepper motor.

So long story short, I have a solution for my problem, and as soon as the new stepper driver arrives, I will have a working printer.

I’m keeping the bad driver board for now, to learn from and see if I can eventually fix it. Right now though, with the deck, the secret project, the 3D printer, NaNoWriMo, and HoNoToGroABeMo coming up, I have enough on my plate to last through November!

If any of you have any questions or suggestions about 3D printing, or stepper motors and their drivers specifically, feel free to drop me a line in the comments.