an image of a forest and water

TronXY Klipper Is Now Installed

Sweet baby jayzus. @tshackelton from the TronXY Discord is awesome - walked me all the way through the setup with a couple of hiccups but whooooojeezusthankgoditsdone.

So - let's start with the obvious - the upgrade path for Klipper on the X5SA is seemingly different for the many variations of this machine out there. This might not work for your machine. However, mine was purchased in Sep 2022. 

Early versions of the X5SA appear to have used a large, loaded image flashed to the board. To update these, you had to create an `update.cbd` file, put it on an SD card and boot your machine as described in the wiki.

This is, in part, why the wiki references flashing your board with older firmware. The idea is to revert to the old firmware, then use a known process to update to Klipper. However, this does not always work with the newer boards/systems.

My issues began when trying to auto bed-level. The Z axis kept lowering as I pointed out in a prior post. So I wrote to Tronxy Support and they sent me a new set of files based on my serial number and the version on my display. They sent me version "1.32" which you can find here. WARNING: DOUBLE-CHECK TO MAKE SURE YOU ARE USING THE SAME BOARD!

CXY-V6-191017 Board

With the files in hand, I downloaded ST Cube Programmer. This application allows you to write to your board. With the new firmware in hand and a copy of STCP installed, connect your PC (via USB) to your X5SA. Select the com port and click 'Connect':

a screenshot of the ST Cube Programmer application
ST Cube Programmer Port Connection

When connected, click the button to do a 'Full chip erase'. Then, select the bootloader1.63.hex file from the zip file linked earlier and click `Start Programming` with the settings shown below:

ST Programmer - Flashing

The process should not take too long. Once it is complete, go back to the zip file and copy the Tronxy folder to an empty SD card. 

Tronxy folder in the zip file

Next, you'll need klipper on a host machine. This can be a RaspberryPi or almost any other machine capable of running linux. I'm running my host on a cheap,  Intel Celeron box running a stripped down version of linux. Others have flashed and run klipper on even-cheaper android tv set-top boxes flashed over to Linux. 

With a box running Debian-based Linux (Ubuntu, Raspbian, Bodhi, etc), the easiest way to get Klipper running is to grab a Kiauh. If you have git on your machine, you can do:

git clone

Wait for the file to finish downloading. Then:


You should be presented with a menu that looks similar to:

Kiauh Menu

Note - if this is a fresh install, everything will be showing Not installed!

Press 1 to install

From the Install menu, you'll need Klipper and Moonraker installed. If you'd like a web interface running on the same machine, you can also install Mainsail and/or Fluidd (they're very similar).

Select the Python version

This should begin installing Klipper on your machine with everything you may be missing.

Once Klipper is installed, do the same for Moonraker and then navigate back to the main menu.

From the main menu, select the Advanced option ( #4 in the Kiauh screenshot above)

Select the [Build Only] option from the menu:

Kiauh Advanced Menu

You will then be prompted with the Klipper configuration menu that you'll want to look like this:

Klipper configuration menu

Here's where this deviates from any other prior setup you've seen for TronXY - the Bootloader offset option (64KiB bootloader) and (115200) Baud rate for serial port

Other tutorials have you select the 32KiB option and 250000 baud rate which will not work for this board. If the bootloader offset is wrong, the drivers will not load. Even if you have the offset correct but the wrong baud rate, you'll have issues connecting to Klipper running on your printer.

Once configured, press 'Q' to quit and watch klipper compile the drivers. Once the drivers are built, back out and quit Kiauh.

Change directories into klipper/out where you should find a klipper.bin file. Copy klipper.bin to the SD card in the Tronxy folder.

Rename 'fmw_x5sa_nt.bin' to 'oldfmw_x5sa_nt.bin' (so you can keep a copy of the original, just in case anything goes wrong)

Rename klipper.bin to fmw_x5sa_nt.bin

Now, take the SD card, put it in your printer and turn it on. There are conflicting stories of what happens next. For me, the screen will come on and I see a little green bar showing files being loaded onto the machine. The last file stalls at the end and nothing happens. Once it is stalled out, remove the SD card from the machine, turn the machine off, then back on. I get a screen that says "initializing" on the bottom with a v1.63 displayed in the upper-right:

Tronxy Screen After Flashing

Now, go back to your chosen web interface, reload and your printer should show up.

I did not mention installing a web interface aside from the option to install Mainsail or Fluidd. You also have the option of installing Octoprint. If you only have one printer, installing a web interface on the same machine is advisable. However - you don't have to install the web interface on the same machine. If you're running hardware with few resources, it may make sense to put the web interface on a separate machine and connect the web interface to moonraker via IP. This way, you can connect to one web interface on one IP rather than having to try to manage multiple web servers separately.

This article was updated on 29 Sep 2022