Skip to main content
  1. Go to http://artillery3d.com
    • Go to http://artillery3d.com

    • In the support section, locate the "Sidewinder X1 Firmware"

    • Click on "Download Files"

  2. Once the firmware has downloaded, unzip the files
    • Once the firmware has downloaded, unzip the files

  3. If you haven’t already, download the latest version of Arduino IDE from: https://www.arduino.cc/en/main/software
  4. Open the Marlin.ino file located in the Marlin directory of the Sidewinder X1 firmware folder which you download by double-clicking on it This will launch Arduino IDE with the Sidewinder firmware pre-loaded Once loaded, select the "Configuration.h" tab
    • Open the Marlin.ino file located in the Marlin directory of the Sidewinder X1 firmware folder which you download by double-clicking on it

    • This will launch Arduino IDE with the Sidewinder firmware pre-loaded

    • Once loaded, select the "Configuration.h" tab

  5. Scroll down until you find the Thermal settings section You should see a line that reads #define TEMP_SENSOR_0 1
    • Scroll down until you find the Thermal settings section

    • You should see a line that reads #define TEMP_SENSOR_0 1

    • Change the last number of that line to 5 instead of 1. It should read "#define TEMP_SENSOR_0 5"

    • This means you are changing the temperature sensor type to a 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup). If you skip this step the temperature will not be read correctly

  6. Scroll down a bit further and you will find the minimum and maximum temperate settings You should find a line that read "#define HEATER_0_MAXTEMP 275"
    • Scroll down a bit further and you will find the minimum and maximum temperate settings

    • You should find a line that read "#define HEATER_0_MAXTEMP 275"

    • Change the last 3 digits to 300 - "#define HEATER_0_MAXTEMP 300"

    • Marlin has a -15° restriction on the maximum temperature able to be set on the LCD, so in order to hot tighten at 285°C you will need to set the max temperature to 300°C. Never exceed 285°C when using the thermistor with Hermes

  7. Whenever modifying any firmware, always make sure that Thermal Runaway is enabled
    • Whenever modifying any firmware, always make sure that Thermal Runaway is enabled

    • Scroll down until you find the line that reads "#define THERMAL_PROTECTION_HOTENDS"

    • If that line, and the one underneath it have "//" in the begining of the string, remove them to enable Thermal Runaway protection

  8. Scroll down to the line that reads "#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80.121, 80.121, 399.778, 445 }" Change the last 3 digits to 409 in order to set the correct steps for the Hermes extruder
    • Scroll down to the line that reads "#define DEFAULT_AXIS_STEPS_PER_UNIT { 80.121, 80.121, 399.778, 445 }"

    • Change the last 3 digits to 409 in order to set the correct steps for the Hermes extruder

    • The line should now read: "#define DEFAULT_AXIS_STEPS_PER_UNIT { 80.121, 80.121, 399.778, 409 }"

  9. Since the Hemera is geared, it translates into the final gear rotating the opposite direction from the stock extruder, so the direction needs to be inverted Locate the line that reads "#define INVERT_E0_DIR false"
    • Since the Hemera is geared, it translates into the final gear rotating the opposite direction from the stock extruder, so the direction needs to be inverted

    • Locate the line that reads "#define INVERT_E0_DIR false"

    • Change the word "false" to "true" using only lowercase letters

    • The line should now read "#define INVERT_E0_DIR true"

    • In order to make sure the temperature reading is as stable as possible it is important to PID tune the setup.

    • The easiest way to do this is to use Repetier Host.

    • Repetier Host can be downloaded here: https://www.repetier.com/

    • Only run a PID tune after you have uploaded the new thermal settings to the Sidewinder X1.

  10. Once you have downloaded Repetier Host open it up and click printer settings
    • Once you have downloaded Repetier Host open it up and click printer settings

    • Make sure the COM port you have the printer plugged into is selected.

    • Make sure the Baudrate is 115200

  11. Select connect Select manual control
    • Select connect

    • Select manual control

    • This will then allow the entry of Gcode

  12. Enter "M303 C5 [E0] S200" into the terminal
    • Enter "M303 C5 [E0] S200" into the terminal

    • Hit enter

  13. After it has run through the 5 cycles that were set it will show the Kp, Ki, and Kd values in the dialog box.
    • After it has run through the 5 cycles that were set it will show the Kp, Ki, and Kd values in the dialog box.

    • Make a note of these.

  14. Open the Arduino IDE again and find the PID settings in configuration.h Replace the old values with the ones you just gained from the PID tune.
    • Open the Arduino IDE again and find the PID settings in configuration.h

    • Replace the old values with the ones you just gained from the PID tune.

    • The values entered here will not necessarily be the same as yours.

  15. To upload the firmware, select the correct board as shown Select the Correct COM port, this may be a different COM port number Click on upload
    • To upload the firmware, select the correct board as shown

    • Select the Correct COM port, this may be a different COM port number

    • Click on upload

Finish Line

4 other people completed this guide.

Joseph

Member since: 10/08/2019

1,507 Reputation

3 Guides authored

11 Comments

Great job Joe!

Steve Donalson - Reply

Thank you, Joseph! :)

Shakie - Reply

I cant upload arduino code and the PID autotune keeps halting because it wont heat up but when I control my printer from the actual LCD i can heat it up just fine

Cole O'Brien - Reply

The LCD needs to be unplugged from the printer then you can upload. It’s a pain but it works. It frees up the Com port on the printer

Tyler -

NIce guide, but i want to unlock linear advance and the firmware doesn`t want to upload to the printer after 10 attempts(avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff). So i need to unplug the LCD to do it?

SERGEY - Reply

Add Comment

View Statistics:

Past 24 Hours: 46

Past 7 Days: 221

Past 30 Days: 799

All Time: 10,408