Taz 5 + BLTouch [Project]

DISCLAIMER: I am not responsible for the proper or improper use of these instructions, the information provided is not guaranteed to work and may cause damage and/or for your machine to work in unintended ways.

So far I still need to:
Add Z Calibration instructions (I might not ever get around to this it seems. If anyone wants to do a nice write up I could add it here :exclamation: )

Required Materials:


  1. Print and/or obtain all items from the Required Materials, listed above
  2. Using the parts included with the BLTouch, use the cable extension to create an extension that is 2.5 ft
    I made mine 1.5 feet and it wasn’t long enough to run along the frame
  3. Use the soldering iron to install the heat set inserts in the printed part, 2 per fan and 5 on the mount
  4. Disassemble the extruder assembly, make sure to not lose the screws, washers, nuts, etc, use tape or holder
  5. Using the dental pick remove both fan cable from the housing, don’t forget where these are plugged in
  6. Splice both 24v fans so that they run in parralel, the left fan cable should for a t connection to the right fan, crimp on terminal pins to the end of the wires
  7. Crimp on terminal ends to the 5v fan
  8. Connect the 4 wires from the 2 previous steps to the their respective locations from step 5
  9. Assemble the mount, starting with the extruder, do not move to the next step until assembly is 100% complete
  10. Using no screws, fit the hexagon extruder, extruder_taller piece, and mount together
  11. Feed the screw through the top of extruder_taller spacer, spacer, and mount then slide in to the X axis guide, tighten the screw to secure the assembly
  12. Finish assembly as normal
  13. Using the provided bolt and nut, secure the BLTouch
  14. Feed/secure the cable as you see fit making sure it’s not too tight at the farthest reaches of your printer and that it won’t get caught by any moving components
  15. Install upgraded motors on z-axis, I chose the ones used on the Taz 6
    ::Note:: Using stock motors are both slow and resulted in bad prints with auto leveling enabled
  16. Loosen both lower screws on each z-axis coupling, mine were glued in and I had to replace both couplings
  17. Remove 4 screws on each motor, remove motors
  18. Position both motors, be careful to not set the rim of the coupling on the arm of the motor
  19. Hand tighten all 4 screws attaching each motor to the frame
  20. Rotate the motor arms so that one set screw on each coupling tightens over the flat side of the arm
  21. Tighten the screws attaching the motors to the frame
  22. Tighten both set screws in the coupling, again make sure one screw on each coupling is over the flat side of the motor arm
  23. Flash provided firmware using arduino-1.9.0 IDE, Tools > Board > “Arduino/Genuino Mega or Mega 2560”
    You’ll need to move the “hardware” & “libraries” folder from the extracted pathTO\BLTouch-Taz-5-master\ArduinoAddons\arduino-1.8.5 folder to your Arduino install directory, overwriting any duplicate files. Then update the u8glib library in Arduino
  24. I’ve switched to using 36 points for bed leveling and no longer run this before each print, only as needed
  25. If you would like to use the other method change this
  #define GRID_MAX_POINTS_X 6
  #define GRID_MAX_POINTS_Y 6

to this

  #define GRID_MAX_POINTS_X 3
  #define GRID_MAX_POINTS_Y 3
  1. Run “M420 Z#” where # is the height at which you want auto leveling to no longer run. This setting fades out leveling so it doesn’t run the entire print.
  2. Test BLTouch
  3. Turn on printer, it should extend and retract a couple times and have solid red and blue lights
  4. Set Z very high, at least 150 mm above the bed
  5. Read the next step FULLY before starting or risk destroying everything
  6. Home the bed and manually trigger the BLTouch by pushing up the probe, if it doesn’t stop turn off the printer immediately and troubleshoot the issue, repeat this step until it works
    Calibrate Offest:
  7. Under construction…
  8. Tighten the hex screw on the top of the BLTouch, this will cause it to engage farther from the bed and can be adjusted later at your own risk
  9. Change Z acceleration from 2 to 8
    Only change this if you upgrade the Z-axis motors
    Start gcode, tested on Simplify3D (Needs to be updated, no longer using this in new firmware):
M104 S150; Set extruder to 150 and do not wait - preheat
M190 S[bed1_temperature] ; Set bed temp and wait to be reached
G91 ; switch to relative positioning
G1 Z6 ; safe raise of z axis to ensure probe doesn't hit bed clamp
G90 ; switch back to absolute positioning
G28 ; home all axes
G29 ; Auto Level
M104 S[extruder0_temperature]; Set extruder and do not wait
G1 X280 Y5 Z2 F5000 ; move to wait position in right corner
M109 S[extruder0_temperature] ; Set extruder and wait
; print anchor, optional. uncomment lines to use
;M106 ; turn fan on
;G1 Z0.4 ; position nozzle
;G91 ; switch to relative positioning
;G1 E25 F250 ; purge nozzle
;M400 ; wait for purge to complete
;G90 ; switch back to absolute positioning
;G1 X100 F3000 ; quick wipe
M106 S0 ; turn fan off
G1 Z0.5 F1200 ; lift
M900 K0

Optional S3D post processing gcode to enable the M73-Progress-Plugin for Octoprint

{REPLACE "; layer" "M117 Layer"} 
{REPLACE " Z = " " Z="}

Found this picture, link https://plus.google.com/113792662927481823969/posts/RtWww5rCV3F, but Marlin uses a different pin by default now, this poor paint edit reflects that.

Firmware Source:

Configuration Resource:

Calibration Source:

Special thanks to:
marcio - upgraded firmware used in this project
kmanley57 - https://forum.lulzbot.com/viewtopic.php?f=16&t=6809#p37839
nuroo - for the S3D post processing code
it-works-tech - pointed out error in start gcode
Makertree 3d - Store in Richardson, TX that printed out some parts needed while my printer was down

Bed Leveling Marlin Progress:

So far I’ve uncommented “#define AUTO_BED_LEVELING_BILINEAR” but don’t know how to use the options to define the grid, all of Marlin’s documentation and other resources I’ve found are based on an older implementation that doesn’t exist in the newest version of Marlin.

This is it? I’ll need to wait until the BLTouch is installed to see if this works. Can’t find anything on “GRID_MAX_POINTS” so these and “x_PROBE_BED_POSITION” values are guesses.


  // Set the number of grid points per dimension.

  // Set the boundaries for probing (where the probe can reach).

No, try this instead:


  // Set the number of grid points per dimension.
  #define GRID_MAX_POINTS_X 3
  #define GRID_MAX_POINTS_Y 3

  // Set the boundaries for probing (where the probe can reach).

What happens is that the “LULZBOT_{NAME}” variables are defined in “Conditionals_LulzBot.h” based on the types of printers you are defining. These variables are then used in “Configuration.h” and “Configuration_adv.h”. You can either change the variables in “Conditionals_LulzBot.h”, in which case you change the “LULZBOT_{NAME}” variables, or if you wish, you can replace them in “Configuration.h” and “Configuration_adv.h” with the values you want instead.

1 Like

I found this out while trying to compile, though Front has to be less than Back so it goes:

  // Set the boundaries for probing (where the probe can reach).

I also had to comment out this to get it to compile:

 //     MENU_ITEM(submenu, MSG_BED_LEVELING, lcd_bed_leveling);
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
MENU_ITEM(function, MSG_LEVEL_CORNERS, _lcd_level_bed_corners);

It compiled correctly and and I have the BLTouch activated in the firmware. Now all that’s left is to print the mount, install everything, and test.

Glad to hear! Good luck! :slight_smile:

Just a heads up, we ground the Z_MIN pin for EMI reasons and only activate it during G28. I’m not sure if this will affect your setup, but it might if you are expecting Z_MIN to behave as in default Marlin, if you want to prevent that stuff from messing with your configuration, you may want to disable LULZBOT_USE_HOME_BUTTON in “Conditionals_LulzBot.h”:

#if defined(LULZBOT_Oliveoil_TAZ6)
    #define LULZBOT_IS_TAZ
    #define LULZBOT_TAZ_BED
    #define LULZBOT_BAUDRATE 250000
    #define LULZBOT_UUID "845f003c-aebd-4e53-a6b9-7d0984fde609"

This isn’t enabled for the Taz 5, which is my machine, so this doesn’t affect me. For those wanting to use this on their Taz 6 this is good information.

Project is on temporary/permanent hold. It looks like my left z axis stepper motor might have died. I would remove the motors to test and/or replace them but whatever Lulzbot did when they assembled my printer is preventing me from loosening the set screws on the flexible shaft couplings. I don’t think I can fix my printer in this condition and things are looking pretty bleak.

If I remember right it is Loctite so you can try heating it up some and it might soften enough to get them to turn. AKA: a hot soldering iron tip in the hole of the set screw.

If this is true, this sucks. I was able to get my hex driver in there and it seemed like it had grip but it slipped like they are stripped. I’ve got an email in to support so I’ll wait to hear from them before trying this. Thanks for the info.

I managed to get the Helical Flexible Shaft Couplings off the right lead screw, but not the motor. On the left side I managed to get the coupling off the motor, but not the lead screw. I’m going to try to bore out the stripped set screw to save the lead screw. I’ve got new couplings arriving Friday, motors arriving Thursday, and I’ll need to pick up some molex parts locally. I should be able to start on this project again newt week.

They are VERY hard screws! You may break a bit or two drilling them. I have! :blush:

Thanks for letting me know. I tried two different heads to bore it out and then a drill bit, but gave up early thanks to your warning. I ended up removing as much of the body as I could and then just carefully took a cutting wheel to it until I got enough gone that it just came off.

Just sent this to support but I’ll use it to update my progress so far:

My stepper motors came in and I’m still experiencing the issue. After quite a lot of further troubleshooting I’ve discovered that when both motors are plugged in they don’t work but when either one is disconnected the other works fine. I unplug left, right is fine; plug left in and unplug right, left is fine; swapping the motors yields the same. I’m wondering if this might be a power issue or a failing component on the Rambo board?

Sounds like the drive current that the RAMBo should be supplying is wrong.

Support suggested that I replace the board. Fortunately as I looked for places to purchase it from I found a 3D printing shop in DFW so I can get it today for $60 less with no shipping

Project and repair update

Repairs complete! Now that it’s working I’ve printed out my mount and it puts the BLTouch too low. I’ve updated the design to accommodate this, it’s a bit odd looking but I want it to be one, solid piece rather than an addon. More to come tomorrow I hope!

It works!!! I got the firmware right with the first install, ran tests and they worked :smiley:

I will work on updating the OP with full instructions when I can.

Instructions are almost done! Everything up to the Z offset is done, firmware has been uploaded and I believe the “Required Materials” is also done.

I use a PAD-11 to crimp connector pins but I have done lots of pins with it.