Artillery Sidewinder X1 Firmware Mod
The ASWX1-FW-Mod is an optimization for the Artillery Sidewinder X1 3D printer.
The Artillery Sidewinder X1 is delivered with Marlin 1.19 link and deactivated EEPROM memory function M500
.
This optimized firmware is based on Marlin Firmware Version 2.0.x
and on Marlin Artillery Sidewinder X1 config
There is also an optimized firmware for Artillery Sidewinder X1 touch display which you can install too but it is optional.
20.03.2020 ASWX1-FW-MOD-v1.2 - ASWX1-FW-MOD-v1.2.zip based on Marlin 2.0.5.1
07.03.2020 ASWX1-FW-MOD-v1.1 - ASWX1-FW-MOD-v1.1.zip based on Marlin 2.0.4.4
Maintained some basic changes (e.g. the possibility to store babystepping)
29.02.2020 ASWX1-FW-MOD-v1.0 - ASWX1-FW-MOD-v1.0.zip based on Marlin 2.0.4.4
Save to EEPROM
Enabled EEPROM M500
to persist settings.
Now you can store PIDs and Z-Offsets to EEPROM
LIN_ADVANCE activated
Linear Advance brings you better dimensional precision due to reduced bleeding edges.
Higher printing speeds are possible without any loss of print quality - as long as your extruder can handle the needed speed changes.
Visible and tangible print quality is increased even at lower printing speeds.
No need for high acceleration and jerk values to get sharp edges.
Read https://marlinfw.org/docs/features/lin_advance.html for more details and how to calibrate.
By default the K_Factor is set 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 using e.g. M900 K0.2
S_CURVE_ACCELERATION activated
This option eliminates vibration during printing by fitting a Bézier curve to move acceleration, producing much smoother direction changes.
ADAPTIVE_STEP_SMOOTHING activated
Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible vibration and surface artifacts.
The algorithm adapts to provide the best possible step smoothing at the lowest stepping frequencies.
Individual adjustments can be made in Configuration.h and Configuration_adv.h
Examples can be found in the links below.
Enabling BL-Touch, also look at Issue #6
E3D Hemera - Artillery (Evnovo) Sidewinder X1 Firmware Modification
Read more about configuring Marlin
Of course the firmware must be recompiled than.
There are serveral ways to compile.
[Linux / Mac]
An easy one is platformio CLI command.
To complile you just need execute platformio run
in the root folder of this repository (where platformio.ini is also located).
The new compiled firmware is saved here: .pio/build/megaatmega2560/firmware.hex
[Windows]
There is a great instruction how to use Arduino-IDE on Marlin.org.
This should be the easiest way on Windows.
Board: "Arduino/Genuino Mega or Mega 2560"
Processor: "ATmega2560 (Mega 2560)"
Customize your configs, use "Sketchs -> Export compiled Binary", flash
Important: Don't forget to read and backup your current EEPROM-settings with M503
!
The display and the USB-Port are sharing the same wires so flashing the motherboard-firmware need some extra work.
There are two ways possible to flash the firmware.
be careful, DISCONNECT the 230V power cord, you do not need it for flashing, everything will be savely powered using the USB Connection
Either compile the attached source or flash the precompiled hex file. For flashing the precompiled hex file you can e.g. install and use Prusa Slic3r 2.x. In order to be able to flash the firmware you must unscrew the bottom plate of you printer (danger, 230V connectors, unplug power cord first) and disconnect the MKS LCD cable. Otherwise it wont let you flash as both, the TFT and Flasher communicate using serial. After flashing and powering off you simply reconnect the tft+enclosure fan and install the bottom plate again.
With this method we try to talk to the motherboard before the display is ready to listen. You have to use a Linux or Mac mashine for this.
The flash.sh script is trying to flash the command in a loop until the command finishs succesfully.
Steps:
A detailed explanation of this procedure is available from joskfg at Github
I recommend to reset the newly flashed firmware to its defaults and overwrite any older settings.
Don't forget to read your settings by M503
and copy/save them somewhere.
The gcode command to reset the firmware to the hardcoded defaults is M502
,
followed by M500
to save these default setting to EEPROM.
After that you can restore your settings from your M503-Backup e.g. M92 X80.12 Y80.12 Z399.78 E420.00
Save again by M500
and finally reload all stored data from Eeprom by M501
You can execute the gcode commands using a terminal program like Arduino-IDE, Pronterface) or using the Terminal Tab in Octoprint.
The repository here is the continuation of the MarlinFW from Robscar's firmware mod at Thingiverse.
The modified firmware for the Makerbase MKS-TFT 3.2 touch display has been seperated to an own repository:
https://github.com/pinguinpfleger/ASWX1-TFTFW-MOD
https://3d-nexus.com/resources/file-archives/category/8-artillery-evnovo
RICS 3D Marlin 2 https://www.youtube.com/watch?v=JlgykMHhMzw
Waggster Mod https://www.youtube.com/watch?v=ynm8inRMVkE
Waggster Mod (BL-Touch) https://pretendprusa.co.uk/index.php?action=downloads;cat=5
3D Nexus (Mesh Bed Leveling, Marlin 1.1.x) https://3d-nexus.com/resources/file-archives/download/5-printer-firmware/11-artillery-swx1-marlin-1-1-9-advanced-firmware-and-gui
3D Print Beginner (also derived from Robscar's firmware) https://3dprintbeginner.com/sidewinder-x1-firmware/
There are inherent dangers of upgrading your firmware and config files. I caution you to 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.