Artillery Sidewinder X1: Marlin Advanced 1.1.9 With NEW UI and Mesh Bed Leveling (And More)

Yes, you read that right- Mesh Bed Leveling. You can now adjust for uneven beds WITHOUT a probe (like BLTouch, or similar), in addition to using the other advanced settings like PID Autotune (Extruder and Bed), Live Z Babystepping, Save To EEPROM, and Linear Advance with the spiffy new UI I created. All the benefits and none of the hassles.
I've spent a great deal of time working with other community firmwares, and appreciate the effort (some features I saved time with and borrowed along the way)  but I felt that Mesh Bed Leveling was the last thing lacking in the tool box. We have it now and it's working.
Please read this article in it's entirety. If you don't, you may miss something important. No, really.
Disclaimer, use at your own risk! There are inherent dangers of upgrading your firmware and config files. Make sure that you completely understand the potential risks before applying/uploading any of the files provided to your 3d-Printer. The firmware and Config Files are provided "as is" without warranty of any kind, either express or implied.
On the subject of Marlin 2.0 vs 1.1.9 
I decided to roll out the "rounded out and all goodies" version using Marlin 1.1.9 to start with, because most users do not require the features Marlin 2.0+ offer - it's primarily for 32 bit boards and that is not stock on the Sidewinder X1 (Not yet anyways) As a new or even advanced user, it will be rare at this stage you would require a 32 bit board right now anyways. If you really feel you need to do so, you should be beyond the scope of this firmware and able to make the rest of the changes yourself.
Features Enabled:
Save to EEPROM
Enabled EEPROM to persist settings. Now you can store PIDs and Z offsets to EEPROM.
P.I.D. Autotune - Extruder AND Bed In One Operation
PID Tuning improves your hotend/bed temperature stability and will positively impact print quality. This command initiates a process of heating and cooling to determine the proper PID values for your hotend. This may take up to 10 minutes. During the tuning process the LED will stay Red. Once the process is finished, the LED will turn Green. Make sure you wait! Your machine specific PID values are now in use. However, if you want to persist your PID settings you must execute “Store to EEPROM”.
Mesh Bed Leveling
Mesh Bed Leveling (MBL) allows interactively measuring a Z height mesh without a bed probe (like BLTouch or similar). The only tool required is a piece of paper or a feeler gauge. MBL uses the mesh to compensate for variations in height across the bed. You simply begin the probing and hit save at point 9. I will include a tutorial and perhaps a video demonstrating this process.  There are some important notes below in the tutorial section. Make sure you read them.
Linear Advance
Linear Advance is now activated, but the set the K_Factor to 0, so it is disabled. To enable it using gcode you should first calibrate your specific K factor. You can do this HERE. Accordingly set the K factor within your slicer or command interface using e.g. M900 K0.2 (as an example)
Preheat Preset for PLA
Its with the PID Autotune and MBL section to keep things tidy- it lets you easily preheat to given preset, you can change the temps in the mks_config.txt.
Live Adjust Z / Babystepping Z
During printing the first layer you can still adjust the distance between the nozzle and the print-bed. E.g. if you find your print is not sticking you can carefully step down the nozzle or correct it up again without the need to re-level all four screws at the same time. However, this assumes the bed is in level overall but maybe just a little too low or too high overall. You need to execute Store To EEPROM to persist Z Values. (There is a Save to EEPROM in the interface for this)
Easy To Flash 
I've compiled it into a convenient HEX file so all you need do is load up your favorite slicer (that supports it) and flash away, no need to load Arduino and compile, upload, etc (the archive will contain the source if you really want to go that route too). Of course you still have to disable the TFT connection from the mainboard. The full tutorial will be below as well as a video I'll produce later. 
Some Notes On This Release:
In order to implement these features, the ability to change the LED color from the menu had to be sacrificed. You can still turn the LED on and off in the menu.  You can in theory change them using gcode and add them to your start script in your slicer. I have not tested this. The codes from the original TFT command were as follows:
#red M42 P4 S0;M42 P5 S255;M42 P6 S0;
#green M42 P4 S255;M42 P5 S0;M42 P6 S0;
#blue M42 P4 S0;M42 P5 S0;M42 P6 S255;
Changed the esteps to DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 445 }. If you get dimension issues after firmware update you can apply stock settings { 80.121, 80.121, 399.778, 445 } using gcode M92.
Reduced BANG_MAX for hotend to 200 to prevent too much overshooting. This might help with some people experiencing ribbon cable failures due to overheating.
Changed PID_FUNCTIONAL_RANGE to 25 to allow PID Autotune to execute without interrupting due to massive overshoot.
Some UI Images:
sheet1 sw119adv 
The Files Can Be Found HERE
Unarchive the file to a folder of your choice.
Mainboard Firmware
You MUST first disconnect the ribbon TFT cable that comes from the mainboard as shown in the images below:
firmware update
Connect your printer to the USB port using the A-B Printer Cable provided with your printer or similar. Make sure your printer is turned off. Connecting it to the USB will not show the LCD as active once you do so, but you will notice a led on the mainboard- good to go...
Then, the easy route- load up your favorite slicer or command interface (I use Prusa Slicer, its just too easy) and Install/Update Firmware (image from Prusa Slicer) and select the "SidewinderX1_1.1.9_Advanced.hex" from the Hex file folder included in the archive. Wait until it finishes.
Prusa Firmware1
*If you prefer to use Arduino, load the marlin.ino file from the Marlin folder In the source folder, and compile > upload as normal.
Once you successfully flash the mainboard, you must reconnect the ribbon TFT cable back to the TFT board. You can aslo disconnect the USB at this time.
TFT Firmware
Copy the files from the "Sidewinder X1 LCD (TFT) Firmware" folder to a 16gb or less Micro SD card.
Insert it into the printer's Micro SD card slot, and turn the printer on- it will begin updating automatically, and wait for it to finish.
Once finished, you can turn off the printer, remove the Micro SD card, re-assemble the base and restart the printer.
Before You Begin Printing
The first thing to do is select the file system (reflashing the firmware resets it to Micro SD by default) otherwise your USB will not read when you try to print.  Settings > File Method > USB
It's a good idea to reset the newly flashed firmware to its defaults and overwrite any older settings. The gcode command is M502 to reset the firmware to the hardcoded defaults, followed by M500 to save these default setting to EEPROM.
You may wish to calibrate linear advance. You can do this HERERun a test print or two without it
Mesh Bed Leveling
At the beginning, use the normal manual 5 point leveling to make sure all 4 corners are reasonably level. It can be found on your menu under TOOLS > LEVELING and use the paper method as outlined in your manual. Doing this once first will help you better refine your settings when you do the actual Mesh Bed Leveling.
To Begin:
Mesh Bed Leveling can be found on your menu under TOOLS > MORE and will look like this:
Preheat your printer and bed using the PLA button. You can go back to the main screen to monitor when it reaches temperature. When it does, come back to this menu.
Place a piece of paper on the bed.
Select the PROBE 1st Point button. It will start at the front left. Once it lowers into position, check the paper for the "drag" we all like to feel that tells us the nozzle is in the right position. If you need to adjust the nozzle up or down, you can do so using the Z+ or Z- buttons until you are satisfied.
Select PROBE POINTS 2-9 button. It will travel to the next position,  once it lowers into position, check the paper for the "drag" we all like to feel that tells us the nozzle is in the right position. If you need to adjust the nozzle up or down, you can do so using the Z+ or Z- buttons like before.
Continue by selecting the PROBE POINTS 2-9 button again, and like previously, adjust as needed. You will do this for all the rest of the points through 9. 
At Point 9, Select SAVE SETTINGS
You are done. You should turn your printer off or manually turn off the extruder and bed heating. Enjoy.
The notes for older Marlin show using "M420 S1" in your slicer startup scripts to enable use of the stored mesh.

HOWEVER, as I read it during my compiling adventures, a new feature has since been added since 1.1.8,
#define RESTORE_LEVELING_AFTER_G28 - which I have already enabled in my firmwares appears to solve that issue of requiring it.
It shouldnt hurt anything to add that line.
***A number of people have asked me about donating***
I'm humbled by the offers, and while it's never the reason I do this work, I wont complain if you want to spot me for a cup of coffee.
You can donate to my Paypal like if you wish...  >>>  Paypal
Happy Printing, and Enjoy...
fen talon 01
Artillery Genius: Marlin Advanced 1.1.9 With NEW U...
Artillery Genius GUI Modification For Factory Defa...

By accepting you will be accessing a service provided by a third-party external to

Copyright © 2017-2021 Earl Miller and 3D-Nexus Worldwide. All Rights Reserved. No part of this site may be reproduced without express consent by the owners for their respective content.