UVtools icon indicating copy to clipboard operation
UVtools copied to clipboard

[Bug] UVTools issue with Saturn 4 Ultra

Open henriquegdec opened this issue 8 months ago • 38 comments

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:

Image

Image

Image

(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

  1. slice file for saturn 4 ultra
  2. open on UVTools
  3. do what UVTool does
  4. print a mess

Files

https://imgur.com/a/BN1L1a9

henriquegdec avatar Apr 03 '25 16:04 henriquegdec

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! 🙌

github-actions[bot] avatar Apr 03 '25 16:04 github-actions[bot]

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?

henriquegdec avatar Apr 03 '25 17:04 henriquegdec

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

sn4k3 avatar Apr 03 '25 18:04 sn4k3

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

yep, that worked, so it's definitely an issue with one of those settings

henriquegdec avatar Apr 03 '25 19:04 henriquegdec

Ok, I will prepare a patch with 0s on those for tilting vat printer.

sn4k3 avatar Apr 03 '25 19:04 sn4k3

You can test the new release

sn4k3 avatar Apr 04 '25 00:04 sn4k3

You can test the new release

i have the same issue with the latest release, Saturn 4 Ultra

Image

iT0ny avatar Apr 10 '25 14:04 iT0ny

You can test the new release

i have the same issue with the latest release, Saturn 4 Ultra

Send me the file

sn4k3 avatar Apr 10 '25 14:04 sn4k3

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.

syskin345 avatar Apr 12 '25 06:04 syskin345

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.

Image

mindrush12 avatar Apr 19 '25 05:04 mindrush12

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?

mindrush12 avatar Apr 19 '25 05:04 mindrush12

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

syskin345 avatar Apr 19 '25 05:04 syskin345

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.

mindrush12 avatar Apr 19 '25 06:04 mindrush12

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.

sn4k3 avatar Apr 19 '25 15:04 sn4k3

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.

mindrush12 avatar Apr 19 '25 15:04 mindrush12

It won't let me attach the file.

Compress to zip, if still not work use any file transfer host, like wetransfer.com

sn4k3 avatar Apr 19 '25 16:04 sn4k3

Try this https://we.tl/t-bey2OnUT0b

or this https://drive.google.com/file/d/1OGMXdv3-TxlEqA1B1ppDqRg4qNMPaI4E/view?usp=sharing

mindrush12 avatar Apr 19 '25 16:04 mindrush12

Try this https://we.tl/t-bey2OnUT0b

That file was not processed with UVtools. I need one that was and is failing.

sn4k3 avatar Apr 19 '25 16:04 sn4k3

Hmm I thought it was. Try this one https://we.tl/t-GYat1wJlBx

Otherwise I'll make the file again.

mindrush12 avatar Apr 19 '25 16:04 mindrush12

You know what it could of been the USB. Here is the file from my USB. https://we.tl/t-w43YfaXK2d

mindrush12 avatar Apr 19 '25 16:04 mindrush12

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

sn4k3 avatar Apr 19 '25 17:04 sn4k3

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.

mindrush12 avatar Apr 20 '25 03:04 mindrush12

To make sure file is safe to print, I recommend to look in UVtools information panel, look for this flag, which should be False:

Image

Note that flag is only changed when you save the file. So always check after save file.

sn4k3 avatar Apr 20 '25 03:04 sn4k3

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:

Image

mindrush12 avatar Apr 20 '25 14:04 mindrush12

Strange thing, can you get a way to reproduce this and send me the steps?

sn4k3 avatar Apr 20 '25 15:04 sn4k3

Yes I reproduced.

  1. Open UVtools
  2. open .goo file
  3. Click "Issues"
  4. Click "Fix Issues"
  5. Select all "Resin Trap" issues
  6. Right click and fill traps
  7. Save
  8. Close UVtools
  9. Open UVtools
  10. 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?

mindrush12 avatar Apr 20 '25 19:04 mindrush12

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.

sn4k3 avatar Apr 21 '25 02:04 sn4k3

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.

mindrush12 avatar Apr 21 '25 16:04 mindrush12

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?

sn4k3 avatar Apr 21 '25 16:04 sn4k3

Check latest release

sn4k3 avatar Apr 22 '25 01:04 sn4k3