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 downM280 P0 S90 ;Pin upM280 P0 S120 ;TestM280 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 defaultsM500 ;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) // CananG1 E-4 F300 ;Retract 4mm of filament at 300mm/s before lift the nozzle // CananM190 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 XYZG29 ;Do automated probing of the bedM500 ;Save current setupM501 ;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 30 -0.375 -0.328 +0.182 +0.4241 -0.266 -0.658 -0.578 +0.2152 +0.021 -0.390 -0.091 +0.1603 +0.277 -0.270 -0.400 -0.131
Z Offset
M851 Z0 ;Reset your Z offset at 0M190 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 setupM501 ;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 accelerationM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrateM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel accelerationM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup JerkM220 S100 ;Reset FeedrateM221 S100 ;Reset FlowrateG1 E-4 F300 ;Retract 4mm of filament at 300mm/s // CananG28 ;HomeG29 ;Bed levelling [Linear/Bilinear/Mesh] // CananG1 E0 F300 ;Reset Extruder at 300mm/s to cancel retractation // CananG92 E0 ;Reset ExtruderG1 Z2.0 F3000 ;Move Z Axis upG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start positionG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first lineG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a littleG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second lineG92 E0 ;Reset ExtruderG1 Z2.0 F3000 ;Move Z Axis up;M300 S440 P200 ;Play a tone at 440Hz during 0.2s // CananM117 Ready ;Print a message on the LCD // Canan
End
G4 ;Wait // CananG92 E0 ;Reset extruder // CananG91 ;Relative positioning;G1 E-2 F2700 ;Retract a bit;G1 E-2 Z0.2 F2400 ;Retract and raise ZG1 E-4 F300 ;Retract 4mm of filament at 300mm/s before lift the nozzle // CananG1 Z10 F5000 ;Lifts the nozzle off of the print 10mm // CananG1 X5 Y5 F3000 ;Wipe outG1 Z10 ;Raise Z moreG90 ;Absolute positioning;G1 X0 Y{machine_depth} ;Present printG1 X0 Y200 ;Present the print // CananM106 S0 ;Turn-off fansM104 S0 ;Turn-off hotendM140 S0 ;Turn-off bed;M84 X Y E ;Disable all steppers except ZM84 ;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 // CananM117 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 modeM701 ;Load filamentM702 ;Unload filament