From 108ae601b31a54811571dad8a908e687d2fc7cf2 Mon Sep 17 00:00:00 2001 From: Chris Lee Date: Mon, 11 Apr 2022 14:13:58 -0600 Subject: [PATCH] firmware_configurations/klipper: MKS Eagle V1.0 (#680) This config also works for MKS Robin Nano V3.1. - V0.1 example config - MKS Eagle/Robin Nano V3.1 board pin aliases - new README with `make menuconfig` screenshot --- firmware_configurations/README.md | 1 + .../klipper/clee/mks_eagle/README.md | 10 + .../mks_eagle_v1.0-make_menuconfig.png | Bin 0 -> 52644 bytes .../mks_eagle/mks_eagle_v1.0_pin_aliases.cfg | 49 +++ .../clee/mks_eagle/v0-mks_eagle_v1.0.cfg | 305 ++++++++++++++++++ 5 files changed, 365 insertions(+) create mode 100644 firmware_configurations/klipper/clee/mks_eagle/README.md create mode 100644 firmware_configurations/klipper/clee/mks_eagle/mks_eagle_v1.0-make_menuconfig.png create mode 100644 firmware_configurations/klipper/clee/mks_eagle/mks_eagle_v1.0_pin_aliases.cfg create mode 100644 firmware_configurations/klipper/clee/mks_eagle/v0-mks_eagle_v1.0.cfg diff --git a/firmware_configurations/README.md b/firmware_configurations/README.md index 1f1e6aec4..0cd2090c7 100644 --- a/firmware_configurations/README.md +++ b/firmware_configurations/README.md @@ -28,6 +28,7 @@ like so: | Creator | Config title | Description | V0 | V1.8 | V2.4 | VSW | VT | | --- | --- | --- | --- | --- | --- | --- | --- | | clee | [Fysetc S6 V2.1 for V0.1](./klipper/clee/fysetc_s6) | Example configuration and board pin aliases for the Fysetc S6 V2.1 for V0.1 | :heavy_check_mark: | :x: | :x: | :x: | :x: | +| | [Makerbase Eagle V1.0/Robin Nano V3.1](./klipper/clee/mks_eagle) | Example configuration and board pin aliases for the MKS Eagle/Robin Nano V3.1 for V0.1 | :heavy_check_mark: | :x: | :x: | :x: | :x: | | jaeger | [FYSETC Spider on V1.8](./klipper/jaeger/Spider_1.1_V1.8) | Example configuration and wiring diagram for a FYSETC Spider 1.1 board on the V1.8 | :x: | :heavy_check_mark: | :x: | :x: | :x: | | MarcPot | [Fysetc Spider Board Pins](./klipper/MarcPot/fysetc_spider_pins) | Defines a set of `[board_pins]` aliases for use with the Fysetc Spider controller | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | | Mellow | [Fly-Super8 on V2.4](./klipper/Mellow/FLY-Super8) | Example configuration and wiring diagram for a FLY-Super8 board on the V2.4 | :x: | :x: | :heavy_check_mark: | :x: | :x: | diff --git a/firmware_configurations/klipper/clee/mks_eagle/README.md b/firmware_configurations/klipper/clee/mks_eagle/README.md new file mode 100644 index 000000000..b5b5e662a --- /dev/null +++ b/firmware_configurations/klipper/clee/mks_eagle/README.md @@ -0,0 +1,10 @@ +# clee's MKS Eagle V1.0 / Robin Nano V3.1 klipper config + +This klipper configuration uses pin aliases. See below for the menuconfig options that worked for me. + +![make menuconfig: STM32F407, 48KiB bootloader, 8MHz crystal, USB on PA11/PA12](mks_eagle_v1.0-make_menuconfig.png "make menuconfig screenshot") + +The Eagle can be flashed with `make flash FLASH_DEVICE=0483:df11` if you hold the BOOT0 button while it's powering up. Otherwise, you can also flash the Eagle via microSD card or USB drive. MBR partition table, FAT32. Make sure to name your new firmware image `mks_eagle.bin` or else it won't flash. + +The Robin Nano V3.1 cannot be flashed with `make flash` but instead requires you to flash via microSD card or USB drive. MBR partition table, FAT32. Make sure to name your new firmware image `robin_nano_v3.bin` or else it won't flash. + diff --git a/firmware_configurations/klipper/clee/mks_eagle/mks_eagle_v1.0-make_menuconfig.png b/firmware_configurations/klipper/clee/mks_eagle/mks_eagle_v1.0-make_menuconfig.png new file mode 100644 index 0000000000000000000000000000000000000000..409ed1f6176ff5a52fa031d00db3e6634b0945f4 GIT binary patch literal 52644 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

y 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, EXP1_10=<5V>, + + # EXP2 header + EXP2_1=PA6, EXP2_2=PA5, + EXP2_3=PE8, EXP2_4=PE10, + EXP2_5=PE11, EXP2_6=PA7, + EXP2_7=PE12, EXP2_8=, + EXP2_9=, EXP2_10=<5V> + diff --git a/firmware_configurations/klipper/clee/mks_eagle/v0-mks_eagle_v1.0.cfg b/firmware_configurations/klipper/clee/mks_eagle/v0-mks_eagle_v1.0.cfg new file mode 100644 index 000000000..3b9cc6337 --- /dev/null +++ b/firmware_configurations/klipper/clee/mks_eagle/v0-mks_eagle_v1.0.cfg @@ -0,0 +1,305 @@ +# This file contains common pin mappings for the Makerbase Eagle / Robin +# Nano V3. +# To use this config, the firmware should be compiled for the +# STM32F407 with a "48KiB bootloader", "8MHz crystal" Clock reference, +# and USB (on PA11/PA12) Communication interface. + +# The Eagle can be flashed with `make flash FLASH_DEVICE=0483:df11` by +# booting the MCU with the BOOT0 button pressed. The Robin Nano V3.x cannot +# be flashed with `make flash`, but can instead be flashed from microSD or +# USB disk. + + +## clee's VORON 0.1 Makerbase board-pins config + +## *** THINGS TO CHANGE/CHECK: *** +## MCU path [mcu] section +## Z and Extruder motor currents [tmc2209 stepper_*] sections. Uncomment the stepper motor you have +## Full steps per rotation for Extruder [extruder] section +## Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file +## Extruder motor currents [extruder] section +## PID tune [extruder] and [heater_bed] sections +## Fine tune E steps [extruder] section +## For more info check https://docs.vorondesign.com/build/startup/#v0 + +[mcu] +##################################################################### +# Obtain definition by "ls -l /dev/serial/by-id/" +##################################################################### +serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_REPLACE_WITH_YOUR_VALUE + +[printer] +kinematics: corexy +max_velocity: 200 +max_accel: 2000 +max_z_velocity: 15 +max_z_accel: 45 +square_corner_velocity: 6.0 + +[include mks_eagle_v1_pin_aliases.cfg] + +##################################################################### +# X/Y Stepper Settings +##################################################################### + +[stepper_x] +step_pin: MOT0_STEP +## Refer to https://docs.vorondesign.com/build/startup/#v0 +dir_pin: MOT0_DIR # Check motor direction in link above. If inverted, add a ! before PB12 +enable_pin: !MOT0_EN +rotation_distance: 40 +microsteps: 32 +full_steps_per_rotation: 200 # Set to 400 for 0.9° degree stepper motor, 200 is for 1.8° stepper motors +endstop_pin: ^!ESTOP0 +position_endstop: 120 +position_max: 120 +homing_speed: 50 # Can be increased after initial setup, Max 100 +homing_retract_dist: 5 +homing_positive_dir: true + +[tmc2209 stepper_x] +uart_pin: MOT0_CS +interpolate: False +run_current: 0.5 +stealthchop_threshold: 0 # Set to 999999 to turn stealthchop on, and 0 to use spreadcycle + +[stepper_y] +step_pin: MOT1_STEP +## Refer to https://docs.vorondesign.com/build/startup/#v0 +dir_pin: MOT1_DIR # Check motor direction in link above. If inverted, add a ! before PB2 +enable_pin: !MOT1_EN +rotation_distance: 40 +microsteps: 32 +full_steps_per_rotation: 200 # Set to 400 for 0.9° degree stepper motor, 200 is for 1.8° stepper motors +endstop_pin: ^!ESTOP1 +position_endstop: 120 +position_max: 120 +homing_speed: 50 # Can be increased after initial setup, Max 100 +homing_retract_dist: 5 +homing_positive_dir: true + +[tmc2209 stepper_y] +uart_pin: MOT1_CS +interpolate: False +run_current: 0.5 +stealthchop_threshold: 0 # Set to 999999 to turn stealthchop on, and 0 to use spreadcycle + +##################################################################### +# Z Stepper Settings +##################################################################### + +[stepper_z] +step_pin: MOT2_STEP +dir_pin: !MOT2_DIR # Remove the ! before PC5 if motor direction is inverted. +enable_pin: !MOT2_EN +rotation_distance: 8 # For T8x8 integrated lead screw +microsteps: 32 +endstop_pin: ^ESTOP2 +position_endstop: -0.10 +position_max: 120 +position_min: -1.5 +homing_speed: 10 +second_homing_speed: 3.0 +homing_retract_dist: 3.0 + +[tmc2209 stepper_z] +uart_pin: MOT2_CS +interpolate: False +## For OMC (StepperOnline) 17LS13-0404E-200G 0.4A +#run_current: 0.2 +## For LDO-42STH25-1004CL200E 1.0A +#run_current: 0.37 +stealthchop_threshold: 0 # Set to 999999 to turn stealthchop on, and 0 to use spreadcycle + +##################################################################### +# Thermistor definitions +##################################################################### + +[thermistor Trianglelab NTC100K B3950] +## values calibrated against a PT100 reference +temperature1: 25.0 +resistance1: 103180.0 +temperature2: 150.0 +resistance2: 1366.2 +temperature3: 250.0 +resistance3: 168.6 + +##################################################################### +# Extruder +##################################################################### + +[extruder] +step_pin: MOT3_STEP +dir_pin: MOT3_DIR # Add ! if moving opposite direction +enable_pin: !MOT3_DIR +#full_steps_per_rotation: 200 # Set to 200 for LDO 1.8° stepper motor, and set to 400 for OMC(StepperOnline) 0.9° stepper motor +rotation_distance: 22.23 # See calibrating rotation_distance on extruders doc +gear_ratio: 50:10 # For Mini Afterburner +microsteps: 32 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +heater_pin: HE0 +## Validate the following thermistor type to make sure it is correct +## See https://www.klipper3d.org/Config_Reference.html#common-thermistors for additional options +#sensor_type: Trianglelab NTC100K B3950 # Adjust for your hotend thermistor. +sensor_pin: T0 +control: pid # Do PID calibration after initial checks +pid_Kp: 28.182 +pid_Ki: 1.978 +pid_Kd: 100.397 +min_temp: 0 +max_temp: 270 +min_extrude_temp: 170 +max_extrude_only_distance: 150 +max_extrude_cross_section: 0.8 +pressure_advance: 0.0 # See tuning pressure advance doc +pressure_advance_smooth_time: 0.040 + +[tmc2209 extruder] +uart_pin: MOT3_CS +interpolate: False +## For OMC (StepperOnline) 14HR07-1004VRN 1A 0.9° +#run_current: 0.5 # for OMC 14HR07-1004VRN rated at 1A +## For LDO LDO 36STH17-1004AHG 1A 1.8° +#run_current: 0.3 # for LDO 36STH17-1004AHG +stealthchop_threshold: 0 # Set to 0 for spreadcycle, avoid using stealthchop on extruder + +#[extruder1] +#step_pin: MOT4_STEP +#dir_pin: !MOT4_DIR +#enable_pin: !MOT4_EN +#heater_pin: HE1 +#sensor_pin: T1 + +#[tmc2209 extruder1] +#uart_pin: MOT4_CS +## For OMC (StepperOnline) 14HR07-1004VRN 1A 0.9° +#run_current: 0.5 # for OMC 14HR07-1004VRN rated at 1A +## For LDO LDO 36STH17-1004AHG 1A 1.8° +#run_current: 0.3 # for LDO 36STH17-1004AHG +#stealthchop_threshold: 0 + +##################################################################### +# Bed Heater +##################################################################### + +[heater_bed] +heater_pin: BED_OUT +## Validate the following thermistor type to make sure it is correct +## See https://www.klipper3d.org/Config_Reference.html#common-thermistors for additional options +#sensor_type: Generic 3950 # For Keenovo, verify yours +sensor_pin: TB +smooth_time: 3.0 +#max_power: 0.6 # Only needed for 100w pads +min_temp: 0 +max_temp: 120 +control: pid # Do PID calibration after initial checks +pid_kp: 68.453 +pid_ki: 2.749 +pid_kd: 426.122 + +##################################################################### +# Fan Control +##################################################################### + +[heater_fan hotend_fan] +# FAN1 +pin: FAN0 +max_power: 1.0 +kick_start_time: 0.5 +heater: extruder +heater_temp: 50.0 +#fan_speed: 1.0 # You can't PWM the delta fan unless using blue wire + +[fan] +# FAN2 +pin: FAN1 +max_power: 1.0 +kick_start_time: 0.5 # Depending on your fan, you may need to increase this value if your fan will not start +off_below: 0.13 +cycle_time: 0.010 + +##################################################################### +# Homing and Gantry Adjustment Routines +##################################################################### + +[idle_timeout] +timeout: 1800 + +[safe_z_home] +home_xy_position: 120,120 +speed: 50.0 +z_hop: 5 + +## To be used with BED_SCREWS_ADJUST +[bed_screws] +screw1: 60,5 +screw1_name: front screw +screw2: 5,115 +screw2_name: back left +screw3: 115,115 +screw3_name: back right + +##################################################################### +# Macros +##################################################################### + +[gcode_macro PRINT_START] +# Use PRINT_START for the slicer starting script - please customize for your slicer of choice +gcode: + G28 ; home all axes + G1 Z20 F3000 ; move nozzle away from bed + +[gcode_macro PRINT_END] +# Use PRINT_END for the slicer ending script - please customize for your slicer of choice +gcode: + M400 ; wait for buffer to clear + G92 E0 ; zero the extruder + G1 E-4.0 F3600 ; retract filament + G91 ; relative positioning + + # Get Boundaries + {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} + {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %} + {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %} + + # Check end position to determine safe direction to move + {% if printer.toolhead.position.x < (max_x - 20) %} + {% set x_safe = 20.0 %} + {% else %} + {% set x_safe = -20.0 %} + {% endif %} + + {% if printer.toolhead.position.y < (max_y - 20) %} + {% set y_safe = 20.0 %} + {% else %} + {% set y_safe = -20.0 %} + {% endif %} + + {% if printer.toolhead.position.z < (max_z - 2) %} + {% set z_safe = 2.0 %} + {% else %} + {% set z_safe = max_z - printer.toolhead.position.z %} + {% endif %} + + G0 Z{z_safe} F3600 ; move nozzle up + G0 X{x_safe} Y{y_safe} F20000 ; move nozzle to remove stringing + TURN_OFF_HEATERS + M107 ; turn off fan + G90 ; absolute positioning + G0 X60 Y{max_y} F3600 ; park nozzle at rear + +[gcode_macro LOAD_FILAMENT] +gcode: + M83 ; set extruder to relative + G1 E30 F300 ; load + G1 E15 F150 ; prime nozzle with filament + M82 ; set extruder to absolute + +[gcode_macro UNLOAD_FILAMENT] +gcode: + M83 ; set extruder to relative + G1 E10 F300 ; extrude a little to soften tip + G1 E-40 F1800 ; retract some, but not too much or it will jam + M82 ; set extruder to absolute +