This document include my notes on upgrading a Sunlu-S8 (CR10 clone) to use the MicroSwiss direct drive extruder kit with a the all metal hotend.
The official instructions to install this kit are available here.
A calibration guide for the new extruder is available here.
Initialize the steps/mm of the extruder to the recomended value of 130mm by sending the M92 gcode command.
M92 E130;
Run PID autotune for a temperature of 200 (PLA).
M303 S200 U1;
Use the
U1
parameter to save the results automatically.
If the parameter U1
is not supported by your firmware just run M303 S200
. Then set your PID values with a M301
command.
M301 P29.86 I3.37 D66.04;
The parameter P
corresponds to the Kp
value shown as the result of a M303 command. The parameter I
is for Ki
and D
is for Kd
.
From a flat surface like the extruder top or the filament gud Amount to Extrude
M503 to see current steps per mm.
503
Issue a G92
to reset the current position of the extruder as zero.
G92 E0;
Issue a G91
to put the printer in relative movement mode.
G91;
M92
Extrude 20mm of filament.
G1 E20 F300;
M92
M92 E130;
Change the direction of extruder:
// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
Before compiling ensure that you have the U8G2 Library installed. In Arduino IDE go to "Manage Libraries" and search for "U8g2", if the library is not installed press the "Install" button.
Change the language:
#define LCD_LANGUAGE en
Change the default hotend temperature:
#define PREHEAT_1_TEMP_HOTEND 210
#define BED_MAXTEMP 95
#define USE_ZMAX_PLUG
Enable thermal runaway protection:
#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed
Set default Max Feed Rate (mm/s):
#define DEFAULT_MAX_FEEDRATE { 200, 200, 6, 70 }
Comment out the Z asix probe.
//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
Set probe edge:
#define MIN_PROBE_EDGE 50
#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
#define Z_HOMING_HEIGHT 0 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
// Be sure you have this distance over your Z_MAX_POS in case.
Enable the following options by removing the double slash //
in fron of each line:
#define MESH_BED_LEVELING
#define LCD_BED_LEVELING
#define LEVEL_BED_CORNERS
#define FILAMENT_RUNOUT_SENSOR
#define NOZZLE_PARK_FEATURE
Set the number of grid points per dimension use in bed leveling to 4:
#define MESH_INSET 10
#define GRID_MAX_POINTS_X 4
Edit the file ultralcd_st7920_u8glib_rrd.h
in Arduino IDE. Find the following lines, remove the //
in front and set the corresponding values as shown below:
// If you want you can define your own set of delays in Configuration.h
#define ST7920_DELAY_1 DELAY_NS(0)
#define ST7920_DELAY_2 DELAY_NS(400)
#define ST7920_DELAY_3 DELAY_NS(0)
BLTouch,
A 3D Touch is essentially a clone of the early BL touch models. The 3D Touch uses a Atmel ATtiny13A, an electromagnet and a pressure pin. (Draws 15 mA) The BL Touch includes a microcontroller
Both devices have great tolerances but the BL Touch seems to be the favorite and have slightly more accurate readings.
The CR Touch is Creality's version of a BL Touch. The CR Touch comes with a metal push-pin over a plastic one which makes it more wear-resistance and heat-resistance, ensuring a longer lifespan.
https://www.amazon.com/CREALITY-Touch-Auto-Bed-Leveling/dp/B09MQ58D26
Starting and Ending GCode for Automatic Bed Leveler (3DTouch, BLTouch, CRTouch):
Starting G-code:
G28 ;Home
G92 E0 ;Reset Extruder
G1 E-1 F2700 ;Retract a bit
G29 ;abl
G92 E0 ;Reset Extruder
G1 Z1 F3000 ;Move Z Axis up
G1 X300 Y300 Z0.4 F5000.0
G1 X300 Y25 Z0.32 F1500.0 E30
G92 E0 ;Reset Extruder
G1 E-1 F2700 ;Retract a bit
G92 E0 ;Reset Extruder
G1 Z1.0 F3000 ;Move Z Axis up
Ending G-code:
G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positioning
G1 X0 Y{machine_depth} ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y E ;Disable all steppers but Z
BLTouch offsets
Use the following for the 4010 and 4020 mounts with the sensor on the right side.
#define X_PROBE_OFFSET_FROM_EXTRUDER 33 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
Use the following for the 5015 mounts with the sensor on the left side.
#define X_PROBE_OFFSET_FROM_EXTRUDER -38 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -8 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]