How to Install Klipper on Sidewinder X2: Config and Setup

Originally published at: How To Install Klipper On Sidewinder X2: Config And Setup | 3D Print Beginner

The Sidewinder X2 is quite a capable machine, but it can be even better with Klipper Firmware. In this guide I will show you how to install Klipper on Sidewinder X2 and take advantage of all the benefits it comes with. What is Klipper? Klipper is an open-source firmware for your…

I have been transferring my Genius Pro to Klipper just now. Initially it didnt work, but I got a great hint from someone in Reddit, saying I should issue the ls /dev/serial/by-id/* command after having flashed the firmware and connected the printer with the PI, to find my own ID which had to be inserted in the MCU part of the printer.cfg file (this in case you are using a printer.cfg from soomeone else.)
MAy be some other read here might benefit from this as well.
Thanks for the general isntructions in any case

Hi. Is there a way to enable the runout sensor? I checked the documentation and there is a switch/config but I have no clue what pin I have to add.

If I remember correctly, the filament sensor on the X2 is wired to the TFT screen.
If you change its location, then you should be able to find the pin and enable it in the config.

Just as a heads-up for anyone that uses the printer.cfg file from this tutorial: The PID tuning for the bed heater was clearly done for 120v regions, as the values are wildly incorrect if you run the printer from a 230V plug. I definitely recommend doing PID tuning according to the Klipper documentation if you also have 230V mains

It was actually done on 230V. But as always, PID is different depending on various printers and temperatures.

Fantastic directions on getting Mainsail/Klipper setup on the SWX2. I’m running into an issue, however, trying to get the Ruby v1.2 board in DFU mode. I’ve tried sending the M997 command via Pronterface as well as physically jumping the 3.3v and BOOT jumpers. Nothing seems to be working. No STM device in DFU mode showing up. Any suggestions??? TIA

  1. Windows wasn’t automatically downloading the driver for the printer motherboard, make sure to check Windows update and let it download the printers driver.
  2. I just had to skip the whole Pronterface and use Pi to flash Klipper.
  3. Had to change the MCU serial to this, since the one from the 3dprinterbeginner was incompatible - serial: /dev/serial/by-id/usb-Klipper_stm32f401xc_460078000351383532393535-if00

You copied your PID values from the extruder and just pasted it for the bed heater. Idk if it was an accident, but according to the cfg at least, there was nothing special done for either the bed/hotend. One of them is wrong, they aren’t supposed to be the same value

Trying to get my X2 working with Klipper running on a laptop per ModBot’s tutorial but am unable to get the laptop to connect post-flash. Using the steps below DFU reports successful flash download but upon reboot of the printer the blue light on the touch probe flashes ~once per second and otherwise is unresponsive. I can flash back to default firmware without issue. Any advice greatly appreciated!

make menuconfig

Micro-controller Architecture: STMicroelectronics STM32
Processor model STM32F401
Bootloader Offset No bootloader (also tried 64kib with no joy)
Clock Reference 8 MHz Crystal (also tried 16 with no joy)
Communication interface (USB (on PA11/PA12))
USB ids USB Serial number from CHIPID


Bus 002 Device 091: ID 0483:df11 STMicroelectronics STM Device in DFU Mode

make flash FLASH_DEVICE=0783:df11

DFU reports a successful flash.
Upon reboot the blue light on the touch probe just flashes and otherwise the unit is unresponsive and unable to be connected to from the web interface of klipper on the laptop.

I figured this out. FYI the I just had to use the X2 config file provided by Artillery which has a different connection string in [mcu] vs. what ModBot used in his. X2 Config Source here:

My process was as follows;

build linuxmint install per ModBot’s excellent tutorial.

Put X2 config found in the Artillery link above in ‘printer.cfg’ and upload to klipper web GUI.

Run “make menuconfig” and select the STM32F401 with “No bootloader” and USB (on PA11/PA12) and not enable extra low-level configuration options.

run “make”

boot your X2 printer with jumper between 3.3V and Boot0 pins.

run “lsusb” and verify ‘us 002 Device 014: ID 0483:df11 STMicroelectronics STM Device in DFU Mode’ is present.

run “make flash FLASH_DEVICE=0483:df11”. Ignore the dfu-util: can’t detach error, it is a non-factor.

Go back to web gui, tell Klipper to Restart, see successful connection.

drink a beer.

Hi Manfredo. I’m trying to install klipper on my GeniusPro but I have same dubts on printer.cfg file. I suppose it should be the same that x2 except for the bed dimension … but I’m not sure.
Please can you share your printer.cfg file? It will be very helpfull for me.

Love your tutorial. I am running a Raspberry Pi 4B and burned the image, compiled klipper and flashed the firmware to my Sidewinder X2. I believe it was successful since my TFT is no longer functional.

My problems is that klipper does not run because of a failure:

Jan 22 21:52:18 mainsail-pi python[608]: OSError: cannot load library ‘/home/pi/klipper/klippy/chelper/’: /home/pi/klipper/klippy/chelper/ file too short.

The file exists but is zero length.  Any ideas?

Okay, I found that before I installed kiauh I ran both ‘sudo apt update’ and ‘sudo apt upgrade’. I think the upgrade did some cleanup that it should not have. After re-imaging I have mainsail/moonraker/klipper running. Now just have to figure out why klipper is looking for a connection at a different id than the one that exists.

Had the same problem as above. I think that if you had to use the boot0 jumper the device ID changes between DFU mode and run mode so they dont match. I just copied the correct serial port id from the /dev/serial/by_id directory to the printer.cfg file and it is up.

  1. Thanks, your tip was helpful. I had to perform this:
ls /dev/serial/by-id/*

to get the correct MCU serial…

Dear, I did not understand your answer above. Could you clarify a little more. I installed klipper on my sidewinder X2, but I also don’t know how to install the filament sensor, which pin should I use anyway? thanks in advance if you can help me. HSG.

Still stuck at flashing in dfu. Ive incorporated all the excellent sloothing thus far, but still no dice. When I changed the Mcu serial in config, x2 shows as " ID 1d50:614e OpenMoko, Inc. stm32f401xc"
now… but still no flash…Any help would be appreciated. Printer been belly up for 3 weeks now…

1 Like

I have the same exact problem, did you resolve?

yes, but I dont remember how :frowning:
Ill try an remember, but Im pretty sure it was in the programming and not in any physical thing with board, such as unplugging everything or whatever. something about getting the correct naming in linux with some command I found in one of these online posts. Sorry, gud luck