Hi, I'm Canan
Oups ...
Never forget impossible is possible
:(
Your PC ran into a problem and needs to restart.
We're just collecting some error info, and then we'll restart for you.
0% complete
For more information about this issue and possible fixes, visit
https://www.windows.com/stopcode
If you call a support person, give them this info:
Stop code: SYSTEM_SERVICE_EXCEPTION
Use a BLTouch
Ender 3 Pro
Steps
Firmware update
- I use https://github.com/steenerson/Marlin_SKR_E3_Mini_12_512K/tree/bugfix-2.0.x-bltouchversion as base
- /!\ Depends on your probe placement, you have to correctly update your edge margin!
- > Add just after "#define NOZZLE_TO_PROBE_OFFSET" line:
constexpr int nozzle_to_probe_offset[] = NOZZLE_TO_PROBE_OFFSET;
#define PROBE_X_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[0]
#define PROBE_Y_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[1]
- > Sensor at the back-right:
#define MIN_PROBE_EDGE_LEFT abs(PROBE_X_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_RIGHT abs(MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_FRONT abs(PROBE_Y_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_BACK abs(MIN_PROBE_EDGE)
- > Sensor at the back-left:
#define MIN_PROBE_EDGE_LEFT abs(MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_RIGHT abs(PROBE_X_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_FRONT abs(PROBE_Y_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_BACK abs(MIN_PROBE_EDGE)
- > Sensor at the front-left:
#define MIN_PROBE_EDGE_LEFT abs(MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_RIGHT abs(PROBE_X_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_FRONT abs(MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_BACK abs(PROBE_Y_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
- > Sensor at the front-right:
#define MIN_PROBE_EDGE_LEFT abs(PROBE_X_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_RIGHT abs(MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_FRONT abs(MIN_PROBE_EDGE)
#define MIN_PROBE_EDGE_BACK abs(PROBE_Y_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
-> Make probing over maximum bed surface
GCode Console
- As Cura 3.x has not more consol to be able to check to return of your command, you should use Pronterface (free and portable)
- https://www.pronterface.com/
- /!\ If you don't know which COMM port your print is linked, simply open your "Device Manager" and plug/unplug your printer to see it!
Test commands
- Even if, you will see the red color of it (if it is correctly connected) and the first down and up movement when you power it on, you can also check it manually:
M280 P0 S10 ;Pin down
M280 P0 S90 ;Pin up
M280 P0 S120 ;Test
M280 P0 S160 ;Release (you must do it to stop the Test command)
M280 P0 S10 ;Pin down (to let it ready)
Setup and initial probing commands
- You will have now to make your mesh to let your BLTouch know your bed placement, and be able to print as good as possible:
M502 ;Reset settings to configuration defaults
M500 ;Save current setup (WARNING: UBL will be active at power up, before any G28)
M501 ;Read back in the saved EEPROM (to prevent restart)
M851 X__YOUR_VALUE__ Y__YOUR_VALUE__ Z0 ;Set probe position (depends on yours, c.f: M851 X-48 Y-10 Z0) // Canan
G1 E-4 F300 ;Retract 4mm of filament at 300mm/s before lift the nozzle // Canan
M190 S60 ;Not required, but having the printer at temperature helps accuracy (PLA)
M104 S200 ;Not required, but having the printer at temperature helps accuracy (PLA)
G28 ;Home XYZ
G29 ;Do automated probing of the bed
M500 ;Save current setup
M501 ;Read back in the saved EEPROM (to prevent restart)
M503 ;To check the value
Sample of my G29 result (with 4x4 grid)
0 1 2 3
0 -0.375 -0.328 +0.182 +0.424
1 -0.266 -0.658 -0.578 +0.215
2 +0.021 -0.390 -0.091 +0.160
3 +0.277 -0.270 -0.400 -0.131
Z Offset
M851 Z0 ;Reset your Z offset at 0
M190 S60 ;Not required, but having the printer at temperature helps accuracy (PLA)
M104 S200 ;Not required, but having the printer at temperature helps accuracy (PLA)
G28 ;Home XYZ (or simply G28 Z)
- G1 X(BED_WIDTH / 2) Y(BED_DEPTH / 2) Z10 F5000 ;Move at center (for example: G1 X117.5 Y117.5 Z10 F5000 for an Ender 3 with 235x235mm bed)
M280 P0 S10 ;Pin down
-> Move down your Z axis (1mm by 1mm, then 0.1mm by 0.1mm) until the pin of probe will be go up automatically (so your __PROBE_VALUE__)!
- /!\ If you are at Z0 and it is still too height, you have to disable (M211 S0) temporarily the ZStop functionality to be able to go in negative value, then renable it (M211 S1)!
-> Use a paper between your nozzle and your bed, and move down your Z axis nearly your bed (0.1mm by 0.1mm) until the paper can move but not easily (must be not blocked!) to have the __CURRENT_VALUE__
__NEW_VALUE__ = __PROBE_VALUE__ - __CURRENT_VALUE__
M851 Z__NEW_VALUE__ ;Set Z offset at __NEW_VALUE__ (the current Z value obtained)
M500 ;Save current setup
M501 ;Read back in the saved EEPROM (to prevent restart)
A negative Z offset value means the nozzle will go down!
- /!\ If __CURRENT_VALUE__ = 0, you have nothing to do!
You can now put it in your firmware and update it!
Start and end print script
- You will have now to edit your start and end print script to include BLTouch check (and few useful tweaks)
Start
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
G1 E-4 F300 ;Retract 4mm of filament at 300mm/s // Canan
G28 ;Home
G29 ;Bed levelling [Linear/Bilinear/Mesh] // Canan
G1 E0 F300 ;Reset Extruder at 300mm/s to cancel retractation // Canan
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
;M300 S440 P200 ;Play a tone at 440Hz during 0.2s // Canan
M117 Ready ;Print a message on the LCD // Canan
End
G4 ;Wait // Canan
G92 E0 ;Reset extruder // Canan
G91 ;Relative positioning
;G1 E-2 F2700 ;Retract a bit
;G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 E-4 F300 ;Retract 4mm of filament at 300mm/s before lift the nozzle // Canan
G1 Z10 F5000 ;Lifts the nozzle off of the print 10mm // Canan
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positioning
;G1 X0 Y{machine_depth} ;Present print
G1 X0 Y200 ;Present the print // Canan
M106 S0 ;Turn-off fans
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
;M84 X Y E ;Disable all steppers except Z
M84 ;Disable motors (M17 to renable it) // Canan
;M80 ;Power down main power supply // Canan
;M300 S440 P200 ;Play a tone at 440Hz during 0.2s // Canan
M117 Finish ;Print a message on the LCD // Canan
First layer calibration
- You have to check if everything is good, so simply print a model test
- First_layer_calibration.stl
Known issues
If everything works before, test to simple turn OFF your printer, be sure the pin of BLTouch is out, and turn it ON again
- If you have "Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)", if you don't have issue to pre-heat, it means the "thermistor" is correctly connected and is not damaged, otherwise you have to change it! Normally you don't have "thermistor" problem, so it is simply due to no constant or no connection at all from the White/Black cable coming out from the BLTouch to the Printers Z-Endstop Pins, so make sure the connection are perfect
- /!\ So the 2-pins black and white must be on z-axis place in correct sens!
Useful commands
M111 S247 ;Debug messages mode
M701 ;Load filament
M702 ;Unload filament