Artillery Sidewinder X2 - Marlin 2.0.9.3 Firmware + TFT Firmware dated 4-01-2022

Artillery Sidewinder X2 - Marlin 2.0.9.3 Firmware + TFT Firmware dated 4-01-2022

Description

<h1>Artillery Sidewinder X2 Custom Marlin 2.0.9.3 + TFT Firmware </h1> <b>(different themes available) Build/Source date: 4-01-2022</b> <b>CREDITS:</b> Firmware for Artillery Sidewinder X2 (SWX2) compiled from latest Marlin 2.9.0.3 sources. Including also optimized TFT Firmware. Both sources dated 4-01-2022. Both optimized and added special sauce and tweaks to it too. Courtesy of Marlin https://marlinfw.org (Mainboard firmware for the Artillery_Ruby Mainboard) Artillery (adjustments and commits for Ruby Mainboard) and Bigtreetech https://bigtree-tech.com (TFT Firmware). STM32Cube Programmer -- Copyright STMicroelectronics All rights reserved. https://www.st.com/content/st_com/en/about/st_company_information/who-we-are.html Pronterface/Printrun -- Copyright (C) 2011-2020 Kliment Yanev, Guillaume Seguin https://github.com/kliment/Printrun Compiled from sources found here: https://github.com/MarlinFirmware/Marlin/ https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware For Marlin including cherry picked commit https://github.com/MarlinFirmware/Marlin/issues/23393 https://github.com/MarlinFirmware/Marlin/pull/23446 Initial settings taken tweaked and ported from the SWX2 Firmware blob, posted by Artillery: https://github.com/artillery3d/sidewinder-x2-firmware Special thanks and credits for flashing guide in STM32Cube Programmer goes to "mjrama" and "MasterBPM". Credits go to "digant" for beeing a "spark" that ignited my interest to start developing firmwares, investigating the SWX2 issues etc. Also for his big contribution in the TFT Firmware development. For link to his page incl. donation page please scroll to the bottom. <h2><b>FIRMWARE INFORMATION:</b></h2> Special tweaks -- besides the ones that are required by the new TFT firmware to be fully functional (it is A LOT and some really important ones --- but since these are "standard" for the new TFT firmware to fully function --- will be listed at the end instead of at the beginning). All changes to default (or parameters which I though are viable) have been commented with //SoniC (my nickname Since 2005 or so, PrEzi was before that). Special Tweaks besides the "TFT Tweaks" : -EEPROM Storage enabled incl. EEPROM autoinit on first boot after flash. -Homing feedrate tweaks -Z Safehoming enabled -Unified bed leveling enabled with finer 7x7 grid if you want to switch to a different method -- switch between mesh bl and ubl in config.h Lines 1554-1558 -Detailed logging of G28, G29 and other leveling features -- as the new Mainboard has now more mem and more powah - why not -Restore Leveling after G28 -Repeatability test for BLTouch clone enabled -Increased probing to 3 with extra probing step 1 - means more accurate bed leveling and discards one result from 3 that is way above the rest -- further increasing accuracy -S_Curve acceleration enabled, experimental S_curve acceleration also enabled -Linear advance enabled and set to K=0.13 -Tuned the acceleration values taken from Artillery -Since I tweaked the heatbreaker I have also risen the max safe temp to 300 (if you have all stock you can either revert it back or just stay below 260 degrees Celsius. Config.h line 558) -LED Test enabled at the start Tweaks required for the TFT to be functional + additional tweaks for extended features : General options which MUST be activated: -EEPROM_SETTINGS (in Configuration.h) -BABYSTEPPING (in Configuration_adv.h) -AUTO_REPORT_TEMPERATURES (in Configuration_adv.h) -AUTO_REPORT_POSITION (in Configuration_adv.h) -M115_GEOMETRY_REPORT (in Configuration_adv.h) -M114_DETAIL (in Configuration_adv.h) -REPORT_FAN_CHANGE (in Configuration_adv.h) Options to support printing from onboard SD: -SDSUPPORT (in Configuration.h) -LONG_FILENAME_HOST_SUPPORT (in Configuration_adv.h) -AUTO_REPORT_SD_STATUS (in Configuration_adv.h) -SDCARD_CONNECTION ONBOARD (in Configuration_adv.h) Options to support dialog with host: -EMERGENCY_PARSER (in Configuration_adv.h) -SERIAL_FLOAT_PRECISION 4 (in Configuration_adv.h) -HOST_ACTION_COMMANDS (in Configuration_adv.h) -HOST_PROMPT_SUPPORT (in Configuration_adv.h) Options to support M600 with host & (Un)Load menu: (Options to support dialog with host as pre requisite) -NOZZLE_PARK_FEATURE (in Configuration.h) -ADVANCED_PAUSE_FEATURE (in Configuration_adv.h) -PARK_HEAD_ON_PAUSE (in Configuration_adv.h) -FILAMENT_LOAD_UNLOAD_GCODES (in Configuration_adv.h) Options to fully support Bed Leveling menu: -Z_MIN_PROBE_REPEATABILITY_TEST (in Configuration.h) -G26_MESH_VALIDATION (in Configuration.h) (in Configuration.h) -Z_STEPPER_AUTO_ALIGN (in Configuration_adv.h) <h2><b>COMPILING AND FLASHING:</b></h2> Since I haven't found a possibility to cleanly compile & flash the firmware via Visual Studio Code + Platformio in ST-Link mode (compiling alone is fine, compiling&flashing - even with hardcoded paths to st-files fails) there is a need to compile in VS Studio Code as usual and use the STM32 Programmer since the DFU mode in VSCode + Platformio doesn't seem to work too... If you mess things up - no worries -- the bootloader on Ruby should be still accessible - get access to the mainboard and place a jumper on the Pins described as "3.3V and BOOT". Then attach the USB cable and the Bootloader should be accessible for you to reflash the DFU-Version of the Firmware (reverting to stock via this mode is also possible -- compiled firmware on the Artillery website). No need to turn the external power on - the board will be powered from the USB Port. Further instructions and flashing guide - I have incluided a pre-compiled version of the Firmware -- ready to be flashed in STM32 Programmer under "COMPILED" directory. Flash instruction: Obviously if you want to flash the "combo" (TFT + Mainboard) then start with the TFT (download the TFT package). <h3><b>TFT:</b></h3> In order to upgrade the TFT Firmware to the newest Bigtreetech version from 4-01-2021 you need to have a MicroSD card (max 8GB) formatted as FAT32. If you have a bigger card just create a smaller FAT32 partition. Then put on the ROOT of the SD card the MKS directory, config.ini and MKSTFT28.bin Choose whichever THEME you want and copy both bmp and font directories from the respective Theme into the MKS dir. If you want to switch from the default language (eng) copy one of the language files in Language Packs directory also to the ROOT of the SD card. Then turn off the printer, put the SD card into the slot and power it on. You will see booting, upgrading fonts then upgrading images (various images of the respective theme flashing on the screen). Once the TFT firmware is upgraded there should be a sound and a normal graphical Marlin Menu should appear. In order to connect TFT to your printer you might want to go into Menu - connection settings and modify the connection speed (try 115200 and 250000). Once the TFT connects there should be a sound. Please note that after upgrading the Mainboard Firmware the speed is set to 115200 and you need to redo this again. If you also want to upgrade the mainboard firmware (with power coming only via the USB cable) to the newest Marlin you should always go into the TFT Menu then under Connections click on Disconnect ---- this disconnects physically the TFT from the mainboard (not sure about SWX2 but in SWX1 TFT and Mainboard shared the same connection and there were problems with flashing the mainboard firmware when TFT was still connected --- like I've said - not checked if this is also the case with SWX2 but it doesn't hurt, right?). Of course if you apply the "combo" (TFT + Mainboard) then start from TFT first. If you want to replace the Sidewinder X2 logo during boot with the "old" Bigtreetech one then go to the bmp folder, delete the "logo.bmp" and rename "logo_BTT.bmp" into "logo.bmp". <h3><b>MAINBOARD:</b></h3> --Download and install STM32CubeProgrammer (includes drivers) from https://www.st.com/en/development-tools/stm32cubeprog.html (you can register for free) --Install and allow the drivers to be installed too. --Turn the printer off (no need for external power source as we get it via USB) --Connect your printer via USB --Download and open Pronterface (Printrun) which can be downloaded e.g. from here : https://github.com/kliment/Printrun/releases/tag/printrun-2.0.0rc8 --Check under which port the Serial device was installed (COM Port might vary) --Connect with Pronterface and the specific port with baud speed 115200. --Type M997 in the console and send the command to the printer. --Ignore the error messages and disconnect pronterface from the printer. DO NOT disconnect USB, we aren't done yet. --Look again in the device manager and look for "STM32 BOOTLOADER" this time. --If you don't see it --- you have an older version and you need to do the jumper trick to force the mainboard into the Bootloader/DFU mode. Read further on what to do. --If you see the bootloader in device manages / usb-devices then start the STM32 Cube Programmer, switch from "ST-Link" to "USB" (which is actually DFU mode) and click on connect. --If everything went fine you will see some hex/ascii code read and displayed left --- this is your current firmware. If you want to save/backup it - click on "Read" and "save as" - save your backup somewhere. --Then switch from "device memory" to "open file" and point to the "SWX2_2903_firmware_DFU.bin" under "COMPILED" (or point to your firmware compiled from the sources). --Click on "Download" to trigger the flashing of your mainboard with the new firmware. --After a while you should get a popup "File download complete" --- click on "OK", click on "disconnect" and remove the USB Cable. --IF you needed a jumper -- this before powering the printer back on - remove the jumper. --If you flashed it without the necessity to use the jumper - you are done and can proceed with configuring the Firmware --- first perform an EEPROM reset --- if you already have custom TFT Firmware -- either by going into menu/commands -- EEPROM defaults, then EEPROM Save - or by issuing the M502 command ( restore EEPROM defaults) followed by M500 (Save to EEPROM). --Proceed with PID Tuning, Bed Leveling and other calibration steps. <b>JUMPER Method </b>to force the Mainboard into DFU/Bootloader mode (or after a broken flash): --Open the bottom and place a jumper on the two pins described as "BOOT" and "3.3V". --Connect the printer via USB only to your PC, if the correct STM32 drivers are installed (included in STM32 Cube Programmer) the STM32 Bootloader device should be visible in the device manager. --Proceed to flashing using STM32 Cube Programmer described above. Last but not least ---- support will be available and I will check the comments daily and I will "try" to help you out, but I need to repeat it clearly --- you are doing it on your own responsibility and I won't accept any blame if something goes wrong. For me it works perfectly. You need a little bit of knowledge in any case -- flashing --- a little, --if you want to modify the source -- a lot more, --You NEED to use Visual Studio Code with PlatformIO Extension to compile. Forget about ArduinoIDE, PERIOD. If you don't know how to use MS VSC + Platformio and how to set it up - before starting to ask questions here - LEARN from various YT tutorials. I am not here to school you through VSC. <b>Enjoy und viel Spaß meine lieben! Frohes neues! Szczesliwego nowego Roku! Oh! and if you remix and or modify my files in any way and post them -- please also give credits where due !!! //SoniC vel PrEzi </b>

Statistics

Likes

2

Downloads

0

Category

3D Printers