Q1 Pro Rollback¶
This section describes the procedure and some things to look for when restoring the stock system on your QIDI Q1 Pro printer.
Before we start:¶
Some users switch to FreeDi hoping it will resolve hardware issues with their printer.
Unfortunately, this is not something FreeDi can fix: It is a software project, not a hardware solution.
After realizing this, some users become frustrated and send unkind messages because reverting to stock firmware is not as streamlined (with a nice on screen wizard etc.) like installing FreeDi. Please keep in mind:
- FreeDi is a completely free project that has cost thousands of hours of personal free time.
- This rollback guide you are reading right now and the precompiled stock firmwares provided here also required many hours of additional work - work that was never intended to be part of this project.
- The stock-compatible Klipper firmwares were created by manually installing the stock firmware and building the necessary firmware files by myself to provide the precombiled binaries for you.
This effort deserves recognition. Please be respectful and maintain a friendly tone.
Unkind messages are not acceptable, regardless of your frustration.
If you are having a hard time rolling back, simply get in touch with us - preferably on Discord - and we can help you out 😊.
Overview¶
To complete the rollback to stock firmware:
you will need to perform the following steps:
- Flash Stock Display Firmware - Restore the touchscreen interface to QIDI's original firmware
- Flash Precompiled Toolhead MCU Firmware - Restore the toolhead microcontroller firmware
- Flash Precompiled Mainboard MCU Firmware - Restore the mainboard microcontroller firmware
- Flash Stock Operating System to eMMC - Install QIDI's original OS onto the internal storage
Flashing the Display Firmware¶
Download the QIDI TFT Firmware¶
Download the QIDI TFT Firmware from QIDI's official Q1 Pro repository.
Download the 800_480_PLUS.tft as Raw file (Important! Really use Raw file to download it 😉)
Rename it to stock_firmware.tft to follow this guide.
Copy the firmware to the printer¶
Transfer the downloaded TFT firmware to your FreeDi installation folder (~/FreeDi/screen_firmwares/). You can do this using WinSCP or MobaXterm.
If you already have the firmware file on your printer, you can copy it using the following command:
cp /path/to/downloaded/stock_firmware.tft ~/FreeDi/screen_firmwares/
Find the latest FreeDi display firmware version¶
Here is the trick: We will use the FreeDi software pipeline to flash the stock screen firmware to the display.
To do so, we need to know the latest FreeDi version on your system.
Check the ~/FreeDi/screen_firmwares/ directory and find the latest FreeDi version of your printer.
The filenames look like this:
x-smart3_stable_v2.00.tft
x-smart3_stable_v2.01.tft
x-plus3_x-max3_plus4_stable_v2.00.tft
x-plus3_x-max3_plus4_stable_v2.01.tft
q1_pro_stable_v2.00.tft
q1_pro_stable_v2.01.tft
Search for the most recent version of your printer.
In this guide we are using q1_pro_stable_v2.10.tft as an example and you have to adapt the commands to your file name.
Stop the FreeDi Service¶
Before flashing the new firmware, stop the FreeDi service:
sudo systemctl stop FreeDi
(Optional) Backup your 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/q1_pro_stable_v2.10.tft ~/FreeDi/screen_firmwares/q1_pro_stable_v2.10.bak
Rename the QIDI firmware to Match the FreeDi firmware name¶
Rename the QIDI firmware file to match the existing FreeDi firmware filename:
mv ~/FreeDi/screen_firmwares/stock_firmware.tft ~/FreeDi/screen_firmwares/q1_pro_stable_v2.10.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
This command will use my FreeDi software to flash the stock firmware to the TFT display.
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 (reason is the weak serial hardware).
Getting the precompiled firmware binaries¶
Now that the display is flashed, it is time to get the firmware binaries for the mainboard and the toolhead.
Please find the attached Q1_stock_firmwares.zip file:
Download Q1_stock_firmwares.zip
Unzip the files.
You will find a qd_mcu.bin and a q1_pro_toolhead_stock_klipper.uf2.
They are precompiled firmware binaries for the mainboard and the toolhead that I created to match the stock klipper version.
Copy the q1_pro_toolhead_stock_klipper.uf2 file to the ~/ directory using WinSCP/MobaXterm or something similar.
We will need the qd_mcu.bin later.
Flashing the Toolhead MCU Firmware¶
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 ~/q1_pro_toolhead_stock_klipper.uf2
Shut the system down (sudo shutdown) and shut it off (switch off).
Flashing the Mainboard MCU Firmware¶
To flash the mainboard MCU, copy the qd_mcu.bin firmware file to a microSD card.
The printer should still be turned off, if not -> do it now.
Insert microSD card into the printer's mainboard.
Turn the printer on and wait ~10s for the flashing process to complete and then shut down the printer.
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.
If successful, the display should show the stock firmware version and may show an error or never get "ready".
This is expected behavior because the screen firmware is now stock and can't get find the stock QIDI software on the system.
Once the flashing process is complete, restart the printer to finalize the firmware update.
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, get in touch with the FreeDi community for assistance.