Taz 5 + BLTouch [Project]

Want to use the Open Source Hardware documentation to make your LulzBot 3D Printer do even more? Start here!
Post Reply
Menissalt
Posts: 81
Joined: Sun Dec 06, 2015 10:47 am

Taz 5 + BLTouch [Project]

Post by Menissalt » Fri Sep 29, 2017 12:44 pm


Currently a WIP



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


Required Materials:


Instructions:
  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
    1. Loosen both lower screws on each z-axis coupling, mine were glued in and I had to replace both couplings
    2. Remove 4 screws on each motor, remove motors
    3. Position both motors, be careful to not set the rim of the coupling on the arm of the motor
    4. Hand tighten all 4 screws attaching each motor to the frame
    5. Rotate the motor arms so that one set screw on each coupling tightens over the flat side of the arm
    6. Tighten the screws attaching the motors to the frame
    7. Tighten both set screws in the coupling, again make sure one screw on each coupling is over the flat side of the motor arm
  16. Flash provided firmware using arduino-1.8.3 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.3 folder to your Arduino install directory,
    overwriting any duplicate files
  17. Test BLTouch
    1. Turn on printer, it should extend and retract a couple times and have solid red and blue lights
    2. Set Z very high, at least 150 mm above the bed
    3. Read the next step FULLY before starting or risk destroying everything
    4. 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:
    1. Under construction...
    2. 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
    3. Change Z acceleration from 2 to 8
      Only change this if you upgrade the Z-axis motors
    Start gcode, tested on Simplify3D:

    Code: Select all

    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

    Code: Select all

    {REPLACE "; layer" "M117 Layer"} 
    {REPLACE " Z = " " Z="}
    
    Wiring:
    RAMBo13.jpg

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


    --------------------------------------------------------------------------------

    Firmware Source:
    https://code.alephobjects.com/diffusion ... ory/devel/

    Configuration Resource:
    http://blog.mon.im/2016/06/tevo-tarantu ... setup.html

    Calibration Source:
    https://www.youtube.com/watch?v=FJ5BFJaKIms

    --------------------------------------------------------------------------------


    Special thanks to:
    marcio - upgraded firmware used in this project
    kmanley57 - 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
Last edited by Menissalt on Mon Jul 09, 2018 1:09 pm, edited 26 times in total.

Menissalt
Posts: 81
Joined: Sun Dec 06, 2015 10:47 am

Re: Taz 5 + BLTouch [Project]

Post by Menissalt » Fri Sep 29, 2017 1:33 pm

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.

:UPDATE:
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.

Code: Select all

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

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

  // Set the boundaries for probing (where the probe can reach).
  #define LEFT_PROBE_BED_POSITION 20 LULZBOT_LEFT_PROBE_BED_POSITION 20
  #define RIGHT_PROBE_BED_POSITION 260 LULZBOT_RIGHT_PROBE_BED_POSITION 20
  #define FRONT_PROBE_BED_POSITION 260 LULZBOT_FRONT_PROBE_BED_POSITION 260
  #define BACK_PROBE_BED_POSITION 20 LULZBOT_BACK_PROBE_BED_POSITION 260

marcio
Aleph Objects | LulzBot
Posts: 47
Joined: Tue Jul 18, 2017 12:44 pm

Re: Taz 5 + BLTouch [Project]

Post by marcio » Fri Sep 29, 2017 3:27 pm

Menissalt wrote:
Fri Sep 29, 2017 1:33 pm
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.

:UPDATE:
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.

Code: Select all

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

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

  // Set the boundaries for probing (where the probe can reach).
  #define LEFT_PROBE_BED_POSITION 20 LULZBOT_LEFT_PROBE_BED_POSITION 20
  #define RIGHT_PROBE_BED_POSITION 260 LULZBOT_RIGHT_PROBE_BED_POSITION 20
  #define FRONT_PROBE_BED_POSITION 260 LULZBOT_FRONT_PROBE_BED_POSITION 260
  #define BACK_PROBE_BED_POSITION 20 LULZBOT_BACK_PROBE_BED_POSITION 260
No, try this instead:

Code: Select all

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

  // 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).
  #define LEFT_PROBE_BED_POSITION 20
  #define RIGHT_PROBE_BED_POSITION 260
  #define FRONT_PROBE_BED_POSITION 260
  #define BACK_PROBE_BED_POSITION 20
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.

Menissalt
Posts: 81
Joined: Sun Dec 06, 2015 10:47 am

Re: Taz 5 + BLTouch [Project]

Post by Menissalt » Fri Sep 29, 2017 3:47 pm

marcio wrote:
Fri Sep 29, 2017 3:27 pm
No, try this instead:

Code: Select all

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

  // 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).
  #define LEFT_PROBE_BED_POSITION 20
  #define RIGHT_PROBE_BED_POSITION 260
  #define FRONT_PROBE_BED_POSITION 260
  #define BACK_PROBE_BED_POSITION 20
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.
I found this out while trying to compile, though Front has to be less than Back so it goes:

Code: Select all

  // Set the boundaries for probing (where the probe can reach).
  #define LEFT_PROBE_BED_POSITION 20
  #define RIGHT_PROBE_BED_POSITION 260
  #define FRONT_PROBE_BED_POSITION 20
  #define BACK_PROBE_BED_POSITION 260
I also had to comment out this to get it to compile:

Code: Select all

 //     MENU_ITEM(submenu, MSG_BED_LEVELING, lcd_bed_leveling);
 #else
#if PLANNER_LEVELING
MENU_ITEM(gcode, MSG_BED_LEVELING, PSTR(LULZBOT_MENU_BED_LEVELING_GCODE));
#endif
#if ENABLED(LEVEL_BED_CORNERS)
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
MENU_ITEM(function, MSG_LEVEL_CORNERS, _lcd_level_bed_corners);
#endif
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.

marcio
Aleph Objects | LulzBot
Posts: 47
Joined: Tue Jul 18, 2017 12:44 pm

Re: Taz 5 + BLTouch [Project]

Post by marcio » Fri Sep 29, 2017 3:50 pm

Menissalt wrote:
Fri Sep 29, 2017 3:47 pm
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! :)

marcio
Aleph Objects | LulzBot
Posts: 47
Joined: Tue Jul 18, 2017 12:44 pm

Re: Taz 5 + BLTouch [Project]

Post by marcio » Fri Sep 29, 2017 3:58 pm

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":

Code: Select all

#if defined(LULZBOT_Oliveoil_TAZ6)
    #define LULZBOT_CUSTOM_MACHINE_NAME "LulzBot TAZ 6"
    #define LULZBOT_LCD_MACHINE_NAME "TAZ 6"
    #define LULZBOT_IS_TAZ
    #define LULZBOT_TAZ_BED
    #define LULZBOT_USE_LCD_DISPLAY
    #define LULZBOT_USE_AUTOLEVELING
    #define LULZBOT_USE_MAX_ENDSTOPS
    //#define LULZBOT_USE_HOME_BUTTON
    #define LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS
    #define LULZBOT_BAUDRATE 250000
    #define LULZBOT_UUID "845f003c-aebd-4e53-a6b9-7d0984fde609"
#endif

Menissalt
Posts: 81
Joined: Sun Dec 06, 2015 10:47 am

Re: Taz 5 + BLTouch [Project]

Post by Menissalt » Fri Sep 29, 2017 9:52 pm

marcio wrote:
Fri Sep 29, 2017 3:58 pm
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":

Code: Select all

#if defined(LULZBOT_Oliveoil_TAZ6)
    #define LULZBOT_CUSTOM_MACHINE_NAME "LulzBot TAZ 6"
    #define LULZBOT_LCD_MACHINE_NAME "TAZ 6"
    #define LULZBOT_IS_TAZ
    #define LULZBOT_TAZ_BED
    #define LULZBOT_USE_LCD_DISPLAY
    #define LULZBOT_USE_AUTOLEVELING
    #define LULZBOT_USE_MAX_ENDSTOPS
    //#define LULZBOT_USE_HOME_BUTTON
    #define LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS
    #define LULZBOT_BAUDRATE 250000
    #define LULZBOT_UUID "845f003c-aebd-4e53-a6b9-7d0984fde609"
#endif
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.

Menissalt
Posts: 81
Joined: Sun Dec 06, 2015 10:47 am

Re: Taz 5 + BLTouch [Project]

Post by Menissalt » Sun Oct 01, 2017 2:28 am

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.

kmanley57
Posts: 1091
Joined: Sun Feb 01, 2015 3:53 pm

Re: Taz 5 + BLTouch [Project]

Post by kmanley57 » Sun Oct 01, 2017 12:29 pm

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.
I will express my CRAZY ideas at any time! So you have been warned. None of my opinions are Lulzbots and can be wrong at any second.

Menissalt
Posts: 81
Joined: Sun Dec 06, 2015 10:47 am

Re: Taz 5 + BLTouch [Project]

Post by Menissalt » Mon Oct 02, 2017 12:37 pm

kmanley57 wrote:
Sun Oct 01, 2017 12:29 pm
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.

Post Reply