Ken Verses the PrintrBot Z-Stop

TLDR:
  • PrintrBot Simple Metal printers experience  a lot of Z-stop circuitry failures, which can be easily diagnosed and repaired.
  • This only applies to Rev F PrintrBoards which had an inferior transistor. This can cause either the probe to fail, or the transistor to fail, either of which result in the printhead only moving upward when homing.
  • DO NOT reflash your firmware unless you have made hardware changes to board, as it likely came with the correct firmware on it already, and is only behaving in the best interest of your printhead when it doesn't get the correct signals! 
My PrintrBot Simple Metal in Action.

The first big decision when jumping in to 3D printing is choosing the printer.  I decided on PrinterBot Simple Metal based on Make Magizine's review and the fact is was an Open Source / Open Hardware project. The second decision was whether to buy one assembled, or build it from a kit. I went with a kit because I wanted to learn a little about what was going on under the hood and hopefully be able to repair or modify it if needed. Of course, if you really want to dig deep, you can build one from scratch, but I am not that glutton for punishment.

The first big obstacle I had to overcome was the fact that when I tried to print something, the printhead (extruder) would only move up, and not down. As beginners, we always have to struggle with simple concepts that experts seem to take for granted.  This is even more a problem when we haven't seen it working correctly in the first place and so have no experience if what you are seeing it normal or not. I had to struggle with this for a bit before coming to an understanding that the Z-stop probe circuity was not working, and that the printer firmware, in an effort to protect the extruder, would not move down without the right signal.

Googling this problem indicates that it is happening to a lot of people, and that I am not the only one struggling to figure out why. Lets take a look at the circuitry, since understanding that will go a long way toward troubleshooting the problem.

The first concept to understand is that the Z probe inductively detects the build plate, and will emit a 12 volt signal when it is within about 4 mm of ferrous metal. This, combined with the Z offset you determined during your initial calibration, tells the printer where the extruder is in the Z-axis (up and down), and also, by probing three different spots during start up, how to compensate for the level of your bed plate. This is really an awesome feature, and well worth the trouble is has provide me so far.

The second concept that is tricky is that the Printrboard uses the 12 volt signal from the probe control a 5 volt signal by applying the voltage to the base of a transistor. I am more used to using a 5 volt signal being used to control a higher voltage through a transistor, and not the other way around, but hey, it works as long as they have a common ground.

And, if this did not hurt you head thinking about it, there is one more twist. The microcontroller (MCU) is providing the 5 volt signal to the collector of the transistor using an internal pull-up resistors, so that when the probe turns the transistor on, it allows a path to for the 5 volt signal to ground, which the MCU detects as a Z-stop trigger. A bit convoluted and confusing, especially to a beginner.

OK, now that we have a rudimentary understanding of how things should work, lets think about how they can go wrong. If a probe fails, and provide 12 volts at all time, the 5 volt signal drops to ground, causing the MCU to think a Z-stop is triggered regardless of proximity to the build plate, and will only move the probe upward. This is what was happening when I first built my kit, and it is fairly easy to diagnose. If you issue a M119 gcode instruction, it will report "TRIGGERED" when the Z-probe is connected (regardless of proximity to metal), and "OPEN" when the probe is disconnected because the transistor turns off. Printrbot sent me a new probe, and my 3D printing journey was quickly back on track. Seeing how many other folks had experienced the same problem, I bought a backup probe.

Imagine my consternation when the "always moving up" issue surfaced again several months latter right before I was to give a 3D printing seminar at OSU's Beaver Bar Camp! Double that when connecting the new probe failed to solve the issue! Back to the drawing board of understanding. The M119 command would again showed "TRIGGERED" with the probe connected, but also "TRIGGERED" with the probe disconnected. A multi-meter check of the transistor showed that the probe was indeed sending the correct 12 volt signal when metal was present, but that the collector pad, which should have shown 5 volts without the probes signal present, showed 0 volts regardless, indicating the transistor must have failed and grounded out.

Replacing a surface mount transistor is probably not in most beginner's skill bucket, and PrintrBot offered to send me a new board despite my being outside of the one month warranty period for kits. I assume they are sending boards repaired with a better (biased) transistor, and that lots of people have had this issue since the original transistor was unbiased (like I know what that really means). I do know how to read schematics and BOMs (bill of materials), so I ordered the correct transistor for 14 cents (plus about three dollars shipping). I also know from past experience, that surface mount soldering is more art than rocket science, and after snipping away the old transistor and cleaning up the pads, quickly had the new one in place and the printer running again. I also took the time to print an enclosure and relocate the PrintrBoard to the side of the printer since I did not like always having to reach under the build plate to connect the power and USB cables and reach the SD card.

Ain't pretty, but it works!
New Print Enclosure.

So, here are my lessons learned:
  • There is pride in building something, even from a kit.
  • There is pride in fixing something, even when you had to have others help.
  • PrintrBot Simple Metals are still awesome printers, despite having some flaws.
  • PrintrBot as a company is awesome for how it is handling the problems.
  • Open Source / Open Hardware is awesome because even if you don't built it from scratch, you can certainly determine how it should work and diagnose why it isn't.

I also, with some tips from PrintrBot, learned how to print without the functioning probe, and although I scratched my bed several times attempting it, it never hurts to have a backup plan when the workshop is about to start:
  • Shim your build plate so that it is reasonably level. You can do this by finding which corners are the  highest by manually lowing the z-axis and using a piece of paper as a feeler gauge. Shim the low corners using paper or aluminum.
  • Modify your "start" gcode to remove the "G28 X0 Y0 Z0" homing commands, and change the "G29" probing command to the "G90" start from here command.
  • Check your current Z offset using "M501" and write it down for future use if you don't move or replace the Z-probe during repairs (you have to re-calibrate if you do).
  • Remove your Z offset using "M212 Z0" followed by "M500" (the opposite of what you did to calibrate it).
  • Use the software manual control to home X and Y.
  • Use a piece of paper as a shim and rotate the lead screw manually to place the extruder one paper width above the build plate. I do this with the extruder at working temperature.
  • Start your print, being prepared to pull the plug if it the extruder starts to grind into the built plate.





No comments:

Post a Comment