Skip to content

Instantly share code, notes, and snippets.

@wess
Last active April 27, 2022 03:18
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save wess/d48057846ab8272075521549562aac9e to your computer and use it in GitHub Desktop.
Save wess/d48057846ab8272075521549562aac9e to your computer and use it in GitHub Desktop.
BLTouch Config for Ender 3 (download from http://marlinfw.org)
Configuration.h
COMMENT 78: //#define SHOW_BOOTSCREEN // Save memory.
COMMENT 97: //#define CUSTOM_STATUS_SCREEN_IMAGE // Save memory.
EDIT 375: #define DEFAULT_Kp 32.24 // PID settings with Micro Swiss all metal hotend.
EDIT 376: #define DEFAULT_Ki 3.71 // PID settings with Micro Swiss all metal hotend.
EDIT 377: #define DEFAULT_Kd 69.98 // PID settings with Micro Swiss all metal hotend.
UNCOMMENT 413: #define PIDTEMPBED // Allow bed PID tuning.
EDIT 431: #define DEFAULT_bedKp 558.37 // PID settings with thermal insulation under bed.
EDIT 432: #define DEFAULT_bedKi 109.94 // PID settings with thermal insulation under bed.
EDIT 433: #define DEFAULT_bedKd 708.99 // PID settings with thermal insulation under bed.
UNCOMMENT 524: #define ENDSTOPPULLUP_ZMIN_PROBE // BLTouch setting.
EDIT 534: #define Z_MIN_PROBE_ENDSTOP_INVERTING true // BLTouch setting.
UNCOMMENT 550: #define X_DRIVER_TYPE A4988 // Configure Marlin to recognize the Ender 3 stepper drivers.
UNCOMMENT 551: #define Y_DRIVER_TYPE A4988 // Configure Marlin to recognize the Ender 3 stepper drivers.
UNCOMMENT 552: #define Z_DRIVER_TYPE A4988 // Configure Marlin to recognize the Ender 3 stepper drivers.
...
UNCOMMENT 556: #define E0_DRIVER_TYPE A4988 // Configure Marlin to recognize the Ender 3 stepper drivers.
EDIT 608: #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 104.49 } // My e-step setting.
UNCOMMENT 727: #define BLTOUCH // BLTouch setting.
...
ADD 729: #define SERVO0_PIN 27 // BLTouch setting.
EDIT 777: #define X_PROBE_OFFSET_FROM_EXTRUDER -48 // Setting using Bullseye duct left ABL mount. Measure and put your own setting in.
EDIT 778: #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Setting using Bullseye duct left ABL mount. Measure and put your own setting in.
EDIT 782: #define MIN_PROBE_EDGE 30 // Keeps nozzle from hitting bed clips when probing.
EDIT 791: #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 4) // Increase BLTouch accuracy.
...
UNCOMMENT 796: #define MULTIPLE_PROBING 2 // Increase BLTouch accuracy.
EDIT 880: #define X_BED_SIZE 235 // For current model Ender-3's with the larger beds.
EDIT 881: #define Y_BED_SIZE 235 // For current model Ender-3's with the larger beds.
COMMENT 905: //#define MIN_SOFTWARE_ENDSTOP_Z // BLTouch setting.
UNCOMMENT 976: #define AUTO_BED_LEVELING_BILINEAR // BLTouch setting.
UNCOMMENT 984: #define RESORE_LEVELING_AFTER_G28 // Recalls ABL settings after homing.
UNCOMMENT 1108: #define LEVEL_BED_CORNERS // Allows manual bed leveling from LCD.
EDIT 1021: #define GRID_MAX_POINTS_X 5 // Increased for more acccuracy.
UNCOMMENT 1100: #define LCD_BED_LEVELING // Allows auto and manual bed leveling from LCD.
EDIT 1142: #define SAFE_Z_HOMING // BLTouch setting.
EDIT 1256: #define PREHEAT_1_TEMP_HOTEND 195 // Setting I use for PLA.
EDIT 1257: #define PREHEAT_1_TEMP_BED 65 // Setting I use for PLA.
...
EDIT 1260: #define PREHEAT_2_TEMP_HOTEND 240 // Setting I use for PETG (shows up as ABS on LCD).
EDIT 1261: #define PREHEAT_2_TEMP_BED 75 // Setting I use for PETG (shows up as ABS on LCD).
COMMENT 1427: //#define SDSUPPORT // Comment if you do not use the SD card and need memory for extra features like Linear Advance or Junction Deviation.
UNCOMMENT 1453: #define SLIM_LCD_MENUS // Basic menu settings only to save memory.
COMMENT 1507: //#define SPEAKER // BLTouch setting.
Configuration_adv.h
EDIT 388: #define HOMING_BUMP_DIVISOR { 4, 4, 4 } // Increase BLTouch accuracy.
EDIT 264: #define BABYSTEP_MULTIPLICATOR 16 // Uses the natural 0.04mm "magic number" steps.
UNCOMMENT 265: #define BABYSTEP_ZPROBE_OFFSET // Allows saving Z offset to EEPROM.
UNCOMMENT 756: #define BABYSTEP_ZPROBE_GFX_OVERLAY // Graphic to let you know which way to turn to move z probe up or down
COMMENT 798: //#define ARC_SUPPORT // Not used so removed to save memory.
UNCOMMENT 1019: #define FILAMENT_LOAD_UNLOAD_GCODES // Add change filament to LCD menu.
language_en.h
EDIT 134: #define MSG_PREHEAT_2 _UxGT("Preheat PETG") // Rename ABS (Preheat 2) to PETG or any other filament type.
pins_MELZI_CREALITY.h
ADD 49: #undef BEEPER_PIN // Prevents interference on pin 27 with BLTouch.
How to Configure Z Offset
G28 – Auto home, this should home your printers axis’s then move to the middle of the bed.
G1 F60 Z0 – This takes the nozzle to the printer’s absolute Z position defined by the EEPROM.
Slide paper under nozzle and adjust Z position (use babystepping on LCD).
M851 Z-0.000 - Where 0.000 is the Z position aquired from the previous step (on LCD).
M500 - Saves Z offset in priners EEPROM
How to Calibrate E-Steps (can be added to firmware)
M503 ; See current steps
M83 ; Set extruder to relative mode
M109 S240 ; Warm up the nozzle to 240C for PETG. Use 200 for PLA.
G1 E100 F100 ; Extrude 100mm at 100mm/min. In my case, only 89mm extruded and my current settings at the time was the default 93. 100 (desired) / 89 (actual) * 93 (current) = 104.49
M92 E104.49 ; Set steps to 104.49mm / 100mm
M500 ; Save settings to EEPROM
How to Fix PID for Hotend (can be added to firmware)
M303 S240 C10 ; Run PID autotune on hotend for 10 cycles
M301 P32.24 I3.71 D69.98 ; Replace with your results from autotune. These are what I got for mine.
M500 ; Save settings to EEPROM
How to Fix PID for bed (can be added to firmware)
M303 E-1 S80 C10 ; Run PID autotune on bed for 10 cycles
M304 P558.37 I109.94 D708.99 ; Replace with your results from autotune. These are what I got for mine.
M500 ; Save settings to EEPROM
Cura Start G-code
Note that I do not run auto bed leveling within this code since I do it through Auto Bed Leveling Wizard in Octoprint. You can scroll down to my TH3D firmware post to see how I added auto bed leveling to the start of every print.
; Ender 3 Custom Start G-code with BLTouch
M280 P0 S160 ; BLTouch alarm release
G4 P99 ; delay for BLTouch
M117 Homing...
G90 ; Set coordinates to absolute
G28 ; Home all axis
M117 Priming...
G0 X0.1 Y25 Z0.24 F5000.0 ; Move to start position
G92 E0 ; Reset Extruder
G1 X0 Y210.0 Z0.24 F600.0 E10 ; Start drawing line
G1 X0.5 Y210.0 Z0.24 F600.0 E10.03 ; Continue to side a little
G1 X0.5 Y100 Z0.24 F600.0 E18 ; Continue drawing line
G1 X0.5 Y35 Z0.24 F300.0 E20 ; Finish drawing line slowly to relieve nozzle pressure
G0 X0.5 Y25 Z0.24 F5000.0; Quick wipe
G0 X0 Y25 Z15.0 F5000 ; Move to front corner and raise Z axis
G0 X0 Y210 Z15.0 F5000 ; Move to back corner of bed to shear strings
G92 E0 ; Reset Extruder
M117 Printing...
; End of custom start GCode
Cura End G-code
; Ender 3 Custom End G-code
M400 ; Wait for current moves to finish
M220 S100 ; Reset Speed factor override percentage to default (100%)
M221 S100 ; Reset Extrude factor override percentage to default (100%)
G91 ; Set coordinates to relative
G1 F2400 E-3 ; Retract filament 3mm at 40mm/s to prevent stringing
G0 F5000 Z20 ; Move Z Axis up 20mm to allow filament ooze freely
G90 ; Set coordinates to absolute
G0 X0 Y235 F5000 ; Move Heat Bed to the front for easy print removal
M84 ; Disable stepper motors
; End of custom end GCode
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment