Sgail7 / Replicator-Revival-Project

Giving life back to the Makerbot Replicator 1, 1 Dual, 2, and 2X 3D Printers.
GNU General Public License v3.0
10 stars 1 forks source link

BLTouch Guide - Replicator 2 #1

Closed robke96 closed 9 months ago

robke96 commented 9 months ago

Hi, I want to provide some info how I made BLTouch (clone) work on Replicator 2 REV H.

! Soldering is required!

So BLTouch use 5 wires:

  1. GND
    1. +5V
  2. Signal In
  3. GND
  4. Signal Out

I have Mightyboard REV H. And all Mightyboards after rev E are closed source. So no schematics.

IMG_20240122_093141-min

#

I used J26 Endstops_2 place and I had to solder 3 pins.

# IMG_20240122_093357_1 endstops_2

#

Only 2 GND wires left

#

IMG_20240122_093430 gnd

Configuration

Klipper has nice documentation about BLTouch Klipper - BLTouch

printer.cfg

[bltouch]
sensor_pin: PJ0 # 63 pin
control_pin: PJ1 # 64 pin
x_offset: -50.00 # configure by yourself
y_offset: 0.0 # configure by yourself
#z_offset: 0
pin_move_time: 0.4
speed: 20

# Edit stepper_z endstop_pin
[stepper_z]
endstop_pin: probe:z_virtual_endstop

Calibrate BLTouch

I followed this youtube guide BL Touch complete setup for Klipper!

Thank you.

I hope there is something you can add up to this documentation.

Sgail7 commented 9 months ago

Thank you, this can definitely be added to the documentation! Thank you for giving such a detailed write up as well, this will make it much easier for me to merge. Would you happen to know which bl touch clone you used? Also, do you have a link or file for the mount that you used? I could add that to the 3d printed files section to be sure it's never taken down even if the original page goes offline.

I can't guarantee when it'll be merged since university keeps me busy, but I'll do my best to get it in as soon as possible.

Also, if you plan on doing further modifications, I have an page on the Mightyboard that has full pinouts, datasheets for components, and diagrams. I hope it can make it a bit easier with that!

https://github.com/Sgail7/Mightyboard-Rev-G-and-H

robke96 commented 9 months ago

I used 3D Touch chinese clone from AliExpress. For mount I used this model - BLTouch Replicator 2 Mount, but I used more nuts and longer screws, because bltouch was to low for me. IMG_20240123_120355

Sgail7 commented 9 months ago

Great! Thank you very much. One last thing, if you're still using the stock replicator 2 bed, could you post your [bed_mesh] config section? I'm going to add this information to a larger update to the Hardware section, and would like to include pre-configured [bed_mesh] settings for the Rep 2 and 2X.

robke96 commented 9 months ago
[bed_mesh]
speed: 80
horizontal_move_z: 5
mesh_min: 20, 0       #!!min and max co-ords are based on the probes location not the nozzle!!
mesh_max: 250, 150  #needs to be calibrated for your individual printer
probe_count: 6,6 #this is the number of probing points on X then Y axis
mesh_pps: 2,2
fade_start: 1
fade_end: 10
fade_target: 0

It's not perfect but does the job. Everything I did was in this guide I mentioned before BLTouch complete setup

Full printer.cfg file if needed

```cfg [virtual_sdcard] path: /home/robke/printer_data/gcodes on_error_gcode: CANCEL_PRINT # This file contains common pin mappings for the Makerbot # Mightyboard. To use this config, the firmware should be compiled for # the Atmel atmega1280, 16mhz, uart0 # See docs/Config_Reference.md for a description of parameters. ########################################### #Fluidd Config [include fluidd.cfg] #Storage Place for Extra Macros [include Beeper_Commands.cfg] [include Important_Gcode_Functionality_Macros.cfg] [include LED_Macros.cfg] [include ManoMacro.cfg] #[include Nevermore_Filter.cfg] #[include Temps.cfg] ########################################### [stepper_x] step_pin: PD6 dir_pin: !PD7 enable_pin: !PD4 microsteps: 16 rotation_distance: 36 endstop_pin: ^!PC7 position_endstop: 300 position_min: 0 position_max: 300 homing_speed: 50 [stepper_y] step_pin: PL5 dir_pin: !PL7 enable_pin: !PL4 microsteps: 16 rotation_distance: 36 endstop_pin: ^!PC6 position_endstop: 150 position_min: 0 position_max: 150 homing_speed: 50 [stepper_z] step_pin: PL1 dir_pin: !PL2 enable_pin: !PL0 microsteps: 16 rotation_distance: 8 #endstop_pin: !PC5 endstop_pin: probe:z_virtual_endstop #position_endstop: 0 position_max: 165 position_min: -6.0 [bltouch] sensor_pin: PJ0 control_pin: PJ1 x_offset: -50.00 y_offset: 0.0 #z_offset: 0 pin_move_time: 0.4 speed: 20 [safe_z_home] home_xy_position: 139, 73 # Change coordinates to the center of your print bed speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 [bed_mesh] speed: 80 horizontal_move_z: 5 mesh_min: 20, 0 #!!min and max co-ords are based on the probes location not the nozzle!! mesh_max: 250, 150 #needs to be calibrated for your individual printer probe_count: 6,6 #this is the number of probing points on X then Y axis mesh_pps: 2,2 fade_start: 1 fade_end: 10 fade_target: 0 [ads1118] sensor_pin: PE6 spi_software_miso_pin: PE7 spi_software_sclk_pin: PE2 spi_software_mosi_pin: PH2 [extruder] step_pin: PA3 dir_pin: !PA2 enable_pin: !PA5 microsteps: 16 rotation_distance: 33.0168 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PE5 sensor_type: ads1118_typek sensor_pin: ads1118:pin_0 min_temp: 0 max_temp: 260 control: pid pid_kp: 27.746 pid_ki: 1.666 pid_kd: 115.493 [bed_screws] screw1: 150, 141 screw2: 101, 3 screw3: 197, 3 [heater_fan extruder_fan] pin: PH4 heater: extruder [fan] pin: PG5 # [heater_bed] # heater_pin: PH5 # sensor_type: Generic 3950 # sensor_pin: PF3 # control: pid # pid_Kp: 70.037 # pid_Ki: 1.710 # pid_Kd: 717.000 # min_temp: -250 # max_temp: 250 [mcu] serial: /dev/serial/by-id/usb-MakerBot_Industries_The_Replicator_7523733353635101D102-if00 restart_method: mightyboard baud: 250000 [printer] kinematics: cartesian max_velocity: 300 max_accel: 3000 max_z_velocity: 5 max_z_accel: 100 # Makerbot firmware sets x, y, a and b to 118 and z to 40 via eeprom defaults. Their software # sets x, y, a and b to 20 while preheating and then to 127 for printing (via G130). This # apparently was done to reduce power when preheating and may be a concern for Replicator2X # with heated bed and dual extruders? This needs to be set in the print start macro to support # Replicator2X printers with stock power supplies. [mcp4018 x_axis_pot] scl_pin: PA6 sda_pin: PD5 wiper: 1.0 scale: 1.0 [mcp4018 y_axis_pot] scl_pin: PA6 sda_pin: PL6 wiper: 1.0 scale: 1.0 [mcp4018 z_axis_pot] scl_pin: PA6 sda_pin: PL3 wiper: 0.315 scale: 1.0 [mcp4018 a_axis_pot] scl_pin: PA6 sda_pin: PA4 wiper: 1.0 scale: 1.0 [mcp4018 b_axis_pot] scl_pin: PA6 sda_pin: PJ7 wiper: 1.0 scale: 1.0 [display] lcd_type: hd44780_spi spi_software_mosi_pin: PC0 spi_software_sclk_pin: PC1 #miso not used, dummy pin spi_software_miso_pin: PC4 latch_pin: PC3 click_pin: PG2 back_pin: PJ6,PJ3 up_pin: PJ5 down_pin: PJ4 [output_pin lcd_power] #has to be low for Rep2 low=5v, high=3.3v? pin: PA7 static_value: 0 [output_pin lcd_led1] pin: PC2 static_value: 1 [pca9632 led] color_order: BGRW initial_BLUE: 1.0 initial_GREEN: 0.0 initial_RED: 0.0 [output_pin BEEPER_pin] pin: PH3 pwm: True value: 0 shutdown_value: 0 cycle_time: 0.001 scale: 1000 [gcode_macro M300] gcode: {% set S = params.S|default(1000)|int %} {% set P = params.P|default(100)|int %} SET_PIN PIN=BEEPER_pin VALUE=0.5 CYCLE_TIME={ 1.0/S if S > 0 else 1 } G4 P{P} SET_PIN PIN=BEEPER_pin VALUE=0 [gcode_macro START_PRINT] gcode: {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} # Use absolute coordinates G90 # Reset the G-Code Z offset (adjust Z offset if needed) SET_GCODE_OFFSET Z=-0.01 # Home the printer G28 # Move the nozzle near the bed G1 Z5 F3000 # Move the nozzle very close to the bed G1 Z0.15 F300 # Set and wait for nozzle to reach temperature M109 S{EXTRUDER_TEMP} [gcode_macro clean_nozzle] gcode: G0 Z5 G0 X220 X4 F5000 G0 X220 Y4 Z0.3 G92 E10 G0 X10 Y4 E25 F1500; Adjust the extrusion amount (E) and feed rate (F) as needed [gcode_macro END_PRINT] gcode: # Turn off extruder, and fan M104 S0 M106 S0 # Move nozzle away from print while retracting G91 G1 X-2 Y-2 E-3 F300 # Raise nozzle by 10mm G1 Z10 F3000 G90 # Disable steppers M84 ###################################################################### # G130: Set digital potentiometer value ###################################################################### # The macro below uses the MCP4018 SET_DIGIPOT command to implement # a `G130` as used on classic Mightyboard-based printers such as # The Makerbot Replicator 2/2X. # # The `G130` command can be used to lower the stepper current # during preheating and raise the current again prior to starting # the print. This is necessary for printers with smaller power # supplies that needed all the power to heat the bed. # # This macro requires one or more [mcp4018] configuration sections: # (x_axis_pot, y_axis_pot, z_axis_pot, a_axis_pot, b_axis_pot) # # Example: G130 X20 Y20 Z20 A20 B20 ; Lower stepper Vrefs while heating [gcode_macro G130] gcode: M400 {% if ('X' in params) and ('mcp4018 x_axis_pot' in printer.configfile.config) %} {% set x_value = params['X']|float %} {% set x_axis_pot_scale = printer.configfile.config["mcp4018 x_axis_pot"].scale|float %} SET_DIGIPOT DIGIPOT=x_axis_pot WIPER={ x_axis_pot_scale * (x_value / 127.0)} {% endif %} {% if ('Y' in params) and ('mcp4018 y_axis_pot' in printer.configfile.config) %} {% set y_value = params['Y']|float %} {% set y_axis_pot_scale = printer.configfile.config["mcp4018 y_axis_pot"].scale|float %} SET_DIGIPOT DIGIPOT=y_axis_pot WIPER={ y_axis_pot_scale * (y_value / 127.0)} {% endif %} {% if ('Z' in params) and ('mcp4018 z_axis_pot' in printer.configfile.config) %} {% set z_value = params['Z']|float %} {% set z_axis_pot_scale = printer.configfile.config["mcp4018 z_axis_pot"].scale|float %} SET_DIGIPOT DIGIPOT=z_axis_pot WIPER={ z_axis_pot_scale * (z_value / 127.0)} {% endif %} {% if ('A' in params) and ('mcp4018 a_axis_pot' in printer.configfile.config) %} {% set a_value = params['A']|float %} {% set a_axis_pot_scale = printer.configfile.config["mcp4018 a_axis_pot"].scale|float %} SET_DIGIPOT DIGIPOT=a_axis_pot WIPER={ a_axis_pot_scale * (a_value / 127.0)} {% endif %} {% if ('B' in params) and ('mcp4018 b_axis_pot' in printer.configfile.config) %} {% set b_value = params['B']|float %} {% set b_axis_pot_scale = printer.configfile.config["mcp4018 b_axis_pot"].scale|float %} SET_DIGIPOT DIGIPOT=b_axis_pot WIPER={ b_axis_pot_scale * (b_value / 127.0)} {% endif %} #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [bltouch] #*# z_offset = 2.200 #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# -0.595000, -0.202500, -0.057500, 0.107500, 0.257500, 0.620000 #*# -0.225000, -0.017500, 0.077500, 0.142500, 0.140000, 0.180000 #*# -0.180000, -0.090000, -0.010000, 0.070000, 0.145000, 0.182500 #*# -0.240000, -0.107500, -0.052500, -0.002500, 0.010000, 0.022500 #*# -0.260000, -0.175000, -0.092500, -0.030000, -0.002500, 0.020000 #*# -0.407500, -0.280000, -0.235000, -0.190000, -0.112500, -0.122500 #*# x_count = 6 #*# y_count = 6 #*# mesh_x_pps = 2 #*# mesh_y_pps = 2 #*# algo = lagrange #*# tension = 0.2 #*# min_x = 20.0 #*# max_x = 250.0 #*# min_y = 0.0 #*# max_y = 149.99 ```
Sgail7 commented 9 months ago

Awesome! Thanks for the information. I'll leave this issue open until it's resolved in the next commit. If you find anything else or just want anything else added don't hesitate to comment or open a new issue!

Sgail7 commented 9 months ago

Issue Resolved in commit #69.