Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] UVTools produces corrupted pm5s files for the Anycubic Photon Mono 5s #742

Closed
cdheiser opened this issue Jul 19, 2023 · 24 comments
Closed
Assignees

Comments

@cdheiser
Copy link

System

UVtools v3.15.1 X64
Operative system: Darwin 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun  8 22:22:22 PDT 2023; root:xnu-8796.121.3~7/RELEASE_X86_64 X64
Processor: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
Processor cores: 16
Memory RAM: 15.84 / 28.12 GB
Runtime: osx.13-x64
Framework: .NET 6.0.18
AvaloniaUI: 0.10.21
OpenCV: 4.7.0

Sreens, resolution, working area, usable area:
1: 1792 x 1120 @ 200% (Primary)
    WA: 1792 x 1095    UA: 896 x 548
2: 3200 x 1800 @ 200%
    WA: 3200 x 1775    UA: 1600 x 888

Path:       /Applications/UVtools.app/Contents/MacOS/
Executable: /Applications/UVtools.app/Contents/MacOS/UVtools
Loaded file: Diablo One.pm5s [Version: 518] [Class: PhotonWorkshopFile]

Printer and Slicer

  • Printer: Anycubic Photon Mono M5s
  • Slicer: Prusa Slicer 2.6.0

Description of the bug

Initial generated pm5s files are corrupted resulting in a print that does not proceed past the first layer. Print times displayed are several orders of magnitude greater than what's expected (hundreds of hours), and never proceeds past the first layer.

I've made both the bad and working pm5s files available here: https://file.io/JoWgslx6cLfQ as well as the sl1 file these were converted from. I can also share the original prusa project.

How to reproduce

  1. Slice a file in Prusa Slicer
  2. Export in SL1 Format
  3. Open in UVTools
  4. Copy converted pm5s file to the printer
  5. Print the file
  6. Observe the print time looks correct until the first layer goes to print and then jumps by a factor of approximately 100x

If you reopen the pm5s file and make a no-op change and re-save it, the resulting file prints successfully.

Files

No response

@github-actions
Copy link

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

@sn4k3
Copy link
Owner

sn4k3 commented Jul 19, 2023

If I understand correctly, the conversion out of SL1 generates a bad file, but if you reopen the file and force a resave without any other change it makes files good?

@cdheiser
Copy link
Author

cdheiser commented Jul 19, 2023 via email

@cdheiser
Copy link
Author

cdheiser commented Jul 19, 2023 via email

@sn4k3
Copy link
Owner

sn4k3 commented Jul 19, 2023

There is a better way to force a full save: Pixel editor and erase a black pixel on a black pixel (Does nothing but turns the full encode flag). Also, it's possible to change the save flag via Terminal with two lines of code.
Your method rebuilds all layer's properties which is "aggressive"

What I find between both:
Model XY info is missing on bad file, but I think it's not required, anyway I provide a file with only that fixed to you to try and report back.
Then the per layer settings is enabled which will follow layer table instead of the global settings, while your good file have that set to false and I confirm that force a full encode without any other setting turn that to false

@cdheiser
Copy link
Author

The file you provided had the same behavior. I've attached a photo of the status screen on the printer.
IMG_20230718_221907498

I ran this test with the build plate and vat off so I could see what's going on. The first layer does what you'd expect, 10 second exposure, but then it just sits there, screen off, like there's some extra wait time it needs to do.

@sn4k3
Copy link
Owner

sn4k3 commented Jul 19, 2023

Can you check if theres an firmware upgrade for your printer?
Because that is not normal, it is triping by follow layer table and those are correct set as I have checked.
Please report back with your firmware version

@cdheiser
Copy link
Author

cdheiser commented Jul 19, 2023 via email

@sn4k3
Copy link
Owner

sn4k3 commented Jul 19, 2023

Ok, so let's do another test...
Slice a file on Anycubic slicer, test if its printing and attach here. (Without UVtools processing)

@cdheiser
Copy link
Author

cdheiser commented Jul 19, 2023 via email

@sn4k3
Copy link
Owner

sn4k3 commented Jul 19, 2023

Now try the same file but with per layer flag on (Manually edited): Diablo WingsPerLayer.zip

@cdheiser
Copy link
Author

cdheiser commented Jul 19, 2023 via email

@sn4k3
Copy link
Owner

sn4k3 commented Jul 19, 2023

Then is a firmware bug, and a bad one that prevent you from use that feature.
UVtools have a bug in that conversion stage that set flag ON when it shouldn't, will be fixed on next release.

For now use this workaround after conversion and save again (Reset layers properties):

image

@DanJaramillo
Copy link

I have the same issue when running Lychee Slicer 5.2.201 to slice followed by UV Tools 3.15.1 to post process. The Lychee generated file displays correct times and layers, however the UV Tools file does not print beyond the first layer, show a correct preview, or show correct times. This is evident on both the AnyCubic M5S interface as well as the AnyCubic Photon Workshop.

sn4k3 added a commit that referenced this issue Sep 17, 2023
- **UI:**
  - **Settings:**
    - (Add) Themes: Fluent default, which set light/dark mode depending on system settings
    - (Add) Theme density which only applies to Fluent theme
    - (Change) Themes: Rename "Default" to "Simple"
    - (Remove) Simple theme
  - **Exposure time finder:**
    - (Fix) "Multiple layer height" panel visibility was wrongly check for `ExposureTime` instead of `PositionZ`
    - (Fix) "Multiple exposures" panel was always visible even if not able
    - (Improvement) Disable "Multiple exposure" and "Multiple heights" for the AnyCubic format
  - **Tool windows:**
    - (Fix) Align the description to the left to fix the misalignment when resizing the window
    - (Fix) Make layer selection shortcuts to work
  - (Fix) Some invalid bindings
  - (Fix) Save properties to disk/clipboard was disabled when file has no thumbnails
  - (Fix) File - Reset layer properties was no unlocking the File - Save
  - (Improvement) When sending a command under "File - Terminal", it will now unlock the "File - Save" option and refresh the UI with the new information if changed
  - (Improvement) When moving model by an operation or suggestion it will redetect the issues to update their positions (#752)
- **Layer actions - Import layer(s):**
  - (Add) Button to set the current layer
  - (Improvement) If any file isn't imported it will show an message informing why
  - (Fix) Layer properties were getting rebuilt (#739)
- **File formats:**
  - (Change) Thumbnails logic, it's now a `List` instead of a fixed array, this allow to dynamic add or remove thumbnails without having a fixed number
  - (Fix) The flag for using per layer settings (`IsUsingGlobalParameters`) now take into account if layer is able to use each property in check before compare (#742)
  - (Fix) Accessing `BoundingRectangleMillimeters` was not calculating the `BoundingRectangle` if necessary
  - (Fix) SL1: Files with thumbnails size different from original SL1 would not display under the UI
  - (Fix) Anycubic: Model information is not set after an auto-conversion from SL1
  - (Fix) CTB: Error when open file in partial model with malformed file due invalid checksum
  - (Fix) Image files: Could not find a writer for the specified extension (#755)
- **UVtoolsCmd:**
  - (Add) "compare" command to compare two files and output the differences
  - (Add) "print-formats" command to print the available formats
  - (Improvement) Improve "extract" command to allow extract specific thumbnails or layers in a range or indexes (#754)
- **Project:**
  - (Change) Rename UVtools.WPF to UVtools.UI
  - (Change) Make UVtools.UI nullable enabled
  - (Remove) UVtools.GUI
  - (Improvement) Use CompiledBinding instead of ReflectionBinding
  - (Improvement) Sign the libraries and project with a strong key
  - (Upgrade) .NET from 6.0.18 to 6.0.22
  - (Upgrade) AvaloniaUI from 0.10.21 to 11.0.4
  - (Upgrade) OpenCV from 4.7.0 to 4.8.0
- (Add) PrusaSlicer printer: Elegoo Saturn S
@sn4k3
Copy link
Owner

sn4k3 commented Sep 17, 2023

Fixed

@sn4k3 sn4k3 closed this as completed Sep 17, 2023
@Rubiniuz
Copy link

Rubiniuz commented Sep 28, 2023

So the above comment

Then is a firmware bug, and a bad one that prevent you from use that feature. UVtools have a bug in that conversion stage that set flag ON when it shouldn't, will be fixed on next release.

For now use this workaround after conversion and save again (Reset layers properties):

image

this is the fix? cant this be fixed in a uv tools update? or is this a anycubic issue?

just clicking that button fixes the issue? or are there more steps required?

I really want to use uv tools but i also get that first layer issue. a step by step guide also posted on reddit could save a lot of people a lot of time.

edit: I am using version 4.0.1 and have the same issue

@sn4k3
Copy link
Owner

sn4k3 commented Sep 28, 2023

It's fixed on v4, however the bug persist on the firmware, if you use the suggestions on UVtools it will enable the flag that trigger the problem. If you only use to fix issues it won't be enabled.

If and only after you save the file the following highlight "PerLayerOverride" is True printer will produce that problem

image

In your case if you see True you must turn that False by the trick of "reset layer properties".

@Skorinn
Copy link

Skorinn commented Oct 23, 2023

I am able to reproduce this bug with 4.0.3:

image

After slicing the file with Lychee, and openning in UVTools the PerLayerOverride property is False:

image

I used the Pixel Editor to delete a blank pixel and saved the file (Save As). After which the PerLayerOverride is True:

image

Using the Reset Layer Properties does reset it back to False. Please let me know if you need any additional information.

Thanks

@Rubiniuz
Copy link

I am able to reproduce this bug with 4.0.3:

image

After slicing the file with Lychee, and openning in UVTools the PerLayerOverride property is False:

image

I used the Pixel Editor to delete a blank pixel and saved the file (Save As). After which the PerLayerOverride is True:

image

Using the Reset Layer Properties does reset it back to False. Please let me know if you need any additional information.

Thanks

Yeah exactly. thats why we closed it. thanks for the heads up again

@Skorinn
Copy link

Skorinn commented Oct 24, 2023

Yeah exactly. thats why we closed it. thanks for the heads up again

I'm not sure I follow. Based on the comments above, I thought that 4.0.0 included a fix for UVTools to not always set PerLayerOverride to True when using it to detect and repair issues (i.e., islands, resin traps, etc.). Is that not the case?

If not, I'm curious if there are plans to make that change or if this is the intended behavior? The workaround provided (thank you) is easy enough to make this a low priority, but it is easy to forget to do,

If the change has been made, is there something I am doing incorrectly that is resulting in that property getting set to True? What triggers that change?

Thanks

@sn4k3
Copy link
Owner

sn4k3 commented Oct 24, 2023

You need to provide the file, for me replicate and find the problem.

I thought that 4.0.0 included a fix for UVTools to not always set

Yes, until you apply suggestions or have them to auto apply the PerLayerOverride will turn true when using wait times.
Also, if slicer sets an individual value on layer different from global it will cause UVtools to set that to true on save time.

@Skorinn
Copy link

Skorinn commented Oct 24, 2023

You need to provide the file, for me replicate and find the problem.

Here is the file created by Lychee before post-processing (PerLayerOverride=False): M5_100um_3DSLA_TestModel.pm5s

This is the file saved by UVTools after solely using the Pixel Editor to delete a black pixel (PerLayerOverride=True): M5_100um_3DSLA_TestModel_00h32m_1ml_copy.pm5s

Thanks

@sn4k3
Copy link
Owner

sn4k3 commented Oct 25, 2023

The problem is on slicer or how you have configured it:

All layers are set with 1200 mm/min lift speed, however the global properties are set with 180mm/min. UVtools find that and turn flag on to respect layer data instead.
Only the global lift speed and retract speed for normal layers shows 1200 mm/min, but all others does not match layer data. Something is odd, that value ins't normal either, please inspect your slicer print settings (profile). Also make sure you have your slicer up to date.
Note that reset print properties will not sane that insane speed. As so I recommend to reset values, go to edit print parameters and set good values there.

image

@Skorinn
Copy link

Skorinn commented Oct 25, 2023

The problem is on slicer or how you have configured it:

That makes sense. I'll take a look at fixing the profile in the slicer. Thank you for looking into this for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants