/SKR2-Marlin-2.0.9.3-Delta

AnyCubic Kossel with SKR 2.0 (B), TMC2209 drivers, Wifi Module and Marlin 2.0.9.3 firmware.

Primary LanguageC

SKR2-Marlin-2.0.9.3-Delta

First Edition: 14-02-2022

Updates: 23-02-2022

Description
=========

I have an AnyCubic Kossel Pulley 3D printer since April 2017. It has been working well. However, in August 2021, the 8-bit Trigorilla board died, hence initiating a motherboard replacement. On the same month, I got hold of an SKR 2 Rev B board, four TMC2209 v1.2 stepper motor drivers and a BTT ESP8266 WIFI Module ESP-12S. All other parts remain more or less the same. The firmware installed is 2.0.9.2-BugFix.

On top of the 240mm diameter heating bed (2.9 ohm at 29.5C = 4.1A current requirement) is a 3mm Bolo glass with 200mm diameter. Endstops are original mechanical two wires type. Stepper motors are 42HD4027-01 NEMA x 4 units. Display is a RepRap Discount Smart Controller (EXP1 and EXP2) c/w SDCard slot.

From 14-02-2022 onwards, I upgrade the firmware to the latest 2.0.9.3 stable version. Below were the changes that I made to the relevant configuration files to get the printer up. Hope this helps someone, as I was helped many times by other contributors.

Marlin Configuration - for AnyCubic Kossel Pulley DELTA Printer

Description: Upgrading from Marlin version 2.0.9.2 (Bugfix) to 2.0.9.3 (Stable). Some of the information that I added, like the (J) Bonus is another way to help me remember what I did or can do when I hit similar problems later.

Marlin Firmware
===========

Downloaded Marlin firmware -2.0.9.3 from https://marlinfw.org/meta/download/

  • the downloaded file is Marlin-2.0.x
  • I renamed and unzipped this main file to Marlin-2.0.9.3. For easier identification later on

Downloaded Configuration Examples from https://github.com/MarlinFirmware/Configurations/releases/tag/2.0.9.3

  • steps:
  • scroll down to bottom of page
  • click on "Source code (zip)" and download the file, which is named "2.0.9.3.zip"
  • unzip the file and drill down to "Examples" folder >Anycubic >Kossel
  • copy the files "Configuration.h & Configuration_adv.h"
  • paste them into >- Marlin-2.0.9.3>Marlin-2.0.x >Marlin (overwrite the existing configuration files)

Running Visual Studio Code 1.64.2
=========================

Load up VSC

  • if you see previous version 2.0.9.2 and do not want to see them on the screen, click File and close all the folders.
  • select File > Open folder and open up the Marlin -2.0.9.3 folder as per this sequence below:

    Marlin-2.0.9.3 >Marlin-2.0.x >Marlin [you should not see folders "lib" and "src"]

OR at this point in time, you may just CREATE a new project

  • Load up the PIO Home page
  • create a new Project [+ New Project]
  • make sure you use the pop-up "File Explorer" window, to drill to the Marlin folder.
  • click on the "Select" folder button.
  • wait for about 2 seconds and all will be well

If you want to compare this Configuration.h with the current 2.0.9.2, visually, do this:

  • click on the "Split Editor" icon at the top-right of the VSC screen.
  • now you will see two copies of the same Configuration.h. Ignore this 2nd copy - let it be here for a while. You will close this later.
  • Click on the main menu option, File >Open File and look for the folder that keeps the 2.0.9.2 version of the Configuration.h. Select the 2.0.9.3 Configuration.h file.
  • this 2.0.9.2 Configuration.h would now be presented in this split window. You can move your cursor to the redundant 2nd Configuration.h file and click on the "x" to close it.
  • with this, you should be able to compare the 2.0.9.3 against the 2.0.9.2 for customised edit.
  • once you are done with the changes, close the Split Editor.

If you find that, for some reasons, the PlatformIO:Build icon has disappeared from the bottom-left status bar, do this. Righ-click on the status bar and select PlatformIO:Toolbar.

Contents Index
===========

A. Configuration.h
B. Configuration_adv.h
C. platformio.ini
D. pins_BTT_SKR_V2_0_common.h
E. Wiring of my existing Delta's Mechanical Endstops
F. Installation of the BTT ESP8266 ESP-12S Module
G. Compilation of BTT ESP8266-ESP-12S Wifi module [4MB]
H. ESP3D-WEBUI / ESP3D-2.1.1
I. How to upload firmware 2.0.9.3 to Anycubic Kossel Printer

A) Changes to Configuration.h
======================

line 33 #define ANYCUBIC_PROBE_VERSION 2 (default: 0)
line 39 #define ANYCUBIC_KOSSEL_ENABLE_BED 1 (default: 0)
line 107 #define MOTHERBOARD BOARD_BTT_SKR_V2_0_REV_B
line 118 #define SERIAL_PORT 3 (from 0 to "3", for Wifi module)
     - wifi won't work if reversed with SERIAL_PORT_2
line 140 #define SERIAL_PORT_2 -1 (enabled - for USB conection)
line 141 #define BAUDRATE_2 250000 (enabled)
line 155 #define CUSTOM_MACHINE_NAME "ANYCUBIC Kossel SKR2"
line 498 #define TEMP_SENSOR_0 5 (default)
line 507 #define TEMP_SENSOR_BED 5 (default)
line 798 //#define DELTA_HOME_TO_SAFE_ZONE (disabled)
     - disabled so that print head will not go down like 50mm after homing
line 814 #define DELTA_CALIBRATION_DEFAULT_POINTS 4 (No change)
line 849 #define DELTA_HEIGHT 293.33 (default: 320)
     - from manual Z-movement to bed check
     - should give 310.13 at LCD when Auto Home
line 959 #define X_DRIVER_TYPE TMC2209 (default: A4988)
line 960 #define Y_DRIVER_TYPE TMC2209 (default: A4988)
line 961 #define Z_DRIVER_TYPE TMC2209 (default: A4988)
line 970 #define E0_DRIVER_TYPE TMC2209 (default: A4988)
line 1069 #define DEFAULT_ACCELERATION 600 (from 3000)
line 1071 #define DEFAULT_TRAVEL_ACCELERATION 1000 (from 3000)
line 1139 //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN (disabled)
line 1317 #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -17.175 }
     - default was -16.80
line 1475 #define INVERT_Y_DIR false (from true)
line 1476 #define INVERT_Y_DIR false (from true)
line 1477 #define INVERT_Y_DIR false (from true)
line 1485 #define INVERT_E0_DIR false (default:true)
line 1693 #define AUTO_BED_LEVELING_UBL (enabled)
line 1702 #define RESTORE_LEVELING_AFTER_G28 (enabled)
line 1744 #define G26_MESH_VALIDATION (enabled)
line 1748 #define MESH_TEST_HOTEND_TEMP 230 (default:205)
line 1749 #define MESH_TEST_BED_TEMP 100 (default:60)
line 1777 #define ABL_BILINEAR_SUBDIVISION (left enabled)
line 1793 #define MESH_INSET 15 (default:1)
line 1895 #define Z_SAFE_HOMING (enabled)
line 1903 #define HOMING_FEEDRATE_MM_M { (35*60), (35*60), (35*60) }
     - (from 100*60,100*60,100*60)
line 2018 #define PREHEAT_1_FAN_SPEED 255 (from 0)
line 2021#define PREHEAT_2_TEMP_HOTEND 230 (from 240)
line 2022 #define PREHEAT_2_TEMP_BED 100 (from 110)
line 2024 #define PREHEAT_2_FAN_SPEED 0 (default)
line 2037 #define NOZZLE_PARK_FEATURE (enabled)
line 2163 //#define PRINTCOUNTER (disabled) -else out of memory during compiling
line 2254 #define SDSUPPORT (so that we can use the SDcard slot)
line 2261 //#define SD_CHECK_AND_RETRY (disabled) -else out of memory during compiling

line 2356 #define REPRAP_DISCOUNT_SMART_CONTROLLER (I am using the old stock Controller)

B) Changes to Configuration_adv.h
=========================

line 511 #define USE_CONTROLLER_FAN (enabled)
line 513 #define CONTROLLER_FAN_PIN FAN2_PIN (enable & set to FAN2_PIN. Default was -1)
     - this means I am using PB5. You can type in PB5 or FAN2_PIN
line 517 #define CONTROLLERFAN_SPEED_ACTIVE 190 (from 255)
     - I am setting about half-strength so that it is not too noisy (old fan)
line 519 #define CONTROLLERFAN_IDLE_TIME 20 (From 60)
line 611 #define E0_AUTO_FAN_PIN FAN1_PIN (Default: -1) (for Hotend FAN1, see line 620)
     - using FAN1_PIN instead of PB6 is easier to read
     - as FAN_PIN is default defined for FAN0 -Parts Fan BUT
     - make sure Cooling Fan Number in Cura is set to "0" otherwise no fan during print
     - I have an enclosure yet still need to enable 20% FAN0 else soggy printing.
     - COOLER_AUTO_FAN_PIN is for laser fan use only
line 1633 #define SDCARD_CONNECTION LCD
     - so that myRepRap Discount Controller can read the SDCard
     - otherwise it reads from the SKR2 board mSDCard!!
line 2801 #define E0_CURRENT 950 (FROM 800)

C) Changes to Platformio.ini
=====================

line 16 default_envs = BIGTREE_SKR_2

D) For pins_BTT_SKR_V2_0_common.h [folder: Marlin/src/pins/stm32f4]
=====================================================

Commented out line 41 "#define FLASH_EEPROM_EMULATION"
     - This causes Marlin to use back your internal SD card as the persistent storage, with the created file EEPROM.dat
     - just make sure you have an SD Card in yur SDCard slot at all times. You should be as that is where you keep your gCode files
     - otherwise, you will get "No eeprom" error message when doing M500 or "Store Settings"

I added #define Z_MIN_PIN Z_STOP_PIN below
line 128 //
line 129 // Z Probe (when not Z_MIN_PIN)
line 130 //
line 131 #ifndef Z_MIN_PROBE_PIN
line 132 #define Z_MIN_PROBE_PIN PE4
line 133 #define Z_MIN_PIN Z_STOP_PIN
line 134 #endif

E) Wiring of my existing Delta's Mechanical Endstops
===================================

Common and NC (default Anycubic 2017) wiring, therefore I am using GND/PC1(X), GND/PC3(Y), GND/PC0(Z) on the SKR 2.0 board

F) Installation of the BTT ESP8266 ESP-12S Module
======================================

Please refer to the SKR2_ESP8226_Delta github for installation steps.

Here: https://github.com/walterlootk/SKR2_ESP8226_DELTA

G) Compilation of BTT ESP8266-ESP-12S Wifi module [4MB]
=================================

Please refer to the SKR2_ESP8226_Delta github for installation steps.

Here: https://github.com/walterlootk/SKR2_ESP8226_DELTA

H) ESP3D-WEBUI / ESP3D-2.1.1
=================

Please refer to the SKR2_ESP8226_Delta github for installation steps.

Here: https://github.com/walterlootk/SKR2_ESP8226_DELTA

I) How to upload firmware 2.0.9.3 to Anycubic Kossel Printer
====================================

If you don't see the "PlatformIO:Build" tick mark at the bottom-left of the task bar, you have to load up the PIO Home page and create a new Project [+ New Project], making sure you use the pop-up "File Explorer" to drill to the Marlin folder. Remember, the correct Marlin folder is the one where you can see the "lib" & "src" folders.

First, compile the amendments you made to the Configuration.h, Configuration_adv.h and other dependant files, by clicking the "PlatformIO:Build" check-mark at the bottom-left of the VSC taskbar.

When there is no compilation errors, copy the "firmware.bin" file into your mSDCard. The "firmware.bin" file is located at >marlin-2.0.9.3>Marlin-2.0.x>.pio>build>BIGTREE-SKR_2.

Insert the mSDCard into the SKR2 motherboard mSD Slot and power up the Kossel.

If you get a [Ignore] or [Reset] prompt, click on the [Reset] and reBOOT the Kossel. All came out fine, with the Wifi Module up as well.

You do not need to re-install the Wifi firmware, since you have done it to the SKR2 at the previous 2.0.9.2 Marlin version.

Remember to do: M502, M500 or reset/init eeprom on display

J) Bonus
=======

If you made some changes to the bed or shifted the endstops, you can make changes to the Z-Probe Offset, old school way.
     - Do an Auto Home, and note the Z-Height value at the LCD
     - Take note of your Z-Probe Offset value. Example -16.80
     - If you are printing with ABS, set your bed temperature, e.g. 100C, first.
     - It is okay to let the nozzle remain unheated.
     - Without mounting the probe, lower the print head down >Motion >Axis >Z-Axis, until it tugs gently (not hard, almost loose) at your A4 paper.
     - If necessary, disable Soft Endstops, (from ON to OFF), to allow for the nozzle to go to negative value.
     - Take note of the Z-probe variance value from the A4 paper probing, e.g. -0.25
     - Do this calculation: (Existing Z-probe Offset) + (new Z-Probe variance value)
      => (-16.80) + (-0.25) = -16.85 [this is math, so the +/- signs is important]
     - Do a Store Settings.
     - Power off/power on the Delta, to be sure.
     - Finally, repeat this process(s) until you are satisfied
     - This is old school way, and you only do it once.

K) Enabling UBL
==============

Initially I had some problems. The MESH Print came out with two close spots above the center, unprinted. It is just not sticking. I solved it (through friends help):
     - Tightened the 4 screws (that hold the hotend securely) in place, as two of which had slightly loosen
     - Flipped the glass over, just in case I have a bad glass
     - Found out that it was actually caused by the Y & Z belts. Both are not guitar-string tight. Once tightened, no more sticking issue as well as the layer running with big gaps at certain times.
     - Use the LCD Step-byStep UBL guide instead of just issuing all the associated G29/G26 commands as per Youtube guide. This forces the printer to prime out a long filament trail and it helps to clear the nozzle beautifully, thus printing a fuller MESH instead of a skinny MESH.
     - TAKE NOTE: The Manual Priming (from the LCD), although automatic, will continue to prime out the filament UNTIL you click the knob to stop it!!
     - Also, before you click on the Validate MESH, please put in your sticky stuff on your bed, if you need to. Pre-heat your bed, if you need to. And, by now, you should have removed your PROBE, if there is a need to, like mine.
     - I also did not include the G29 L1 code into the Cura printer Start Code. The printer knows that it has already been activated.
     - The few times I use the Wifi Module to issue commands are for G29 T (list the table), G29 S1 and M500 (no need for these two commands as this storing handled in the LCD as well.

L) Visual Source Code
==================

If you have previously installed VSC and suddenly, due to installation of a new program or there was a mishap with your computer, you can try the following to get your projects in
     - Click on File > Open Folder
     - Drill down to the Marlin folder - the one that doesnot contain the SRC and LIB folders, and click the Select folder button.
     - Your previously working project(s) will come back to live.