- Today I am building ABL sensor to 3d printer Kryal Cube mk1.2
- In this solution we're using Z Endstop as calibration switch that means, we don't need Z Endstop anymore
- Calibration will start before every print
- The disadvantage is that you must install the sensor next to the extruder and after calibration remove it
- 1.) English manual
- 2.) Slovak Manual
- Formats: .stl and for SolidWorks .sldprt
-
Right side model used with original extruder: (ModelR-O v1.0)
-
Left side model used with original extruder: (ModelL-O v1.0)
-
Left side model used with E3D extruder: (ModelL-E3D v1.0)
-
Magnetic models used with E3D extruder: (ModelM-E3D v1.0)
1.) Hardware preparation:
-
1.) Things we need:
-
2.) Assembling the holder: Fixed type:
- 1.) Solder wires to the C and NC on the switch and at the end of the cable make connector of your choice (as you can see in the red circle (female type))
- 2.) With the screws attach the switch to the 3d printed model
- Your holder should look like this one:
Magnet type:
- 1.) Insert magnets to both models (Double check the magnet faces, if you don't put them in correct way, they won't snap together)
- 2.) Attach the microswitch to the microswitch holder and put screws to hold it
- 3.) Attach cables to the main holder
-
3.) Connect cables to the main board:
2.) Firmware configuration:
Important
Marlin version - 2.0.9.2, in other versions settings can be different.
- 1.) Disabling settings:
- If you have enabled any of these settings, please disable them using // before every #define:
-
Configuration.h
#define PROBE_MANUALLY
#define AUTO_BED_LEVELING_3POINT
#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_UBL
#define MESH_BED_LEVELING
#define RESTORE_LEVELING_AFTER_G28
#define ENABLE_LEVELING_AFTER_G28
#define LCD_BED_LEVELING
-
Configuration_adv.h
#define BABYSTEP_DISPLAY_TOTAL
-
- If you have enabled any of these settings, please disable them using // before every #define:
Warning
If you don't disable these settings and try to build the code, you can get errors!
- 2.) Enabling/configuring settings:
- Enable settings removing // before #define
-
Configuration.h
- !! Set dimensions where the nozzle is safely on the bed and bed sizes !!
- EEPROM settings:
#define EEPROM_SETTINGS
#define EEPROM_AUTO_INIT
- Z Safe homing:
#define Z_SAFE_HOMING
#define Z_HOMING_HEIGHT 30
#define Z_AFTER_HOMING 20
- ABL:
- -left +right; -front +back; -down (our solution only has down); these settings can be found here
#define NOZZLE_TO_PROBE_OFFSET { -32, -15, -7 }
#define AUTO_BED_LEVELING_BILINEAR
#define FIX_MOUNTED_PROBE
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
- x*x = number of calibrating points
#define GRID_MAX_POINTS_X x
- safe distance from each edge of the bed
#define PROBING_MARGIN 6
- #define MULTIPLE_PROBING 2
- higher speed = more inaccurate calibration
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 3)
#define Z_CLEARANCE_DEPLOY_PROBE 10
#define Z_CLEARANCE_BETWEEN_PROBES 10
#define Z_CLEARANCE_MULTI_PROBE 3
#define Z_AFTER_PROBING 30
#define Z_PROBE_LOW_POINT -5
-
Configuration_adv.h
#define BABYSTEPPING
#define DOUBLECLICK_FOR_Z_BABYSTEPPING
#define BABYSTEP_ZPROBE_OFFSET
- This is coreXY 3d printer, so BABYSTEP Graphic Overlay is flipped (Symbol up = bed down; Symbol down = bed up)
#define BABYSTEP_ZPROBE_GFX_OVERLAY
- When trying to calibrate, on the last line the extruder head was rubbing against the back of the 3d printer frame, so I'm setting the limit from the back side
#define PROBING_MARGIN_BACK PROBING_MARGIN +15
#define DEFAULT_STEPPER_DEACTIVE_TIME 400
-
- Enable settings removing // before #define
3.) Building and flashing the firmware:
Warning
If you have been using the Z Probe settings, reset them via "Configuration", "Restore Settings" and then "Store Settings" on the 3d printer display! You can avoid many problems!
Caution
Flashing the firmware is the most dangerous part, so double-check everything! (Code, USB connection). While flashing, printer must be powered up!
- 1.) In VisualCode click build code, if the build is successful, you can write.
Note
On this printer with AtMega2560 you don't need bootloader, so flash with smile :)
- 2.) Now click flash.
- 3.) If the flash was successful, restart the printer.
- 4.) After printer starts up, go to "Configuration", "Restore Setting" and than "Store Settings", with these you store new settings to EEPROM
4.) Modify start GCode:
- PrusaSlicer:
M0 Install probe ; Printer will wait until you install probe to the printer
M140 S[first_layer_bed_temperature] ; Set bed temperature
M190 S[first_layer_bed_temperature] ; Wait for bed temperature
G28 ; Home all
G29 ; Calibration
M0 Remove probe ; Printer will wait until you remove probe from printer
M104 S[first_layer_temperature] T0; Set nozzle temperature
M109 S[first_layer_temperature] T0; Wait for nozzle temperature
- Orca Slicer:
M0 Install probe ; Printer will wait until you install probe to the printer
M140 S[hot_plate_temp_initial_layer] ; Set bed temp
M190 S[hot_plate_temp_initial_layer] ; Wait for bed temp
G28 ; Home all
G29 ; Calibration
M0 Remove probe ; Printer will wait until you remove probe to the printer
M104 S[nozzle_temperature_initial_layer] T0; Set nozzle temp
M109 S[nozzle_temperature_initial_layer] T0; Wait for nozzle temp
1.) Príprava hardware:
-
1.) Veci, ktoré budeme potrebovať:
-
2.) Skladanie držiaku snímača: Pevný typ:
- 1.) Prispájkovať káble na C a NC na spínači a na konci kábla urobiť konektor tvojej voľby (viď. červený kruh (female type))
- 2.) Pomocou šrubiek pripevniť spínač na 3d vytlačený držiak
- Malo by to vyzerať nejako takto:
Magnetický typ:
- 1.) Vlož magnety do obidvoch modelov (Dvakrát skontroluj otočenie magnetov, ak sa dajú opačne, neprichytia sa o seba)
- 2.) Pripevni microspínač do držiaka microspínača a upevni ho šrubami
- 3.) Pripevni káble do hlavného modelu
-
3.) Pripojenie káblov k základnej doske:
2.) Configurácia Firmware:
Important
Marlin verzia - 2.0.9.2, v iných verziách môžu byť nastavenia iné.
- 1.) Vypínanie nastavení:
- Ak máš v Marline povolené niečo z týchto nastavení, prosím vypni ich pomocou // pred každým #define:
-
Configuraion.h
#define PROBE_MANUALLY
#define AUTO_BED_LEVELING_3POINT
#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_UBL
#define MESH_BED_LEVELING
#define RESTORE_LEVELING_AFTER_G28
#define ENABLE_LEVELING_AFTER_G28
#define LCD_BED_LEVELING
-
Configuration_adv.h
#define BABYSTEP_DISPLAY_TOTAL
-
- Ak máš v Marline povolené niečo z týchto nastavení, prosím vypni ich pomocou // pred každým #define:
Warning
Ak nevypneš tieto nastavenia a dáš build code, môžu nastať chyby!
- 2.) Povoľovanie/konfigurácia nastavení:
- Nastavenia povolíš vymazaním // pred každým #define
-
Configuration.h
- !! Nastav veľkosti, kde je tryska bezpečne nad podložkou a veľkosť podložky !!
- EEPROM nastavenia:
#define EEPROM_SETTINGS
#define EEPROM_AUTO_INIT
- Z Safe Homing:
#define Z_SAFE_HOMING
#define Z_HOMING_HEIGHT 30
#define Z_AFTER_HOMING 20
- ABL:
- -vľavo +vpravo; -dopredu +dozadu; -dole (naše riešenie bude mať hodnotu len -dole, nie hore); tieto nastavenia nájdeš tu
#define NOZZLE_TO_PROBE_OFFSET { -32, -15, -7 }
#define AUTO_BED_LEVELING_BILINEAR
#define FIX_MOUNTED_PROBE
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
- x*x = počet kalibračných bodov
#define GRID_MAX_POINTS_X x
- bezpečná vzdialenosť od každého kraja podložky
#define PROBING_MARGIN 6
- #define MULTIPLE_PROBING 2
- vyššia rýchlosť = menej presná kalibrácia
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 3)
#define Z_CLEARANCE_DEPLOY_PROBE 10
#define Z_CLEARANCE_BETWEEN_PROBES 10
#define Z_CLEARANCE_MULTI_PROBE 3
#define Z_AFTER_PROBING 30
#define Z_PROBE_LOW_POINT -5
-
Configuration_adv.h
#define BABYSTEPPING
#define DOUBLECLICK_FOR_Z_BABYSTEPPING
#define BABYSTEP_ZPROBE_OFFSET
- Keďže táto tlačiareň je coreXY, BABYSTEP Graphic Overlay je otočený (Symbol hore = bed dole; Symbol dole = bed hore)
#define BABYSTEP_ZPROBE_GFX_OVERLAY
- Pri pokuse o kalibráciu sa na poslednom riadku hlava extrudéra otierala o zadnú časť rámu 3d tlačiarne, takže nastavujem limit zo zadnej strany
#define PROBING_MARGIN_BACK PROBING_MARGIN +15
#define DEFAULT_STEPPER_DEACTIVE_TIME 400
-
- Nastavenia povolíš vymazaním // pred každým #define
3.) Build a flashovanie firmware:
Warning
Ak si používal Z Probe nastavenia, resetuj ich cez "Configuration", "Restore Settings" a potom "Store Settings" na displeji 3d tlačiarne! Zabrániš tak veľa problémom!
Caution
Flashovanie firmware je tá najbezpečnejšia časť, takže všetko 2-krát skontroluj (Kód, USB pripojenie) Počas flahovania musí byť tlačiareň napájaná!
- 1.) Vo VisualCode klikni na build code, ak bol build úspešný, môžeš flashovať.
Note
Na tejto tlačiarni s AtMega2560 nepotrebuješ bootloader, takže flashuj s úsmevom :)
- 2.) Teraz klikni na flash.
- 3.) Ak bol flash úspešný, reštartuj tlačiareň.
- 4.) Po reštarte tlačiarne choď do "Configuration", "Restore Settings" a potom "Store Settings", takto uložíš nové dáta do pamäte EEPROM
4.) Modifikácia GCode:
- PrusaSlicer:
M0 Vlozit senzor ; Printer will wait until you install probe to the printer
M140 S[first_layer_bed_temperature] ; Set bed temperature
M190 S[first_layer_bed_temperature] ; Wait for bed temperature
G28 ; Home all
G29 ; Calibration
M0 Odstranit senzor ; Printer will wait until you remove probe from printer
M104 S[first_layer_temperature] T0; Set nozzle temperature
M109 S[first_layer_temperature] T0; Wait for nozzle temperature
- Orca Slicer:
M0 Vlozit senzor ; Printer will wait until you install probe to the printer
M140 S[hot_plate_temp_initial_layer] ; Set bed temp
M190 S[hot_plate_temp_initial_layer] ; Wait for bed temp
G28 ; Home all
G29 ; Calibration
M0 Odstranit senzor ; Printer will wait until you remove probe to the printer
M104 S[nozzle_temperature_initial_layer] T0; Set nozzle temp
M109 S[nozzle_temperature_initial_layer] T0; Wait for nozzle temp
ModelL-O v1.0 with original (old) extruder:
- -left +right; -front +back; -down (our solution only has down);
- Switch is 32mm left from the nozzle, so the first value will be -32
- Switch is 15mm back from the nozzle, so the second value will be -15
- Switch is 7mm under the nozzle, so the third value will be -7
#define NOZZLE_TO_PROBE_OFFSET { -32, -15, -7 }
ModelL-E3D v1.0 with E3D extruder:
- -left +right; -front +back; -down (our solution only has down);
- Switch is 36mm left from the nozzle, so the first value will be -36
- Switch is 10mm back from the nozzle, so the second value will be -10
- Switch is 13mm under from the nozzle, so the third value will be -13
#define NOZZLE_TO_PROBE_OFFSET { -36, -10, -13 }
Tip
For E3D extruder you can change this setting in Configuration_adv.h to +10:
#define PROBING_MARGIN_BACK PROBING_MARGIN +10
M112 Printer Halted - Probing Failed:
- 1.) Make manual calibration of the bed corners and start the calibration once again.
Tip
You can enable Bed Tramming in Marlin, so the printer goes to every corner of the bed to infinity: #define LEVEL_BED_CORNERS
- 2.) Disable Multiple Probing
#define MULTIPLE_PROBING
When the bed is too low, homing cannot be performed:
- Use G28 X Y and G28 Z separately, instead of G28
- https://www.youtube.com/watch?v=t4tNSk1_Sc8
- https://www.reddit.com/r/ender3v2/comments/uq3aq3/bed_not_pressing_limit_switch_when_auto_homing/
- https://forum.drucktipps3d.de/forum/thread/14381-probe-failed-with-g29-after-initial-installation/
- https://www.3dprintgorilla.com/marlin-firmware-m112-shutdown/
- MarlinFirmware/Marlin#21118
- https://www.reddit.com/r/3Dprinting/comments/ubwuvu/getting_mad_with_bed_size_and_margins_in_marlin/
- MarlinFirmware/Marlin#18033
- https://www.reddit.com/r/ender3v2/comments/mtfxj3/firmware_crash_error_probing_failed/
- https://www.reddit.com/r/ender3/comments/nc2ul2/bltouch_probe_doesnt_touch_bed_on_first_point/
- https://www.reddit.com/r/3Dprinting/comments/g5a4mz/bltouch_not_probing_bed_g29_but_z_homing_works/