Restoring the stock firmware [Plus4] - Phil1988/FreeDi GitHub Wiki

This section describes the procedure and some things to look for when restoring the stock firmware on your Qidi Plus4 printer.

Procedure

Revert Qidi Plus 4 to Upstream Firmware

This guide provides instructions for users who want to revert their Qidi Plus 4 3D printer from FreeDi firmware back to the upstream Qidi firmware.

Flash Display Firmware

Download the Qidi TFT Firmware

Download the Qidi TFT Firmware from Qidi's official GitHub repository.

Copy Firmware to the printer

Transfer the downloaded TFT firmware to your FreeDi installation folder:

cp /path/to/downloaded/xindi_800_480.tft ~/FreeDi/screen_firmwares/

Stop FreeDi Service

Before flashing the new firmware, stop the FreeDi service:

sudo systemctl stop FreeDi

(Optional) Backup Existing Firmware

It is good practice to make a backup of the current FreeDi firmware in case you want to revert back. You can do this with the following command:

mv ~/FreeDi/screen_firmwares/x-plus3_x-max3_plus4_stable_v2.00.tft ~/FreeDi/screen_firmwares/x-plus3_x-max3_plus4_stable_v2.00.bak

Rename Qidi Firmware to Match FreeDi Firmware

Rename the Qidi firmware file to match the existing FreeDi firmware filename:

mv ~/FreeDi/screen_firmwares/xindi_800_480.tft ~/FreeDi/screen_firmwares/x-plus3_x-max3_plus4_stable_v2.00.tft

Force Flash the Firmware to the TFT Display

Navigate to the FreeDiLCD directory and force flash the firmware to the display:

cd ~/FreeDi/FreeDiLCD && sudo ~/klippy-env/bin/python3 start.py -debug -force_flash

Wait for the process to complete (approximately 8-10 minutes).

[!IMPORTANT] If the flashing gets stuck or errors occur, power cycle the printer and it the flashing process should restart automatically. It may take several tries before the printer succeeds in flashing the firmware.

Flash MCU Firmware

The next step is to flash the main board and the toolhead's firmwares. Please reach out on Discord to get hold of pre-compiled firmware binaries.

Mainboard Firmware Update

To update the firmware on the mainboard, copy the qd_mcu.bin firmware file to a microSD card and insert it into the printer's mainboard.

[!IMPORTANT] The microSD card must be formatted in FAT32 and have no hidden partitions. FAT16 or ExFAT will likely fail. The partition must also be smaller than 32GiB. [!TIP] To verify that the flashing procedure succeeded, chech that the firmware file has been renamed on the microSD to qd_mcu.CUR.

Toolhead Firmware Update

To flash the firmware to the toolhead, first stop the Klipper service:

sudo systemctl stop klipper.service

Then, use the following commands to flash the toolhead firmware:

python3 ~/katapult/scripts/flashtool.py -b 250000 -d /dev/ttyS2 -r
python3 ~/katapult/scripts/flashtool.py -b 500000 -d /dev/ttyS2 -r
python3 ~/katapult/scripts/flashtool.py -b 250000 -d /dev/ttyS2 -f ~/klipper_500000_withOffset.bin

Once the flashing process is complete, restart the printer to finalize the firmware update.

How to fix the UI version mismatch error

[!IMPORTANT] If upon restarting the printer, the display is in Mandarin and shows an error like the image below, navigate to the settings tab (the cog icon on the bottom-right) where you can change the language, connect to WiFi, etc. It's likely that the error is The UI version does not match the firmware, please check for updates or contact after-sales!. In this case, follow Qidi's Plus4 Firmware Update instructions.

image

Troubleshooting

If the TFT display remains stuck during the flashing process, restart the printer and try again.

Ensure the correct device paths are used during the MCU flashing process (e.g., /dev/ttyS2 for the toolhead).

If any issues persist, refer to FreeDi or Qidi community forums for assistance.

This process will revert your Qidi Plus 4 printer to the upstream Qidi firmware. You can now use it as originally intended with Qidi's official software stack.