Artillery Genius/Sidewinder X1 Feature Loaded *REAL M600* Enabled Firmware G2 v1.3.96 ("fast:" babystepping and ADVANCED_OK)

Artillery Genius/Sidewinder X1 Feature Loaded *REAL M600* Enabled Firmware G2 v1.3.96 ("fast:" babystepping and ADVANCED_OK)

thingiverse

Artillery Sidewinder TFT firmware G2 Beta v1.3.x. This is NOT an emulation, but true M600 with filament runout on the TFT and through Octoprint. This is a beta release, alpha release will be 1.4.0 and will be the designation once it is established that everything is running smoothly. Let me know if you find any bugs. And check back for newer versions if you have a bug, I repair them quickly Now enabled with line number checksum and ADVANCED_OK support for Marlin. This should improve the accuracy and speed of printing. Also new, the fastest babystepping in the West (it jumps the command buffer in Marlin with a universal EMERGENCY_BYPASS feature, but not the planner buffer- that will be a later version) and there is a new M411 to empty to Marlin command buffer on print cancellation. Please support my YouTube channel! M600 feature video about how I pulled it off: https://www.youtube.com/watch?v=HJpfO8XifqI&t Installation and Setup Guide with a brief walk through of features: https://youtu.be/Fp-cJR8ta9s Discord for up to date bugfix and feature discussions: https://discord.gg/jDvYhaN Patreon: https://www.patreon.com/PrintEngineering Single Donation: PayPal.Me/G2Engineering 1.3.92 and later Install Instructions: Prior to installation, make sure the correct USB drivers are installed (CH340, included in the download). If Windows does not automatically find the correct driver, the included files go into the "windows\system 32" folder. Then update the driver of the com port associated with the printer under the Ports category of your Device Manager. STEP 1: Unzip package and run Marlin-ArtilleryX1_2.0_Devel\Marlin\Marlin.ino . You may need to download Arduino IDE for this step (https://www.arduino.cc/en/main/software). You should make sure the correct board is configured in the Tools menu: Board: "Arduino Mega or Mega 2560", Processor: "ATmega2560 (Mega2560)", Programmer: "AVRISP mkII", Port: {select your COM port here}. You may instead use Visual Studio Code if you are comfortable with that process. STEP 2: Look for the Artillery Options header around line 42 of Configuration.h. Below you will see options for defining automatic bed leveling, Nozzle To Probe Offset, the BMG extruder, Nova hotend, 104gt2/Hisens 3950 thermistor, whether or not you have a Genius, or whether to use S Curve Acceleration. Comment/uncomment out accordingly (lines beginning with // are commented out and will be disabled). STEP 3: Make sure USB is disconnected and Compile Marlin (Checkmark Icon at the top). STEP 4: While Marlin is compiling, open the printer case and disconnect the two-wire red/black RESET cable between the TFT and mainboard. Once this is disconnected you will no longer need to open the printer to flash. Leave the gray 4-wire ribbon cable attached. OPTIONAL: To use the advanced RESET feature set you will need to move the RESET wire from the white connector on the TFT to the set of 3 pins labeled "B0", right next to the original location of the filament runout sensor. The black side of the connector faces the pin labeled B0 and the red side goes on the middle pin labeled GND. For users who do not move the filament runout sensor to the main board you may have to shave the protrusions from one or both connectors to fit them next to each other at the same time. Be careful not to bend the pins too far! NOTE: For Older Sidewinder X1 (V1-V3) without the reset button, ignore this step and follow the remaining steps precisely. Do NOT unplug the TFT ribbon cable during flashing. STEP 5: Move the filament runout sensor (cable with three white wires) from PB1 on the TFT to the X max endstop aka D2 (orange connector labeled X+) on the mainboard. It aligns correctly with the shape of the connector in the same direction as the X, Y, and Z endstop connectors next to It. You may have to remove some hot glue to get the connector seated. Genius users and recent Sidewinder owners may have to extend the wires to the runout sensor! If you are using a BL Touch the wire to the original Z endstop has been reported to work as a wire extension. Also if you are using BL Touch, upon uncommenting BLTOUCH it will be defaulted to the same wiring configuration as Waggster Mod. You may also comment out WAGGSTER_MOD_WIRING to use the Z- connector - where the factory Z endstop was connected. This is an option in the Artillery Options section of Configuration.h. You may now fully reassemble the printer. NOTE: There is experimental support to skip this step. The TFT emulates the filament runout event on the main board by calling an M600 U0 L0, and in theory with line number checksum running on Octoprint, there should be no lost gcode lines from the interruption. But there is a small risk that an interrupted line may be interpreted as a rouge command, *usually* this type of corruption manifests as an M0/M1 pause which you can recover from. STEP 6: Unzip mkstft28.bin from mkstft28_g2_v1.3.xx.zip, and the "bmp" and "font" folders from the respective subfolders for the icon set you prefer in "icons and fonts.zip" directly to an SD card, put it in the printer and RESTART. STEP 7: Go to Menu->Settings->FLASH FW. The screen will say "You can now FLASH Marlin." STEP 8: Plug in USB and click Upload in Marlin ("->" Right Arrow Icon at the top). MAKE SURE YOU HAVE DISCONNECTED THE RED/BLACK WIRES FROM THE TFT BEFORE TRYING TO FLASH! If you have issues uploading, sometimes unplugging the USB cable and reconnecting it resolves connection issues. STEP 9: Touch the screen to exit the Disconnect menu and click "Confirm" to automatically load default firmware settings with M502 and save with M500. STEP 10: Go to Menu>Settings>Features and toggle the features for your particular setup: Sidewinder/Genius ABL/Manual Mesh, 285 MAX/375 MAX hotend temperatures. STEP 11: PID Tune the Hotend and the Bed. A dialog should prompt you to do a full PID tune of the hotend and bed the next time you load the Status screen. If it does not appear, or you ignore the dialog, you can navigate to the Custom Gcode menu and run both PIDTUNE H and PIDTUNE B at any time. Failure to PID tune before printing may cause "Printer halted. kill() called!" errors upon heating. You’re done! NOTE: You do not have to include the "bmp" and "font" folders every time you update the TFT firmware, only when the ICONS are mentioned as being changed. You do not have to update Marlin every time you update the TFT firmware, only when MARLIN is mentioned as being changed. A few things to look out for: *The motor steps are adjustable through the TFT but the process is very annoying right now. It will be fixed soon. *Marlin has been updated, and the TFT firmware has gone through MAJOR changes this month. *Marlin 2.0.6 is fully merged and works fine with the exception of UBL, therefore BILINEAR bed leveling is defined if using a probe. Feel free to experiment with the configuration and let me know if you get it working. 1.3.96 EXPERIMENTAL, G2: More playing with USART baudrates and CPU MHz for wider compatibility with USB drive sync, particularly with cheapo drives. 72MHz and 960K USART Baudrate. *TFT - 1.3.96 MARLIN - (last changed working on 1.3.94) ICONS - 1.3.47 1.3.95 EXPERIMENTAL, G2: More playing with USART baudrates and CPU MHz for wider compatibility with USB drive sync, particularly with cheapo drives. 48MHz and 960K USART Baudrate. *TFT - 1.3.95 MARLIN - (last changed working on 1.3.94) ICONS - 1.3.47 1.3.94 G2: experimental insurance against invalid Y position causing over extension of Y axis on print cancel. USB read retry attempts lowered from 10k to 1000. Occurrences of U Disk replaced with TFT USB. *TFT - 1.3.94 MARLIN - (last changed working on 1.3.94) ICONS - 1.3.47 1.3.93 G2: MARLIN PATCH ONLY for TMC22xx compatibility TFT - 1.3.93 *MARLIN - (last changed working on 1.3.94) ICONS - 1.3.47 1.3.93 G2: PID tuning from one point in the program was only running fan at 200/255. Now all PID tunes will run at full fan. *TFT - 1.3.93 MARLIN - (last changed working on 1.3.91) ICONS - 1.3.47 1.3.92 G2: This version the display runs faster! USART 256k baud, unmount() on leaving print menu, clock speed raised from 48MHz to 56MHz. This also addresses some USB drive timing issues on some systems. Due to Marlin and the TFT bin increasing in size the total package has become too large to upload to the Discord #version-history channel, so icons and fonts will now be zipped separately, as they do not change frequently and so rarely need to be updated. *TFT - 1.3.92 MARLIN - (last changed working on 1.3.91) ICONS - 1.3.47 1.3.91 G2: Backend cleanup to Marlin to fix PID tune unexpected behavior. There were actually a few code fragments from prior experimentation that should not have been there. TFT firmware improves print cancel routine by saving babysteps even when print is cancelled with the RESET feature. This version of Marlin says bugfix-2.0.x again, but I guess that is still the latest release because it was updated after 2.0.6. *TFT - 1.3.91 *MARLIN - (last changed working on 1.3.91) ICONS - 1.3.47 1.3.90 G2: Backend changes to Marlin and a few changes to the PID autotune routine. Some previous experimental changes to Marlin were causing unpredictable behavior. Also, M117 and M118 were having trouble parsing echoes with capital 'G' in them. I tweaked that while I was poking around. *TFT - 1.3.90 *MARLIN - (last changed working on 1.3.90) ICONS - 1.3.47 1.3.89 G2: 1.3.89 This version has an optional hardware configuration change. This brings new features and capabilities. It allows us to recover from "Error:Printer Halted. kill() called!" through a pop-up dialog. It also resets the mainboard upon booting the TFT, so the original reset button functionality will be restored. It is also experimentally being used in the event of a print cancellation to immediately halt all moves, heating cycles, and other waiting states. This modification will be reverse compatible so it is completely optional. It will involve using the RESET wires that were previously removed during installation. These wires will now be plugged into the PB0 port of the TFT, right next to the original location of the filament runout sensor. The black wire connects to the pin labeled PB0 and the red wire connects to the middle pin labeled GND. It may be challenging to plug both connectors in next to each other, so for users who have not moved the runout sensor and would like to utilize this new functionality, you may have to shave the protrusions from one or both connectors so they can be in close proximity. Changes to the manual leveling menu behavior for Manual Mesh users. The Z offset and Mesh will be disabled upon entering the menu and IF you visit all 5 points then the original Z offset will NOT be restored! Pause behavior is corrected for Genius users. PID tuning behavior is changed for full fan speed at 225C. USB drive behavior for exiting and reentering the print menu is improved. Installation instructions have changed! "OPTIONAL: To use the advanced RESET feature set you will need to move the RESET wire from the white connector on the TFT to the set of 3 pins labeled PB0, right next to the original location of the filament runout sensor. The black side of the connector faces the pin labeled PB0 and the red side goes on the middle pin labeled GND. For users who do not move the filament runout sensor to the main board you may have to shave the protrusions from one or both connectors to fit them next to each other at the same time. Be careful not to bend the pins too far!" Marlin 2.0.6 is now the official packaged release! Marlin 2.0.6 has not been changed since the last time it was uploaded, so if you are already running the 1.3.87 second release there is nothing to update for now! *TFT - 1.3.89 *MARLIN - (last changed working on 1.3.89) ICONS - 1.3.47 1.3.88 G2: A few minor changes to the print cancel/exit routine to help with reading the USB drive again after a cancelled print. One user reported this issue and I have been unable to replicate it with this version. I do not know if this solves his issue. *TFT - 1.3.88 MARLIN - (last changed working on 1.3.88) ICONS - 1.3.47 1.3.87 BLTOUCH CONFIG PATCH, G2: Significant performance upgrade. Another whack at fixing the Restart feature. An icon glitch in the Heat menu was fixed. Maybe some other stuff. Config changes in Marlin for SKR. And more changes in Marlin for Manual Mesh users. JD_HANDLE_SMALL_SEGMENTS is enabled in this version of Marlin and seems to run fine with the new performance upgrades. PATCHED DUE TO CONFIGURATION.H TYPO AFFECTING BLTOUCH USERS!! *TFT - 1.3.87 *MARLIN - (last changed working on 1.3.87) ICONS - 1.3.47 1.3.86 G2: PID tune dialogs were not redrawing the Custom Gcode menu after being clicked. System BUSY warning displayed until PID tune completes (UNTESTED). *TFT - 1.3.86 MARLIN - (last changed working on 1.3.81) ICONS - 1.3.47 1.3.85 G2: Added PID tune dialog to option for tuning BOTH or just H: ONLY/B: OLNY upon clicking either from the custom Gcode menu. *TFT - 1.3.85 MARLIN - (last changed working on 1.3.81) ICONS - 1.3.47 1.3.84 G2: Untested attempt to stabilize fan menu behavior. Full PID tune should do both PID tunes now. *TFT - 1.3.84 MARLIN - (last changed working on 1.3.81) ICONS - 1.3.47 1.3.83 G2: Display of "Bed 65" label repaired. Compatibility update for UART enabled motor drivers which display echos that confused the TFT causing wrong XYZ positions to display. *TFT - 1.3.83 MARLIN - (last changed working on 1.3.81) ICONS - 1.3.47 1.3.82 G2: I set it to raise to Z4 upon leaving both the leveling and offset menu, and to Z5 upon entering the offset menu, and between each of the 5 leveling points. An attempt was made to prevent hanging up upon canceling and restarting a print(untested). annoying popups during booting for some users should be muted. Fan speed display more robust. Cura LAYER: number display more robust. I also forgot to mention in the last version that the terminal no longer displays "Rcv:", it now uses ">" to better utilize out small displays. "Send:" is still displayed. Extrude menu had some discrepancy in the distance extruded, it should be fixed now. *TFT - 1.3.82 MARLIN - (last changed working on 1.3.81) ICONS - 1.3.47 1.3.81 G2: Overhaul of Manual Mesh Z offset in Marlin to make it actually functional and correct babystepping in Manual Mesh which was moving at twice the rate expected. simplified offset menu to eliminate homing moves made unnecessary by Marlin changes. Fixed maxtemp getting stuck at 255. Changed default temperature jump from 0 to 140 instead of 160. some minor SKR13 config changes (SKR13 still has M600 dialog problems, it should be fixed by a dialog renovation this week). Hotend idle timout is now 10min instead of 5. Artillery Option added to disable LED by defining DISABLE_LED with BLTOUCH due to some users reporting hardware conflicts.Marlin must be updated. *TFT - 1.3.81 *MARLIN - (last changed working on 1.3.81) ICONS - 1.3.47 1.3.80 G2: Minor backend changes to the implementation of M290. If you are using 1.3.78 or 1.3.79 there is no reason to install this as it is functionally the same UNLESS you are using an unmodified version of M290 and ABL enabled, then this version may improve the display babystep and offset values. Enhanced M290 is required for Manual Mesh users. *TFT - 1.3.80 *MARLIN - (last changed working on 1.3.79) ICONS - 1.3.47 1.3.79 G2: Minor backend changes to M290 and it's use. If you are using 1.3.78 there is no reason to install this as it is functionally the same. This is just the form of the code that will be used going forward. *TFT - 1.3.79 *MARLIN - (last changed working on 1.3.79) ICONS - 1.3.47 1.3.78 G2: Loop created by M999/STOP ERROR dialog repaired. Work on Manual Mesh version of the babystepping menu to display changes and make changes persistent. Added a script to fake Manual Mesh Data when an error for Invalid Mesh appears. I think you are responsible enough to decide if you need to set the Mesh... Other small revisions. Watch for the z offset to get higher the next time you print after adjustment. Let me know if that happens so I can rethink my approach. Modified M290 in Marlin to change Z offset with Manual Mesh and echo Z offset and Z probe offset with every change. Babysteps now also change the z offset with Manual Mesh. The entire babystepping process has been greatly simplified by the new features. So has the offset menu which has also been redone. Presenting the bed only occurs on a cancelled print and not a completed one now. M290 has been modified in Marlin and the changes are required for proper offset and babystepping operation. *TFT 1.3.78 *MARLIN (last changed working on 1.3.78) ICONS - 1.3.47 1.3.77 G2: Corrected Z offset menu display with ABL. Added default start print speed of F3000 for slicers who fail to set a speed at the beginning of a print (eliminates painfully slow moves). Updated Marlin 2.0.6 to ABL *TFT - 1.3.77 MARLIN - (last changed working on 1.3.75) ICONS - 1.3.47 1.3.76 G2: Added support for allowing the use of 'R' parameters in M109 and M190. Connection patch for using different Marlin without ENHANCED M155. *TFT - 1.3.76 MARLIN - (last changed working on 1.3.75) ICONS - 1.3.47 1.3.75 G2: Babystepping is fixed. Changes to the print parser that correct the unintentional blocking of certain M104/109 commands with 'T' parameters. The parser is significantly changed, so be careful and test it out with a few small prints. I ran a few myself and have not seen any problems so far. The gantry rising with each cancelled print should be fixed. SKR14 config updates. Other changes to marlin in the EMERGENCY_BYPASS feature. After chasing a ghost bug for several hours I am not sure what, if anything I changed for that feature, but it works now (the problem was in the TFT firmware - huge waste of time). *TFT - 1.3.75 *MARLIN - (last changed working on 1.3.75) ICONS - 1.3.47 1.3.74 G2: M600 dialog behavior repair, potential freezing issue during printing addressed *TFT - 1.3.74 MARLIN - (last changed working on 1.3.73) ICONS - 1.3.47 1.3.73 G2: Connection protocol repair to prevent repeating connection attempts. Yet another Marlin filesync issue repaired. Hopefully the current files are where they need to be now. This patch affects "fast:" babystepping performance. *TFT - 1.3.73 *MARLIN - (last changed working on 1.3.73) ICONS - 1.3.47 1.3.72 G2: Probe Offset behavior changed for Manual Mesh users. Center of the bed is now the probing position. Slow movement is fixed. Automatic leveling method detection repaired. *TFT - 1.3.72 MARLIN - (last changed working on 1.3.71) ICONS - 1.3.47 1.3.71 G2: "Settings Stored" was not displaying in recent versions. That is fixed here. The EXPERIMENTAL designation seems ok to lift, but stay cautious for a few more versions. Marlin was last changed on the last version with a supplemental update named mkstft28_1.3.70__EXPERIMENTAL_SKR14_and_TMC2208_support_added.zip, not the original upload. *UPDATE:* some recent Marlin changes got lost in File transfer, a patch was released. *TFT - 1.3.71 MARLIN - (last changed working on 1.3.70) ICONS - 1.3.47 1.3.70 EXPERIMENTAL, G2: Addressing some compiler issues with Marlin on some systems. Minor changes to TFT firmware that will ease in debugging. Added compatibility for systems that are incompatible with the new EMERGENCY_BYPASS feature in Marlin (SKR 1.4 Turbo for example). Marlin is changed. *UPDATE SKR 1.4 Turbo and TMC2208 support added to Artillery Options section (untested). *TFT - 1.3.70 *MARLIN - (last changed working on 1.3.70) ICONS - 1.3.47 1.3.69 EXPERIMENTAL, G2: Minor annoyance fix. Print Complete! indicator implemented alongside Print Cancelled... indicator that would display upon successful print completion in 1.3.68 *TFT - 1.3.69 MARLIN - (last changed working on 1.3.68) ICONS - 1.3.47 1.3.68 EXPERIMENTAL, G2: More stability fix. Improvements to print/cancel/restart behavior. Improvements to EMERGENCY_BYPASS processes. Marlin is changed. *TFT - 1.3.68 *MARLIN - (last changed working on 1.3.68) ICONS - 1.3.47 1.3.67 EXPERIMENTAL, G2: More stability fix. Faster babystepping with the new EMERGENCY_BYPASS feature I have created in Marlin: /** * Universal Emergency Command Parser * * Add a low-level parser to intercept ANY command as it * enters the serial receive buffer, so it cannot be blocked. * Precede and end any gcode line with '!' to bypass all commands * currently in the buffer. ex. "!M290 Z0.1\n!M290\n" * Each command in a stacked line must begin with '!' to be processed. * If you overlflow the EMERGENCY_BYPASS_QUEUE_SIZE new commands will be ignored. * Wait for "ok" to send again if you overflow. */ *define EMERGENCY_BYPASS *define EMERGENCY_BYPASS_QUEUE_SIZE 5 Also new is an M411 command to empty the command buffer in Marlin (untested). With this version we have changed Marlin base code to the Bugfix 2.0 main branch (not well tested). This custom version of Marlin is mandatory for proper operation of the TFT. *TFT - 1.3.67 *MARLIN - (last changed working on 1.3.67) ICONS - 1.3.47 1.3.66 EXPERIMENTAL, G2: Terminal screen is cleared after every command. Print/Stop/Pause behavior is improved and a current topic of attention there may be more changes coming. other recent versions gave the impression of freezing up as the display would wait for commands to finish before doing the next action, which could take awhile. Now a busy indicator appears instead. *TFT - 1.3.66 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.65 EXPERIMENTAL, G2: Percent flow/speed are now correctly populated from marlin at the beginning of the print (fan is not and defaults to 0). A bug in the checksum algorithm has been fixed. Cancel from BUSY MODE *should* merely cancel the print instead of halting the printer now. Stability update. We may lose the experimental label after this. *TFT - 1.3.65 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.64 EXPERIMENTAL, G2: Print Pause is now more responsive. Terminal echo: is repaired. *TFT - 1.3.64 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.63 EXPERIMENTAL, G2: print restart after manual stop feature added. *TFT - 1.3.63 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.62 EXPERIMENTAL, G2: more print process improvement. New Restart feature was not displaying icon last version. When raising temperature from 30C or less in the heat menu, the first target temperature is 160 because who wants to push the button 100x. The default denomination is now 10 instead of 5. *TFT - 1.3.62 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.61 EXPERIMENTAL, G2: UNTESTED ATTEMPTS AT: backend cleanup. stability update. echo not showing in terminal fix. print waiting for queue to empty before wuittign print. stalling at end of print (different bug). *TFT - 1.3.61 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.60-1.3.56 EXPERIMENTAL, G2: 60) Restart feature added to allow printing another copy of the same print with a single button press without leaving the printing menu. The print end behavior is changed and now displays back instead of stop at the end of a print, and back takes you to the main status screen. 59) Fix for end of print file read fail. 58) Buffer overflow fix that could cause hanging during or at the end of print. 57) Fix for Prusa Slicer comment bug that causes extra long stacked lines causing issues with the TFT firmware. Double display of Send: commands in gcode terminal is fixed. 56) Typo was causing secondary command buffer overflow. Stability fix. *TFT - 1.3.56-1.3.60 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.55 EXPERIMENTAL, G2: Filament Runout for the stock wiring configuration is reenabled. more bugfix for the checksum algorithms. And another overhaul of the parser. Some strange random behaviors in recent versions may be addressed. Babystepping is improved. The echo: dialogs no longer display improperly formatted characters or long messy strings. some annoying dialogs have been muted. improvements to speed/flow/fan menus (though more needs to be done). fan/temperature control might work while printing under the new system (not fully tested). Checksum doesn't seem to fail anymore so, after a week of bad versions it is probably usable now. But... it might have glitches to work out that at least so far it seems to recover from. If so, I will iron them out in the next few version. This version is capable of a top speed of 50 commands/sec. *TFT - 1.3.55 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.54 EXPERIMENTAL, G2: another bugfix for the checksum algorithms. And another round of bugfix and improvement to the parser. The saveEEPROM icon should display now. *TFT - 1.3.54 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.53 EXPERIMENTAL, G2: I just basically rewrote the incoming gcode parser to make it far faster and more efficient and took a whole new approach to keeping track of the commands that have been sent. Preliminary testing is promising. All of the new features seem to be working well! *TFT - 1.3.53 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.52 EXPERIMENTAL, G2: Minor annoyance issue fixed with M600 dialogs. It looks like Marlin behavior has changed a little bit with host prompt support. This should make for a better user experience. Current Versions: *TFT - 1.3.52 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.51 EXPERIMENTAL, G2: This should take care of the occasional hanging up on checksum error. The original ring buffer was never meant to go backwards and did not support negative numbers. Now that we have line correction and can resend old commands we need to be able to go negative occasionally during math operations. M600 commands could not force their way past the new checksum protocols in the last version, so provisions have been added for that. Current Versions: *TFT - 1.3.51 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.50 EXPERIMENTAL, G2: Another failure contingency added. A checksum error could lead to a stalled print. This is sort of a garbage patch but hopefully it works until I can dig deeper. Current Versions: *TFT - 1.3.50 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.49 EXPERIMENTAL, G2: In 1.3.48 there was the potential for a serial communication error *from Marlin to the TFT* to interrupt the checksum recovery process and fail the print. I have added contingencies so that it will retry in that event. Current Versions: *TFT - 1.3.49 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.48 EXPERIMENTAL, G2: There was a math error in the checksum algorithm that would lose track of what command to go back to in the event of a checksum error. I think it is fixed. 1.3.47 was available for about 20min before I found the problem. No known downloads. Additionally in the description to 1.3.47, the entire incoming gcode parser had had a medium scale renovation. It should be faster and more reliable. I would like to optimize it more later. Make sure you update Marlin with the changes mentioned in 1.3.47! And don't miss out on the new Logo.bmp! Current Versions: *TFT - 1.3.48 MARLIN - (last changed working on 1.3.47) ICONS - 1.3.47 1.3.47 EXPERIMENTAL, G2: LINE NUMBER CHECKSUM HAS BEEN IMPLEMENTED! ADVANCED_OK HAS BEEN IMPLEMENTED!!! ADVANCED_OK is feedback from Marlin about how much room is available in the command buffer so we can anticipate when Marlin is ready for another command to avoid the hesitation of waiting for an "ok." This is a big deal, it can potentially increase print quality!!! I've spent the last 2 days doing this, so there may still be some kinks to iron out. USB printing issue may FINALLY be fixed! Filament runout support with the wire to the TFT is being sacrificed. I'm sure with some more effort both could work at the same time, but I don't care right now. This has pestered me for a month. If you want filament runout protection, move the sensor wiring to the main board as per the instructions! Legacy support for other versions of Marlin will no longer be supported, as it is becoming too entangled and I'm starting to run out of resources on the microprocessor. I was getting strange homing behavior, so I enabled ENDSTOP_NOISE_THRESHOLD in Marlin. A new Logo.bmp has been added, thanks to Spooke! If you only want to pdate the logo, just put the Logo.bmp file into a bmp folder on the SD card. There is no need to update the rest of the icons as they have not changed. Current Versions: *TFT - 1.3.47 *MARLIN - (last changed working on 1.3.47) *ICONS - 1.3.47 1.3.46 G2: Added support for Marlin ADVANCED_OK feature to better manage command buffers for smoother printing. It should be fairly optimized. Printing from USB is butter smooth now. I've been up for 24 hours so I haven't tested SD or Octoprint printing. I suspect Octoprint may need a plugin to utilize ADVANCED_OK and I'm not sure if it will work properly without that plugin (I did read that the plugin does exist). Other minor bugfixes. Probably some other cool stuff I'll remember after I sleep. Current Versions: *TFT - 1.3.46 *MARLIN - (last changed working on 1.3.46) ICONS - 1.3.35 1.3.45 G2: Better stability for USB drive printing, especially handling the cancel print event which could lead to errors when it interrupted the file read process. Current Versions: TFT - 1.3.45 MARLIN - (last changed working on 1.3.34) ICONS -(last changed on 1.3.35) 1.3.44 G2: Another issue addressed: power fail recovery was never fully implemented for USB drive printing, and it would constantly try to access a file that did not exist on the USB file system. The creation of the file was blocked unless the SD card was the source, but trying to access the file that did not exist was allowed!!! I have made 4 successful USB drive prints, but one person running 1.3.43 has reported a disk read error. Current Versions: TFT - 1.3.44 MARLIN - (last changed working on 1.3.34) ICONS - 1.3.35 1.3.43 G2: Labels have been repaired after a messy merge with another branches language files which depend on using less than 256 total labels to operate correctly. This repair includes forcing the display of filenames during printing. More needs to be done on this. The emergency parser has been made more stable. A second USB drive test print is successful 10 min in. It's looking good. I'm waiting to hear from my testers, but hopefully this version means that I can relax and focus on some other neglected responsibilities for a few days. A minor error catching algorithm has been added to the printing routing to scan the files for incoherent gcode commands. EXPERIMENTAL.CHANGES TO: TFT. NO CHANGES TO: MARLIN, ICONS 1.3.41 EXPERIMENTAL RERELEASE (1.3.42) G2: This is basically version 1.3.42, but when I compiled it I had not yet updated the version number, and as many problems as I have been having if I can upload a stable version long enough to make sure it isn't a fluke compile I'll take it. I'm a half hour into a successful USB drive print, but that doesn't mean that the issue is resolve. I'm a bit hesitant to make any claims at this point. For that reason, and the fact that alot was changed on the backend and has not been tested yet, it is listed as EXPERIMENTAL.CHANGES TO: TFT. NO CHANGES TO: MARLIN, ICONS 1.3.41 G2: There was a problem with M600 dialogs in 1.3.40, due to poorly implemented M0 pause support that could not tell the difference between pause types. I still think it is best to avoid M0 altogether and use M600 instead but the support is her, though not well tested. I also cleared the parameter change indicator upon entering the babystep and offset menu, as well as ensured that those urgent commands will be sent regardless of other circumstances - though if you send commands while in a busy state only those that Marlin recognizes through the emergency parser will be acknowledged. CHANGES TO: TFT. NO CHANGES TO: MARLIN, ICONS. 1.3.40 G2: The entire 2014 FATFS library has been replaced with the newer 2017 release, a new method is being used to gather data from the files, layer numbers as embedded by Cura are now supported for Layer number display while printing. The bug in stability of gcode communication should be resolved, as an emergency parser has been added so that ALL commands go through the queue to avoid overlapping commands from simultaneous Serial_Puts() calls. CHANGES TO: TFT. NO CHANGES TO: MARLIN, ICONS. 1.3.39 Prerelease 1 G2: USB drive printing is not fixed yet!!! Hanging up on Run Mesh Leveling dialog should be fixed and some other corrupt commands repaired. 1.3.38 G2: Strange connection bug addressed by adding a 1ms delay between commands. Other minor improvements. CHANGES TO: TFT. NO CHANGES TO: ICONS, MARLIN. 1.3.37 G2: This should stabilize the temperature readings, and revert to using M109 and M190, while implementing a new algorithm to detect the end of a heating busy state. CHANGES TO: TFT. NO CHANGES TO: ICONS, MARLIN. 1.3.36 Updates include new dialogs for Home XY first and Home Z first, M600 is now used for pausing instead of M0 so the nozzle will park, all new sounds (yes, plural) and buzzer handler which should fix the buzzer problem. We can play around with the sounds. I recently broke the parameter menu and have brought it up to speed with recent changes. Lots of backend cleanup and preparation for future features, some miscellaneous bugfixes. CHANGES TO: TFT. NO CHANGES TO: ICONS, MARLIN. 1.3.35 G2: Minor connection protocol updates. Switching between Manual Mesh and ABL should be automatic now. Baystepping and Z offset *should* be working with ABL setups now. There have been alot of changed on the backed as the transition is made to a more efficient way to track parameter values, so 1.3.34 is still available for now. The previously unused parameter_settings.bmp was missing from the unified icon set, and is provided here. CHANGES TO: TFT, ICONS. NO CHANGES TO: MARLIN. 1.3.34 G2: JD_HANDLE_SMALL_SEGMENTS has been disabled in Marlin due to this known bug: https://www.gitmemory.com/issue/MarlinFirmware/Marlin/17342/645493437 . Babystepping has been repaired for Manual Mesh mode. I will be checking on ABL babystepping and Z offset menu operation today. CHANGES TO: TFT, MARLIN. NO CHANGES TO: ICONS. 1.3.33 G2: I was finally able to run a few tests on the new Z offset method and I was not working for MBL. I have not tested on ABL yet. The configuration problems with Marlin should be fixed now, and with all the progmem cleared up in the debugging process we are now running S_CURVE_ACCELERATION! ENDSTOP_INTERRUPTS_FEATURE was causing hesitation and strange sounds. We are commited to InsanityAutomation branch of Marlin for the foreseeable future. CHANGES TO: TFT, MARLIN. NO CHANGES TO: ICONS. 1.3.32 G2: Compatibility with older Sidewinder versions was not fully implemented, this corrects that. Marlin configuration errors also corrected. Work to resolve some Marlin performance issues is ongoing. Also included is an alternative version of Marlin 2.0.5.3 from before the recent bugfix/InsanityAutomation merge. It is temporarily provided for troubleshooting purposes. A decision will be made soon about which branch will become primary. CHANGES TO: TFT, MARLIN. NO CHANGES TO: ICONS. 1.3.31 G2: Bugfix for serial communication with Marlin. CHANGES TO: TFT, MARLIN. NO CHANGES TO: ICONS. 1.3.30 G2: New Icon Set Option! Select the set of your choice and put that "bmp" folder on the SD card and reboot to install them. This can be done wth or without flashing the TFT firmware. 1.3.30 TFT firmware has experimental and untested upgrades to the babystepping and Z offset menu that will reference the Z offset value saved in Marlin instead of a relative position that starts at zero every time the machine is rebooted. This should be more intuitive. I have not tested the code, so 1.3.29 has been left available. In Marlin, square wave stepping has been disabled. CHANGES TO: TFT, ICONS, MARLIN. 1.3.29 G2: Another hack at the buzzer issue. If it gets stuck on for you, go to Menu>Settings>Screen and Toggle Silent (After a few days with no complaints, I am tempted to call the issue fixed). Titles now added to parameter menu so you can tell what axis you are editing. Substantial code was added to parse parameter values from M503 commands and populate the Marlin configuration in the TFT, though only minor use was made of them on this release. The parameter for TMC motor current has an indicator as to whether or not the parameter is enable in Marlin (red=not enabled, green enabled). CHANGES TO: TFT. NO CHANGES TO: ICONS, MARLIN. 1.3.28 G2: Another attempt at fixing the USB printing error. This new approach shows promise. An attempt was made to handle the beep getting stuck on. Enhancements to serial communication stability. CHANGES TO: TFT, MARLIN. NO CHANGES TO: ICONS. 1.3.27 G2: Due to variable G0 being used in the TFT firmware, the following change was reversed from the recent stuttering debug session: configuration_adv.h #define VARIABLE_G0_FEEDRATE. Also "too cold extrusion" handling has been added that will prompt you with the option to preheat to PLA when a cold extrusion event occurs, as well as upping the extrude menu distances from 1,5,10 to 1,10,50. Improved filament runout control, now integrated with toggle in feature menu (untested). 1.3.26 G2: USB drive functionality should be fixed {it was not}! As well as full functionality for V3 and older Sidewinders. Autosave is now enabled for parameters. Other minor tweaks. 1.3.25 Improved connection reliability again. Marlin configuration was revised to solve stuttering problem. USB stick printing is still not fixed! 1.3.24 G2: An attempt to add reverse compatibility to Sidewinder versions older than X1 V4 has been made. Compatibility with all printers is untested beyond loading the TFT SD card volume to the screen. 1.3.24 will probably have multiple revisions. V4 and Genius users should not bother with this version as it is untested and adds nothing new for you.Testers are, of course, appreciated. Also in testing this version is an update to the 6/17-2020 release of Marlin via the InsanityAutomation Branch. Previous versions were not updated to his branch specifics. This new configuration has been spliced with his to support for skr13 and tmc2209 (untested). Increased connection reliability between TFT and Marlin. 1.3.23 G2: More tinkering. This is a placeholder version. This is the first time I've had a chance to print anything in awhile and this one seems to be running well so far. I'm hoping this is stable enough that I can focus on other projects this week. *Z min sensor as probe configuration is getting some love and a patch has been applied to 1.3.23. A tester should report back soon so that 1.3.24 will be tested working for that configuration. UPDATE: ZMIN_SENSOR_AS_PROBE seems to be working! 1.3.22 G2: Improved connection stability to Marlin upon disconnect and Octoprint connect events. 1.3.21 G2: 1.3.20 was a debug version and the TFT would not properly connect to Marlin under most circumstances. It was accidentally released. This is a correction. 1.3.20 G2: Minor optimization to connection protocols. Quieter operation on the serial port. 1.3.19 G2: PID tuning added to the installation instructions, and to the Feature menu. A dialog will now prompt for full PID tuning after leaving the disconnect menu, initializing new firmware, and returning to the Status Screen. Lots of Nova configuration work. TMC motor current is reenabled in the Parameters menu. Some backend Optimization and improvement. 1.3.18 G2: "wait" is no longer displayed in the terminal. For versions 1.3.15-1.3.17 there was only 1 Z stepper defined due to the transition to the new branch of bugfix Marlin. This has been corrected. 3dprintbeginner Z_MIN sensor as ABL probe has been added to Artillery Options. 1.3.17 G2: Changed default move distance from 1mm to 10mm in the Move menu. Modified the autoreport XYZ positions to occur on their own line for better parsing fof temperatures by Octoprint. 1.3.16 G2: Renovated the dialog handling code to clean it up. It may run better. Clicking on the gantry XYZ positions from the status screen now brings you directly to the Unified Move menu and the gantry XYZ display area is larger. 1.3.15 G2: Better dialog handling. Minor visual glitch repair. Compatibility for TFT35 added back into source code (untested, and the changes for this are the reason for a few recent visual glitches). New version of Marlin: SHORT_BUILD_VERSION "bugfix-2.0.x" STRING_DISTRIBUTION_DATE "2019-07-10" https://github.com/InsanityAutomation/Marlin/tree/ArtilleryX1_2.0_Devel This new version of Marlin was capable of running the M600 dialogs without backend modification! I did modify the function of M155 to also send XYZ positions though. Testing with this version is very limited, so 1.3.14 will remain available with 2.0.5.3 until this new version is established as a viable replacement. 1.3.14 G2: versions 1.3.12 and 1.3.13 had a bug that would not update the fonts and icons from the folder specified in the installation instructions. This would not affect you if you were upgrading from one version to another, it only affected fresh installs. This version is a minor fix for the definition of ROOTDIR on the SD card. 1.3.13 G2: Added speed/flow/fan display and easy access to the printing menu. Minor bugfix for visual glitch where a small portion of a button would not be cleared after leaving the print from source menu. I'm thinking about rescaling the icons and optimizing the screen layout. 1.3.12 G2: more Zoffset Menu repair for non-ABL users. Babystepping and easier access to temperature and flow settings is enabled during Octoprint sessions. The Marlin FLASH procedure has been greatly simplified due to a greater understanding of the process and no longer requires RESET of any kind. Waggster Mod BL Touch wiring is now the default configuration in Artillery Options of Configuration.h. Other minor bug fixes. M600 dialogs now automatically disappear when they are handled by Octoprint instead. 1.3.11 G2: .gco files now supported in addition to .gcode. Legacy Marlin Mode automatically enabled in the event of an Unknown Command for M155 or M75, which reverts to use of M105 and M114 commands (untested). Hemera option added to configuration.h header (untested). 104gt2 Thermistor also added to header section. 1.3.10 G2: Full M600 functionality! Marlin 2.0.5.3 is now configured and included in the download. Artillery Options section at the top of Configuration.h to ease compatibility with various platforms - list will grow. Genius compatibility added. Manual Mesh added. See Menu->Settings->Feature menu for toggle between those modes. External Host Active mode to silence all TFT commands during Octoprint sessions. M155 is used instead of M105. M155 has been modified to poll M114 positions along with temperatures ('P' parameter). This was done to better display the layer height during Octoprint sessions. A recently developed bug in updating the temperatures o the status screen was resolved. Z Offset feature completely rewritten, and is now live Z offset. Babystep feature now autosaves. Feature menu selection toggle for Nova hotend. Bug that would allow freezing the display on previous version has been resolved. 50mm move option now added to the move menu (0.12mm, 1mm, 10mm, 50mm). XYZ Position and Temperature always displayed. Motor Steps/mm are now adjustable through the parameters menus. Other minor menu reordering and improved functionality. Others: Special thanks to Doron, and Gavin of team Fulament, and Ryan for help with testing and configuring Marlin for Manual Mesh and the awesome brainstorming toward getting M600 working! 1.3.9 G2: menu reordering for better workflow. Added always displayed XYZ positions. Completely recoded the Z offset feature that was apparently started and abandoned in the original source code. Added a 50mm move distance to the move menus. 1.3.8 G2: Temperatures are now displayed at all times (with the exception of a few menus). Parameters menu has been added, which has provisions for setting esteps and other axis steps/mm. Z offset did not work previously. In this version the z position moves to 0 at the center of the bed so you can correctly get the z offset, and the motors move now so you can see what you are doing. Values will automatically save when you exit the menu. Future versions may simplify the process to exclude the preliminary movement - this has not been decided. The parameter for the motor current are completely disabled and will likely be removed on the next version, as it it very hard to click the correct axis when setting steps with such a small screen. Movements that were previously 10mm are now 20mm, though the icons and labels have not been updated to reflect this yet (sorry!). 1.3.7 G2: Fixed the disconnect feature! The source code will not been updated beginning from this point. 1.3.6 Ozollo: Deleted uneccesary files from source code and made a few revisions to clean up the code that will not affect performance. G2: Beep added to print completion. List mode enabled on file menu to read long file names. ABL added to "Home" menu. Attempted bug fix for potential menu hangup - success unknown as of this time. 1.3.5 Ozollo has joined the project and fixed his first bug: M500 added for PID autotune. Prior to version 1.3.5 the PID autotune features in the Custom menu did not autosave. 1.3.4 Prior to version 1.3.4, there was a bug in the cancel print function that would throw a Halt! Printer Stopped error. cancel_print_gcode modified. 1.3.3 Prior to version 1.3.3, the icons were designated to the wrong folder for uploading, so if you weren't already using the unified icon set you would have garbled icons. 1.3.2 Prior to version 1.3.2 there was a bug that would crash the extruder into a print taller than 50mm at the end code. I caught it almost immediately, but this was available for a few hours, so if you were one of the first to download, you'll definitely want to get a newer version. Features: M600 is fully enabled and the filament runout sensor works on both Octoprint and the TFT. This version is configured for the build volume of the Sidewinder or the Genius. Line number checksum and ADVANCED_OK support for Marlin. fast: babystepping, M411 empty Marlin command buffer, EMERGENCY_BYPASS prototype! (7/25-2020) It is enabled for Manual Mesh or BL Touch. Preconfigured Marlin is now included with Artillery Options category. Support for the BMG extruder and Nova Hotend have been added. Motor Steps and TMC current are accessible and can be changed through the TFT. PID tuning is incorporated for both the bed and extruder with autosave. Live flow/speed/temperature adjust and babystepping. Filament runout sensor is enabled! GCode console interface (accessed by touching the "Info" box on the main status screen or looking for the GCode menu). The center leveling point has been added, and the corner leveling points are positioned above the mounting points instead of at the far corners. There is a disconnect feature so you can flash without unplugging the TFT cable. Custom GCode is added to raise the z axis by 100, lower the z axis to 10, present bed to position Y250 for part bed cleaning/part removal, and extrude 100mm of filament. Some of the menus are made more circular so it is easier to get between preheating, moving, and extruding. There are presets to preheat PLA, ABS, PETG, with option to toggle the bed/nozzle/both as well as a quick button to preheat the bed to 65. The max denomination of manual axis movement is 50mm. Percentage progress bar and z axis position are displayed during print. The bed presents itself to position Y220 upon canceling of the print for bed cleaning/part removal. Beep upon print completion. Restart another copy of the same print with a single button press. Future features goals include: display of M503 parameters, graphic display of bed leveling data, scrolling for long file names, mkstft.txt configuration support, Linear Advance K, PID values, acceleration and other parameters will be added to the TFT menus. If you have any problems or suggestions, or if you want to help make new icons, let me know. Also included is v2 of a lightweight ribbon cable support for use with a V4 Sidewinder or probably any Genius. Original bolts and a zip tie are all that is needed. I also posted it separately, but Thingiverse wanted an stl file so you get it here... Marlin Github repository: https://github.com/PrintEngineering/Marlin/tree/bugfix-2.0.x/Marlin You can find the source code up to v1.3.6 here: https://github.com/G2Barbour/MKSTFT28_Clone_Artillery-Sidewinder The github will no longer be updated. This is adapted from one of the many BigTreeTech msktft28 TFT firmware variants out there. The origination of this code is the mkstft28_v1.0 Clone version made for the Genius by Darkspr1te/Blueforcer. You can find it here: https://codeload.github.com/Blueforcer/MKSTFT_Marlin_Touch/zip/0.0.2 New Icon Source: https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/issues/428

Download Model from thingiverse

With this file you will be able to print Artillery Genius/Sidewinder X1 Feature Loaded *REAL M600* Enabled Firmware G2 v1.3.96 ("fast:" babystepping and ADVANCED_OK) with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Artillery Genius/Sidewinder X1 Feature Loaded *REAL M600* Enabled Firmware G2 v1.3.96 ("fast:" babystepping and ADVANCED_OK).