[Bug] UVTools issue with Saturn 4 Ultra
System
UVtools v5.0.5 X64
Operative system: Microsoft Windows 10.0.17763 X64
Processor: AMD Ryzen 5 5600 6-Core Processor
Processor cores: 12
Memory RAM: 7.63 / 15.93 GB
Runtime: win-x64
Framework: .NET 9.0.0
AvaloniaUI: 11.2.3
OpenCV: 4.9.0
Sreens, resolution, working area, usable area:
1: 1920 x 1080 @ 100% (Primary) (On this)
WA: 1920 x 1040 UA: 1920 x 1040
2: 1600 x 900 @ 100%
WA: 1600 x 860 UA: 1600 x 860
Path: C:\Program Files\UVtools\
Executable: C:\Program Files\UVtools\UVtools.exe
Loaded file: 6 Exposure Tester 7 v2_1.goo [Version: 0] [Class: GooFile]
Printer and Slicer
- Printer: Saturn 4 Ultra
- Slicer: Voxeldance Tango
Description of the bug
I've had a Saturn 3 for a year and I've used UVTools on pretty much every single file I have printed and it always worked flawlessly, yesterday I bought a Saturn 4 Ultra and trouble started. When I print a file without going through UV Tools, it works, but after removing islands, suction cups, setting exposures, etc...I get this:
(the normal exposure is that high because my first thought was underexposure)
I've tried to-reslice and even using a completely different model and the result was the same. After a bunch of failed attempts I decided to skip using UVTools and voila it worked, then I tried that first model without UVTools and it worked as well. So without any doubt it's happening because of UVTools, why specifically or which feature I'm not sure. This afternoon I'll try to just open the sliced file on UVTools and save it without modifying a single thing. If it works, I'll try only removing the islands and so on until I find the exact cause
How to reproduce
- slice file for saturn 4 ultra
- open on UVTools
- do what UVTool does
- print a mess
Files
https://imgur.com/a/BN1L1a9
This is your first time submitting an issue with UVtools 🥳Please review your issue and ensure that the submit template was followed, the information is complete, and not related to any other open issue. It will be reviewed shortly. Debugging is very important and make the program better. Thanks for contributing and making the software better! 🙌
update: Even without changing a single setting I got the same messed up result, the files: https://drive.google.com/file/d/1IazA0UUobtkeHZ-yY8nGqaXZQxnuOSSM/view?usp=sharing
edit: I compared the two files and this seems to be the difference: First File: BottomLiftHeight = 0 LiftHeight = 0 BottomRetractHeight = 0 RetractHeight = 0
Second File: BottomLiftHeight = 0.05 LiftHeight = 0.05 BottomRetractHeight = 0.05 RetractHeight = 0.05
maybe this is causing the issue?
I compared your files and the result is:
UVtoolsCmd compare "D:\Tiago\Desktop\cabecas dos desolators e o dripper_1_02h48m_78ml_copy.goo" "D:\Tiago\Desktop\cabecas dos desolators e o dripper_1.goo"
Opening file cabecas dos desolators e o dripper_1_02h48m_78ml_copy.goo: Done in 0.60s
Opening file cabecas dos desolators e o dripper_1.goo: Done in 0.03s
[Global #17]
BottomLiftHeight: 0.05 != 0
LiftHeight: 0.05 != 0
MaterialGrams: 77.422 != 85.085
MaterialCost: 15.484 != 0
BottomLiftHeightTotal: 0.05 != 0
LiftHeightTotal: 0.05 != 0
BottomRetractHeightTotal: 0.05 != 0
RetractHeightTotal: 0.05 != 0
BottomRetractHeight: 0.05 != 0
RetractHeight: 0.05 != 0
StartingMaterialCost: 15.484 != 0
UVtools force 0.05 (layer height) as Lift parameters as a rule for tilting VAT printer. Your printer use tilting vat correct? Test the file, I now forced to 0, print and report back.
cabecas dos desolators e o dripper_1_02h48m_78ml_uvtools0mm.zip
I compared your files and the result is:
UVtoolsCmd compare "D:\Tiago\Desktop\cabecas dos desolators e o dripper_1_02h48m_78ml_copy.goo" "D:\Tiago\Desktop\cabecas dos desolators e o dripper_1.goo" Opening file cabecas dos desolators e o dripper_1_02h48m_78ml_copy.goo: Done in 0.60s Opening file cabecas dos desolators e o dripper_1.goo: Done in 0.03s [Global #17] BottomLiftHeight: 0.05 != 0 LiftHeight: 0.05 != 0 MaterialGrams: 77.422 != 85.085 MaterialCost: 15.484 != 0 BottomLiftHeightTotal: 0.05 != 0 LiftHeightTotal: 0.05 != 0 BottomRetractHeightTotal: 0.05 != 0 RetractHeightTotal: 0.05 != 0 BottomRetractHeight: 0.05 != 0 RetractHeight: 0.05 != 0 StartingMaterialCost: 15.484 != 0UVtools force 0.05 (layer height) as Lift parameters as a rule for tilting VAT printer. Your printer use tilting vat correct? Test the file, I now forced to 0, print and report back.
cabecas dos desolators e o dripper_1_02h48m_78ml_uvtools0mm.zip
yep, that worked, so it's definitely an issue with one of those settings
Ok, I will prepare a patch with 0s on those for tilting vat printer.
You can test the new release
You can test the new release
i have the same issue with the latest release, Saturn 4 Ultra
You can test the new release
i have the same issue with the latest release, Saturn 4 Ultra
Send me the file
Are you saving the file as .goo or .ctb? I was never able to successfully print a UVTools-exported .goo file on S4U and simply stopped trying. .ctb works perfectly.
To be precise, the printer prints a .goo file with layer height of 0 - the Z-axis just doesn't move.
I got the same issue! I'm just glad I found the cause and I'm not going crazy. I also have a Saturn 4 Ultra 16k.
Are you saving the file as .goo or .ctb? I was never able to successfully print a UVTools-exported .goo file on S4U and simply stopped trying. .ctb works perfectly.
To be precise, the printer prints a .goo file with layer height of 0 - the Z-axis just doesn't move.
So if I use a .ctb file on the S4U than it'll work fine?
So if I use a .ctb file on the S4U than it'll work fine?
Well, it seems to always work fine for me, that's all I can promise.
Use Convert To -> Chitubox -> Chitubox CTB (Encrypted) -> Version 5
So if I use a .ctb file on the S4U than it'll work fine?
Well, it seems to always work fine for me, that's all I can promise.
Use
Convert To->Chitubox->Chitubox CTB (Encrypted)->Version 5
Haha I'm afraid to try it. I wish there was another way to fill voids! It seems the models from titancraft always have voids.
I got the same issue! I'm just glad I found the cause and I'm not going crazy. I also have a Saturn 4 Ultra 16k.
You saying that still have the issue with recent UVtools? That should be fixed... Send me your problematic file.
I got the same issue! I'm just glad I found the cause and I'm not going crazy. I also have a Saturn 4 Ultra 16k.
You saying that still have the issue with recent UVtools? That should be fixed... Send me your problematic file.
It won't let me attach the file.
It won't let me attach the file.
Compress to zip, if still not work use any file transfer host, like wetransfer.com
Try this https://we.tl/t-bey2OnUT0b
or this https://drive.google.com/file/d/1OGMXdv3-TxlEqA1B1ppDqRg4qNMPaI4E/view?usp=sharing
Try this https://we.tl/t-bey2OnUT0b
That file was not processed with UVtools. I need one that was and is failing.
Hmm I thought it was. Try this one https://we.tl/t-GYat1wJlBx
Otherwise I'll make the file again.
You know what it could of been the USB. Here is the file from my USB. https://we.tl/t-w43YfaXK2d
The problem on your case looks related to using per layer settings, it's active due a precision error on layer height which UVtools turns on when found difference between globals and layer settings. I will include a tweak to handle this precision errors making the flag off in this case.
Your file start to show precision errors after this layers (1739):
layer[1735]: Pause: 0, PausePositionZ: 220, PositionZ: 52.08, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 265, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1736]: Pause: 0, PausePositionZ: 220, PositionZ: 52.11, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 256, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1737]: Pause: 0, PausePositionZ: 220, PositionZ: 52.14, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 252, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1738]: Pause: 0, PausePositionZ: 220, PositionZ: 52.17, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 248, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1739]: Pause: 0, PausePositionZ: 220, PositionZ: 52.199, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 253, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1740]: Pause: 0, PausePositionZ: 220, PositionZ: 52.229, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 289, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1741]: Pause: 0, PausePositionZ: 220, PositionZ: 52.259, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 265, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1742]: Pause: 0, PausePositionZ: 220, PositionZ: 52.289, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 250, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1743]: Pause: 0, PausePositionZ: 220, PositionZ: 52.319, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 254, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1744]: Pause: 0, PausePositionZ: 220, PositionZ: 52.349, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 258, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1745]: Pause: 0, PausePositionZ: 220, PositionZ: 52.379, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 269, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
layer[1746]: Pause: 0, PausePositionZ: 220, PositionZ: 52.409, ExposureTime: 1.6, LightOffDelay: 0, WaitTimeAfterCure: 0, WaitTimeAfterLift: 0, WaitTimeBeforeCure: 1.2, LiftHeight: 0, LiftSpeed: 0, LiftHeight2: 0, LiftSpeed2: 0, RetractHeight: 0, RetractSpeed: 0, RetractHeight2: 0, RetractSpeed2: 0, LightPWM: 255, DelimiterData: System.Byte[], DataLength: 273, Parent: UVtools.Core.FileFormats.GooFile, EncodedRle: System.Byte[]
To solve your situation now, you can go to File menu and while hold SHIFT key, press on Reset layer properties
Thank you! How are you able to see this information in the files? Before I go test the print, can you look over these files? https://we.tl/t-xzJD5O8PGj
uv fixed goo file no reset: this file is the baseline without reseting layer properties uv fixed goo file with layer options reset: this is a goo file with the reset layer properties done uv fixed ctb file: I made a ctb file as well which was reccomended.
To make sure file is safe to print, I recommend to look in UVtools information panel, look for this flag, which should be False:
Note that flag is only changed when you save the file. So always check after save file.
Alright I am a bit more confused now. I tested looking for the False condition with two files. The file I ran through UVtools and didn't follow your advice to "go to File menu and while hold SHIFT key, press on Reset layer properties", it has the False condition which you said it should be. The file where I did "reset layer properties", I got this error:
Strange thing, can you get a way to reproduce this and send me the steps?
Yes I reproduced.
- Open UVtools
- open .goo file
- Click "Issues"
- Click "Fix Issues"
- Select all "Resin Trap" issues
- Right click and fill traps
- Save
- Close UVtools
- Open UVtools
- open new saved .goo file.
Now when I just use default settings and don't shift click the reset layer properties in the file open menu it opens fine and it defaults to FALSE on PerLayerSettings. I just had a successful test print ensuring the file said False under PerLayerSettings. So I'm not sure what my initial problem was. Was it the PerLayerSettings = 0?
The shift key is only required if your file have rounding problems on layer height. Otherwise you can run without shift. PerLayerSettings = 0 = false. But no, the error you post is not related to that.
Alright thank you. My most recent print was successful. It doesn't feel good that everytime I use UVtools its like a gamble lol. Is there any way to guarantee it won't happen? The flattening of my models is what I'm talking about. Last one caused a hole in my FEP screen.
I'm making modifications to ease the layer precision error, you should see less of PerLayerSettings = true with new release.
It's so bad that printers have such flag, but this flag only cause trouble, also known to cause trouble in anycubic printers. Its a feature they have you seems you can't use it...
If you can, use CTB format, it's a bit better when having to deal with PerLayerSettings
I will try to catch the RLE bug you posted and then make a release.
Yes I reproduced.
In which file can I do that?
Check latest release