Skip to content

Instantly share code, notes, and snippets.

@visualdensity
Last active August 27, 2021 07:28
Show Gist options
  • Save visualdensity/441b780486a73ee90f8bed9b1d56ac96 to your computer and use it in GitHub Desktop.
Save visualdensity/441b780486a73ee90f8bed9b1d56ac96 to your computer and use it in GitHub Desktop.

Ender 3 v2 Notes

Just a collection of notes for myself.

Bed Dimensions

      |<----- 169mm ------>|
  +----------------------------+ 
  |                            |
  |   ◯                    ◯   |
  |                            |
  |                            |
  |                            |
  |                            |
  |                            |
  |                            |
  |   ◯                    ◯   |
  |                            |
  +----------------------------+
  |<--------- 235mm ---------->|
What Values
Width x Depth 235mm x 235mm
Screw to screw 169mm
Center Point 117.50,117.50

Screw Positions

Axis
X Left: 33 Right: 202
Y Front: 33 Back: 202

Klipper Stuff

In Klipper, before you perform a manual levelling, set the following in printer.cfg file:

[bed_screws]
screw1: 33,33
screw2: 202,202
screw3: 202,33
screw4: 33,202

Restart the firmware and proceed to the next step.

Bed Levelling Screws

First run your bed levelling screws adjustment. You can do this by running:

BED_SCREWS_ADJUST

Klipper will start moving the print head to the various positions set in the bed_screws config above successively to allow you to perform (the paper test)[https://www.klipper3d.org/Bed_Level.html#the-paper-test].

Once you've done your adjustment at a position, use ADJUSTED if you've made some changes and ACCEPT if there are no changes. Klipper will automatically stop the levelling exercise once all points are ACCEPTed with no changes.

If you wish to cancel this operation midway, issue a ABORT command.

After finishing the bed levelling above, you can then perform the Z endstop calibration if you wish.

Z Endstop Calibration

This sets a virtual z endstop where it printhead will always stop at this value.

Z_ENDSTOP_CALIBRATE

Do the same paper test above but this time, you'll have to move the nozzle down yourself by running:

TESTZ Z=-0.1

Where Z can be any value in mm, or you can use increment and decrement operators to "bisect" the last position - that is to move to a position half way between two positions.:

TESTZ Z=+

or

TESTZ Z=-

Once you're done, save it by running:

SAVE_CONFIG

G CODE Macros

Centering

[gcode_macro CENTER_ME]
description: Macro to center the nozzle to the bed
gcode:
    SAVE_GCODE_STATE NAME=my_centering_state
    G90
    G1 Z5.0 F3000
    G1 X117.5 Y117.5 F3000
    RESTORE_GCODE_STATE NAME=my_centering_state

Better Cancel Print

Some stuff ripped from Voron macros

[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print but with a bit of retraction and z movement
rename_existing: CANCEL_PRINT_BASE
gcode:
    SAVE_GCODE_STATE NAME=my_cancel_state
    
    #   Get Boundaries
    {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %}

    #   Check end position to determine safe direction to move
    {% if printer.toolhead.position.z < (max_z - 2) %}
        {% set z_safe = 2.0 %}
    {% else %}
        {% set z_safe = max_z - printer.toolhead.position.z %}
    {% endif %}
    
    G90 #set mode to absolute
    G10 #retract
    G1 Z{z_safe} F3000 #then move up for a bit more clearance
    
    TURN_OFF_HEATERS
    CANCEL_PRINT_BASE
    RESTORE_GCODE_STATE NAME=my_cancel_state
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment