reprap:anet:et4:setup-and-flash-klipper

This is an old revision of the document!


HowTo Setup and Flash Klipper on Anet ET4/Pro/X

  • RaspberryPi
  • ST-Link V2
  • in machine → config files add printer.cfg and open it
  • paste:
  • # This file contains common pin mappings for the Anet ET4X printer.
    # To use this config, the firmware should be compiled for the
    # STM32F407. When running "make menuconfig", enable "extra low-level
    # configuration setup", select (no bootloader), disable "USB for
    # communication".
    
    # The "make flash" command does not work on the Anet ET4. The regular
    # bootloaders cannot be used; the USB port is not connected to the MCU
    # directly, but is connected using a CH341 USB-to-serial adapter. The
    # BOOTx pins are not easily accessible.
    
    # Instead, the board can be programmed using the SWD interface available
    # on the J2 header of the board. The pins are unlabeled, but the first
    # three pins starting from the MCU towards the SD card slot are
    # GND, SWCLK and SWDIO.
    
    [stepper_x]
    step_pin: PB6
    dir_pin: !PB5
    enable_pin: !PB7
    rotation_distance: 40
    microsteps: 16
    endstop_pin: ^!PC13
    position_min: -3
    position_endstop: -3
    position_max: 220
    homing_speed: 50
    
    [stepper_y]
    step_pin: PB3
    dir_pin: PD6
    enable_pin: !PB4
    rotation_distance: 40
    microsteps: 16
    endstop_pin: ^!PE12
    position_min: -8
    position_endstop: -8
    position_max: 220
    homing_speed: 50
    
    [stepper_z]
    step_pin: PA12
    dir_pin: !PA11
    enable_pin: !PA15
    rotation_distance: 8
    microsteps: 16
    endstop_pin: ^!PE11
    position_endstop: 250
    position_max: 250
    homing_speed: 12
    second_homing_speed: 5
    
    [extruder]
    step_pin: PB9
    dir_pin: PB8
    enable_pin: !PE0
    full_steps_per_rotation: 200
    gear_ratio: 3:1
    rotation_distance: 23.132
    microsteps: 16
    nozzle_diameter: 0.400
    filament_diameter: 1.750
    heater_pin: PA0 # END_CONTROL
    sensor_pin:  PA1 # TEMP_EXB1
    sensor_type: EPCOS 100K B57560G104F
    control: pid
    pid_Kp: 20.375
    pid_Ki: 0.844
    pid_Kd: 123.016
    min_temp: 0
    max_temp: 250
    
    [heater_bed]
    heater_pin: PE2 # BED_CONTROL
    sensor_pin: PA4 # TEMP_BED
    sensor_type: EPCOS 100K B57560G104F
    control: pid
    pid_Kp: 70.721
    pid_Ki: 1.981
    pid_Kd: 631.118
    min_temp: 0
    max_temp: 125
    
    [fan]
    pin: PE3 # LAY_FAN
    
    [heater_fan fan1]
    pin: PE1 # END_FAN
    
    [mcu]
    baud: 115200
    serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
    
    [printer]
    kinematics: cartesian
    max_velocity: 500
    max_accel: 3000
    max_z_velocity: 12
    max_z_accel: 50
    
    [pause_resume]
    
    [filament_switch_sensor filament_sensor]
    switch_pin: PA2 # MAT_DET
    pause_on_runout: True
    
    # The printer ships without a probe, but the wiring loom is
    # already prepared for one
    
    [probe]
    pin: !PC3 # LV_DET
    z_offset: 0.2
    
    ########################################
    # EXP1 / EXP2 (display) pins
    ########################################
    
    [board_pins]
    aliases:
    #   P1 header
        P1_1=PD7, P1_3=PB2, P1_5=PE4, P1_7=PB1, P1_9=<GND>,
        P1_2=PD5, P1_4=PE5, P1_6=PB0, P1_8=PD4, P1_10=<3V3>,
    #   P2 header
        P2_1= PE6, P2_3=PD15, P2_5=PD1, P2_7=PE8, P2_9=PE10,
        P2_2=PD13, P2_4=PD14, P2_6=PD0, P2_8=PE7, P2_10=PE9
    
    [virtual_sdcard]
    path: /home/pi/gcode_files
    
    [pause_resume]
    
    [display_status]
    
    [gcode_macro CANCEL_PRINT]
    rename_existing: BASE_CANCEL_PRINT
    gcode:
        TURN_OFF_HEATERS
        CLEAR_PAUSE
        SDCARD_RESET_FILE
        BASE_CANCEL_PRINT
    
    [gcode_macro PAUSE]
    rename_existing: BASE_PAUSE
    # change this if you need more or less extrusion
    variable_extrude: 1.0
    gcode:
        ##### read E from pause macro #####
        {% set E = printer["gcode_macro PAUSE"].extrude|float %}
        ##### set park positon for x and y #####
        # default is your max posion from your printer.cfg
        {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
        {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
        ##### calculate save lift position #####
        {% set max_z = printer.toolhead.axis_maximum.z|float %}
        {% set act_z = printer.toolhead.position.z|float %}
        {% if act_z < (max_z - 2.0) %}
            {% set z_safe = 2.0 %}
        {% else %}
            {% set z_safe = max_z - act_z %}
        {% endif %}
        ##### end of definitions #####
        SAVE_GCODE_STATE NAME=PAUSE_state
        BASE_PAUSE
        G91
        G1 E-{E} F2100
        G1 Z{z_safe} F900
        G90
        G1 X{x_park} Y{y_park} F6000
      
    [gcode_macro RESUME]
    rename_existing: BASE_RESUME
    gcode:
        ##### read E from pause macro #####
        {% set E = printer["gcode_macro PAUSE"].extrude|float %}
        ##### end of definitions #####
        G91
        G1 E{E} F2100
        RESTORE_GCODE_STATE NAME=PAUSE_state
        BASE_RESUME

(based on PHeNNeT FiLM)

  • save & close
  • note: i wasnt able to make this with openblt work, but i will update if i find a way
  • ssh into raspberry (use MobaXterm, it has an inbuild sftp client to pull the firmware)
  • cd klipper
    make menuconfig
  • choose settings:
  • [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32)
    Processor model (STM32F407)
    Bootloader offset (No bootloader)  --->
    Clock Reference (8 MHz crystal)  --->
    Communication interface (Serial (on USART1 PA10/PA9))  --->
    (112500) Baud rate for serial port
    ()  GPIO pins to set at micro-controller startup
  • type Q to exit, verify with Y
  • make
  • after its finished copy firmware.bin from /home/pi/klipper/out/ to your pc (via MobaXterm, Filezilla(port 22) or WinSCP)
  • attach your ST-Link to the printer
  • run STM32 ST-Link Utility
  • Target → Connect
  • backup your bootloader if you are coming from stock
    • select adress 0x08000000
    • left click Device Memory @ 0x08000000 → Save to file → original_bootloader.bin
  • Target → Program
    • Start Adress: 0x08000000
    • Filepath: your klipper.bin
    • Start
  • if you have problems connecting ST-Link after the successful flash, lower your Connection Frequency in Target → Settings
  • Thats it. Restart your printer and click firmware restart in mainsail
  • reprap/anet/et4/setup-and-flash-klipper.1646964780.txt.gz
  • Last modified: 2022/03/11 03:13
  • by vidschofelix