Forum

Marlin 2.0.x Firmwa...
 
Notifications
Clear all

[Sticky] Marlin 2.0.x Firmware Guide for BTT SKR Mini E3 v2.0 Ender 3

1 Posts
1 Users
0 Reactions
9,052 Views
Print3D
(@print3d)
Member Admin
Joined: 6 years ago
Posts: 101
Topic starter  

Changes to the original Marlin 2.0.7.1 files for SKR Mini E3 v2.0, Ender 3.

Use this guide with other marlin versions at your own risk.

Content:
  1. Getting started

  2. Essential changes

  3. PID autotune

  4. Auto Bed Leveling

  5. Manual Mesh Bed Leveling

  6. Filament Runout Sensor/Detection and Filament Change

  7. Linear Advance

  8. All in one Retraction testing

  9. Compiling firmware

  10. Flashing firmware

  11. Updating/Reflashing firmware

  12. Printable Direct Drive mod

  13. SKR Mini E3 v1.2, v1.2 guide

  14. Changelog

Getting started
  1. Install VSCode and Git GUI according to this Installation guide

  2. Open Marlin in VSCode as it is in this Comment

    1. (You can choose the marlin version at the bottom left corner of the window, the default is the latest 2.0.x)

  3. Modify your Marlin based on this guide

    1. (Not necessary step / Use it at your own risk) Optionally you can use the marlin example file for this board. (config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 2.0/)

Choose 2.0.x in VSCode.

Teaching Tech - Beginner guide to editing Marlin firmware - step by step

E - Enable | C - Change | E&C - Enable and Change | D - Disable

Enable/Disable by deleting/placing // at the start of a line.

Essential changes

Essential / useful changes to platformio.ini, Configuration.h and Configuration_adv.h files in /Marlin folder.

platformio.ini:
  • C default_envs = STM32F103RC_btt_512K

Configuration.h:
  • E SHOW_CUSTOM_BOOTSCREEN

  • E CUSTOM_STATUS_SCREEN_IMAGE

    • (Copy _Bootscreen.h / _Statusscreen.h file from Marlin\config\examples\Creality\Ender-3\ to Marlin\Marlin folder)

    • Download it from the Marlin GitHub.

  • C SERIAL_PORT 2

  • E SERIAL_PORT_2 -1

  • C BAUDRATE 115200

    • (BTT default baudrate)

  • C MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V2_0

  • E&C CUSTOM_MACHINE_NAME "Ender-3"

  • C TEMP_SENSOR_BED 1

  • C BED_MAXTEMP 125

    • (By setting it to 70 for a magnetic bed that works up to 70 °C, marlin will only let it heat up to 60, for safety reasons)

  • C DEFAULT_Kp 21.73

  • C DEFAULT_Ki 1.54

  • C DEFAULT_Kd 76.55

    • (PID autotune for faster heating and more stable temperature)

  • E PIDTEMPBED

    • (You don't need to enable PIDTEMPBED, if you are satisfied with your heated bed, but by calibrating the heated bed, it could heat up faster and maintain temperature more accurately)

    • (Be sure to do a PID autotune for your heated bed after you enabled it in your firmware, otherwise it will trigger Thermal Runaway Protection when heating up the bed. You can find the guide under the PID autotune section, later in this post)

  • C EXTRUDE_MAXLENGTH 200

    • (Or measure the length from the extruder gear to the nozzle through the PTFE tube)

  • E&C X_DRIVER_TYPE TMC2209

  • E&C Y_DRIVER_TYPE TMC2209

  • E&C Z_DRIVER_TYPE TMC2209

  • E&C E0_DRIVER_TYPE TMC2209

  • C DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }

  • C DEFAULT_MAX_FEEDRATE { 500, 500, 20, 120 }

  • C DEFAULT_ACCELERATION 500

  • C DEFAULT_RETRACT_ACCELERATION 500

  • C DEFAULT_TRAVEL_ACCELERATION 500

  • E CLASSIC_JERK

  • E&C TRAVEL_EXTRA_XYJERK 5.0

  • C DEFAULT_EJERK 15.0

  • D S_CURVE_ACCELERATION

  • C INVERT_X_DIR true

  • C INVERT_E0_DIR true

  • C X_BED_SIZE 235

  • C Y_BED_SIZE 235

  • C Z_MAX_POS 250

  • E LEVEL_BED_CORNERS

  • C LEVEL_CORNERS_HEIGHT 0.1

    • (Set it to the thickness (mm) of the paper/credit card/feeler gauge you want to use)

  • C HOMING_FEEDRATE_XY (50*60)

  • E EEPROM_SETTINGS

  • E EEPROM_AUTO_INIT

  • E NOZZLE_PARK_FEATURE

  • D DISPLAY_CHARSET_HD44780

  • E SDSUPPORT

  • E CR10_STOCKDISPLAY

  • E FAN_SOFT_PWM

Configuration_adv.h:
  • E HOTEND_IDLE_TIMEOUT

  • E USE_CONTROLLER_FAN

  • E&C CONTROLLER_FAN_PIN PC7

  • E CONTROLLER_FAN_EDITABLE

  • C HOMING_BUMP_MM      { 5, 5, 2 }

  • E QUICK_HOME

  • C SLOWDOWN_DIVISOR 8

  • D ADAPTIVE_STEP_SMOOTHING

  • E STATUS_MESSAGE_SCROLLING

  • E SHOW_REMAINING_TIME

  • E USE_M73_REMAINING_TIME

  • E ROTATE_PROGRESS_DISPLAY

  • E PRINT_PROGRESS_SHOW_DECIMALS

  • E SCROLL_LONG_FILENAMES

  • E&C SDCARD_CONNECTION ONBOARD

  • E STATUS_HEAT_PERCENT

  • E LIN_ADVANCE

  • C LIN_ADVANCE_K 0.00

    • (You can find guide links to calibrate your K value under the Linear Advance section, later in this post)

  • E EMERGENCY_PARSER

  • C X_CURRENT 580

  • C Y_CURRENT 580

  • C Z_CURRENT 580

  • C E0_CURRENT 650

  • C Y_SLAVE_ADDRESS 2

  • C Z_SLAVE_ADDRESS 1

  • C E0_SLAVE_ADDRESS 3

  • C CHOPPER_TIMING CHOPPER_DEFAULT_24V

  • D HYBRID_THRESHOLD

  • E SQUARE_WAVE_STEPPING

  • E CANCEL_OBJECTS

PID autotune external guide
Auto Bed Leveling external guide
Manual Mesh Bed Leveling

(Use this if you don't have a bed leveling sensor, e.g. BLTouch)

Configuration.h

  • E PROBE_MANUALLY

  • E MANUAL_PROBE_START_Z

  • C NOZZLE_TO_PROBE_OFFSET { 0, 0, 0 }

  • E MESH_BED_LEVELING

  • E RESTORE_LEVELING_AFTER_G28

  • C GRID_MAX_POINTS_X 5 (Or change it accordingly to your needs)

  • E LCD_BED_LEVELING

Leveling:

Heat up your bed to the temperature you usually print on (e.g. 60°C) (Make sure that there are no plastic on the nozzle, that would alter the nozzles distance to the bed)

  1. Select: Motion - Bed Leveling - Level Bed

  2. Wait for Homing XYZ to complete

  3. When Click to Begin appears, press the controller button to move to the first point

  4. Use the controller wheel to adjust Z so that a piece of paper can just pass under the nozzle

  5. Press the controller button to save the Z value and move to the next point

  6. Repeat steps 4-5 until completed

  7. Select: Configuration - Store settings to save the mesh to the EEPROM

  8. Select: Motion - Fade height: Set it to 10

  9. Select: Motion - Store settings

  10. Make a test print, and as it prints you can change the nozzle distance to the bed in Motion - Bed Z with the controller wheel

  11. Select: Configuration - Store settings

 

Filament Runout Sensor/Detection and Filament Change

E0-STOP (PC15)

Configuration.h

  • E FILAMENT_RUNOUT_SENSOR

  • E&C FILAMENT_RUNOUT_DISTANCE_MM 5

  • C EXTRUDE_MAXLENGTH 100

    • (Length from the extruder gear to the nozzle + 10)

  • E NOZZLE_PARK_FEATURE

  • C NOZZLE_PARK_Z_FEEDRATE 3

Configuration_adv.h

  • E ADVANCED_PAUSE_FEATURE

  • C PAUSE_PARK_RETRACT_FEEDRATE 30

    • (Change it to your retraction speed)

  • C PAUSE_PARK_RETRACT_LENGTH 6

    • (Change it to your retraction length)

  • C FILAMENT_CHANGE_UNLOAD_LENGTH 100

    • (Length from the extruder gear to the nozzle OR set it to 0 for manual filament extraction)

    • (This needs to be less than or equal to EXTRUDE_MAXLENGTH)

  • C FILAMENT_CHANGE_FAST_LOAD_LENGTH 0

    • (Length from the extruder gear to the nozzle OR set it to 0 for manual filament insertion)

    • (This needs to be less than or equal to EXTRUDE_MAXLENGTH)

  • E ADVANCED_PAUSE_CONTINUOUS_PURGE

  • C FILAMENT_CHANGE_ALERT_BEEPS 10

    • (10 might be too much/annoying, if so, lower it to your liking)

  • E PARK_HEAD_ON_PAUSE

  • E FILAMENT_LOAD_UNLOAD_GCODES

    • (Adds M701/M702 Load/Unload G-code, and Load/Unload in the LCD Prepare menu.)

Teaching Tech

Chris Riley

Crosslink

Linear Advance
All in one Retraction testing

KARL JOHNSON

Compiling firmware

Use VSCode with the PlatformIO extension and Git GUI.

You can find the firmware file in .pio/build/STM32F103RC_btt_512K/firmware.bin

Flashing firmware

Place the firmware.bin file onto your SD card, them insert it into your printer and turn it on. After a short 20-30 sec blank screen your printer should be ready.

If after ~50-60 sec there is still a blank screen, don't worry, just turn off your printer. A long blank screen could mean that the firmware you just tried is bad in some way. You should recheck your configurations, then try reflashing it. Comment.

Updating/Reflashing firmware

(Comment) You don't need to redo all the changes every time you want to update to a newer version of marlin, just copy your edited files to the new marlin and compare them in VSC Source Control (Ctrl+Shift+G), and copy anything that is new or changed.

Not all changes will be applied on a firmware update. For that you will need to reset your printer settings by Restore Defaults (M502) in menu - Configuration, then Save Settings (M500). It will reset your settings back to your edited firmware values.

Printable Direct Drive mod

Printable Direct Drive extruder mount for Ender 3, Ender 5, CR-10 etc.

Marlin 2.0.5.4 guide SKR Mini E3 v1.2
Marlin 2.0.x guide SKR Mini E3 v1.2
Changelog:
  • 07.03.

    • + ENDSTOP_INTERRUPTS_FEATURE (18526)

  • 07.12.

    • Follow this comment if you are experiencing freezing mid print.

  • 07.13.

  • 07.15.

    • Disable ADAPTIVE_STEP_SMOOTHING Comment

  • 07.17.

    • Changed FAN1_PIN to PC7

  • 07.27.

    • Changed from Junction Deviation to Classic Jerk

    • Updated to Marlin 2.0.6

    • + ASSISTED_TRAMMING (G35)

    • - BLOCK_BUFFER_SIZE, BUFSIZE, TX_BUFFER_SIZE. (PR)

  • 07.28.

    • Updated ASSISTED_TRAMMING

  • 07.29.

    • Mesh bed leveling clarification.

    • + TRAMMING_SCREW_THREAD

  • 08.03.

  • 08.28.

    • Updated to 2.0.6.1 -> You most likely need to update your configs

    • - MANUAL_FEEDRATE

  • 08.31.

    • - MONITOR_DRIVER_STATUS

  • 09.10.

    • - HOME_BEFORE_FILAMENT_CHANGE

  • 09.29.

    • Updated to 2.0.7 -> You most likely need to update your configs

    • + EMERGENCY_PARSER

  • 10.10.

    • Updated to 2.0.7.1, No changes needed.

  • 10.28.

    • + MANUAL_PROBE_START_Z

Feedbacks are always welcome.

You can tip the author here

Original Post from here: https://www.reddit.com/r/ender3/comments/h8y1ia/marlin_20x_guide_skr_mini_e3_v20_ender_3/

Business IT Solutions - https://bizhostnc.com
Plastic Process Engineering


   
Quote
Share:
Scroll to Top