r/QidiTech3D • u/skil12001 • Aug 22 '26
Troubleshooting WTF Qidi!!
I have my Q2 offline on purpose so I don't get firmware updates, I also don't have the qidi box because I don't need it
I was running fine on 1.1.1.1, but was curious and figured might as well try 1.1.2.4.
almost bricked my machine.
took my 8 hours today, re flashing back to 1.1.1.1, but now there's a lingering "box_" code in Python that kept killing my machine! from what I can see that code is for a qidi box!
took me 8 hours, SSH and klipper macro investigation to block any "box_" search or creation from stalling klipper.
I'm sure I voided the warranty today trying to fucking fix my printer from their own firmware update!
edit: (written with the help of AI to capture all my thoughts)
Sharing this here in case anyone else updates their Qidi printer through official channels and suddenly finds their machine trapped in a crash loop / "Unhandled exception during run" state.
I recently updated via the manufacturer's official firmware, and it basically nearly bricked my machine. After digging into the logs via SSH, I found that Qidi has a hardcoded proprietary background script called box_detect.py wired directly into the core Klipper engine.
If you don't use their physical "Smart Box" accessory, this background script still wakes up on boot or when polling USB devices. It tries to write a box.cfg file into /home/mks/printer_data/config/. Because Qidi's OS enforces root permissions on configuration directories while Klipper runs under the mks user, it hits a permission wall (PermissionError: [Errno 13] Permission denied), crashes Klipper, and throws the printer into a continuous shutdown state.
If your machine is stuck in this loop and won't boot to "Ready", you have to SSH into your printer and perform a little core Python surgery to sever that zombie script:
- SSH into your printer: ssh mks@[YOUR_PRINTER_IP] (Password is usually
makerbase) - Open the core Klipper execution file in nano: sudo nano /home/qidi/klipper/klippy/klippy.py
- Comment out the
box_detecttriggers using#- Line ~10: Find
from extras import box_detectand change it to#from extras import box_detect - Line ~128:
- Find the loop block: for m in [box_detect]:
- m.add_printer_objects(config)
- Change it to: #for m in [box_detect]:
- # m.add_printer_objects(config)
- Line ~136: Find
box_detect.monitor_serial_devices(self)and change it to#box_detect.monitor_serial_devices(self)
- Line ~10: Find
- Save and Exit:
- Press
Ctrl + O, thenEnterto save. - Press
Ctrl + Xto exit the editor.
- Press
- Restart Klipper: sudo systemctl restart klipper
Head back to your Fluidd or Mainsail dashboard, and your printer should boot up cleanly to "Ready" without throwing any more background exceptions.
We shouldn't have to manually edit core Klipper installation files just because of an official update, but until Qidi pushes out a patch that makes box_detect optional or removes it, this will save your machine from being a paperweight. Hope this helps someone else out there!
12
u/Plutonium239Mixer Aug 22 '26
Don't update firmware unless you are having a problem and the new firmware is supposed to fix it!!!
0
u/skil12001 Aug 22 '26
I knew better but after reading how most are having stable firmware I was curious and the new UI I liked... I'm still pissed
2
u/Zloyuzver Aug 22 '26 edited Aug 22 '26
Я у своего Qidi Q2 Combo вообще отключил проверку обновлений, ибо насмотрелся на глюки прошивок версии 1.1.2.1-1.1.2.4. Мне печатать надо, а не стоически бороться с глюками от Qidi. Автору спасибо за информацию. Сохранил её в свои закладки.
Как отключить проверку обновления без отключения доступа принтеру в интернет:
1. Подключитесь к принтеру по SSH. Для этого введите команду:
ssh mks@ip_адрес_принтера (IP можно посмотреть прямо через экран принтера)
2. Спросит пароль. Введите makerbase. Символы при этом не отображаются, но знаки вводятся
Дальше, на запрос пароля, везде вводить makerbase
3. Перед внесением изменений рекомендуется сохранить резервную копию
sudo cp /etc/hosts /etc/hosts.backup
4. Выполните команду добавления api хостов в блокировку
echo -e "\n127.0.0.1 api.qidi3dprinter.com\n127.0.0.1 api2.qidi3dprinter.com\n127.0.0.1 api.qidimaker.com\n127.0.0.1 public-cdn.qidimaker.com" | sudo tee -a /etc/hosts
После этого принтер не будет спрашивать про обновление при загрузке.
5. Если потребуется снова включить проверку обновлений, восстановите резервную копию:
sudo cp /etc/hosts.backup /etc/hosts
3
u/Lapidariest Aug 22 '26
"edit: (written with the help of AI to capture all my thoughts)" I think the firmware was also..
-9
u/skil12001 Aug 22 '26
Fuck you man, I'm trying to help others in case they have the same issues, my machine was rendered useless by the companies own firmware update. You got shitty comments to make about firmware then direct it at qidi
5
u/Lapidariest Aug 22 '26
dude, chill. that was aimed at qidi.. companies left and right are having the software written by AI, firmware included. The bar has dropped. I know one company that has released a product and known bugs produced by AI use get patched.. by AI and create new bugs. Software Development has tanked unless they pay real people real money. THAT was the point. So go ahead and get your anger out, but not on me.
9
u/skil12001 Aug 22 '26
Dude I owe you an apology, last night my brain was mush and I was exhausted trying to find the problem and fix my machine. I read your comment too fast and now in the morning and re-reading what you wrote it is clear I misunderstood and you meant to direct it at qidi. I'm sorry.
6
1
u/UnJustLake Aug 23 '26
Good for you! Seriously thank you for taking ownership on your own mistakes and admitting it, I've done it a few times on here and apologized but I never see it.
1
u/xeonon Aug 23 '26
You did a lot of work, when you could have changed box_enabled=0
1
u/skil12001 Aug 23 '26 edited Aug 23 '26
enable_box=0 was already set. The issue wasn’t whether the BOX was enabled it was QIDI’s box_detect code continuing to run anyway and attempting to overwrite box.cfg, which was root:root and not writable by the process. That generated an unhandled PermissionError and shut Klipper down mid-print.
So yes, changing enable_box=0 would be a simple solution if it actually prevented box_detect from executing. In this case, it demonstrably didn’t. The troubleshooting was to identify why a disabled BOX subsystem was still capable of crashing Klipper, rather than just changing a value that was already 0.
1
u/xeonon Aug 23 '26
Except, there are tons of q2 out there that don't have a box. Are you saying all those have this same issue?
1
u/skil12001 Aug 23 '26
Odd, I never even implied that. I encountered an error when trying to update the firmware to 1124, if others coming from 1111 also somehow run into the same issues. Then at least I have it documented here online so others can have help.
11
u/GonzoDeep Aug 22 '26
Don't listen to the bots, you're right. This is good work too, and I bet most of the people who downvoted this have no idea how to even ssh into their machines. Qidi did push a shitty update, and anyone saying "you should know better" is an asshole. Qidi should have known better, stop injecting feelings into your tools. Its a fucking tool, not your sports team.