Create a mask with UV sensor

DanOrgan
Posts: 49
Joined: Mon Aug 03, 2015 10:14 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby DanOrgan » Thu Mar 03, 2016 5:42 pm

CaptainBisquick, is your CW stable on Virtual machine? Don't you have any problems with missing microsteps?
Because I had some issues regard to CPU performance
Slow PC will affect print quality.

CaptainBisquick
Posts: 26
Joined: Tue Dec 22, 2015 2:31 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby CaptainBisquick » Fri Mar 04, 2016 2:49 am

I'll continue to update this post so that any info I share is not spread out in many different places.

https://www.dropbox.com/s/5xhy1fei4rwia ... -0.2.blend

This is the file to produce a UV mask using Blender (open source, totes free dudes). The Blender interface isn't conventional, but if you do the UI tutorials, it's not that hard to use. But here's some of the basics:

• Tab key on a selected mesh and you can adjust the vertex data. The XYZ for the active point is in the sidebar of the 3D view.
• The 3D cursor is the thing that jumps to the mouse location when you left click in the 3D view. You can snap it to stuff (shift-S) and then use it as the reference point for transformations like scaling, if you set the 3D cursor as the pivot center (hotkey: the alphanumeric pad period key).

How to use this file:
• In the top right you should see a button that says "bake". If you click it, you should see an image render in the bottom right. In that panel, you can save the image to use as a UV mask (I recommend JPG).
• You use edit mode to manipulate the height map mesh. You then have to change back to object mode, so you can select the height map mesh, followed by the projection plane, and then press "bake", so you can save the image.
• Keep your height map Z values between 0 and 1. If for some reason your values are not in that range, you can use the normalize option. This just means the farthest Z distance gets mapped to either 0 or 1, and the projection plane is at 0.5 on Z. I strongly recommend not using normalize.
• I've raised one corner of the height map so you can see a bright corner in the output, and verify that your top and bottom are correct on the projector. I've also marked the bottom of the height map mesh with a green edge (only shows in edit mode).


Caveats:
(1) In CW (or at least the version I'm using), if you change the mask, you have to save it under a new name in order see the changes in CW. CW doesn't release the file memory for writing after it's been opened, unless you quit and reopen CW.

I don't have clear instructions for you on how to get the perfect output. I'm working on figuring out a method myself. The values of the image don't seem to have a linear relationship to the output UV value, which makes this harder.

The Z position of the projection plane is your 50% spot.

(3) I chose to extrude the edges of the height map mesh so that I would have a margin around the whole map. You can delete this extended border if you want, but I don't recommend it. The margin ensures that you get the expected mask values in the circles near the vat edges.

(4) This would be more useful if the resultant output values could be known prior to applying the mask. I'm working on this problem currently.


This method could be automated by writing a python script which imports all the CSV data and sets the height of the vertices for the user, and triggers the render process and opens the save image dialog. I don't have time to do this task, but if someone would like to take it on, feel free to increment the version and host it on dropbox. If the tool becomes polished enough we could put it on github.
Last edited by CaptainBisquick on Mon Mar 14, 2016 6:41 am, edited 6 times in total.

nc42
Site Admin
Posts: 126
Joined: Wed Oct 22, 2014 3:18 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby nc42 » Fri Mar 04, 2016 11:33 am

Awesome work. Nice to see an open source solution.

CaptainBisquick
Posts: 26
Joined: Tue Dec 22, 2015 2:31 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby CaptainBisquick » Sat Mar 05, 2016 2:04 am


CaptainBisquick
Posts: 26
Joined: Tue Dec 22, 2015 2:31 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby CaptainBisquick » Mon Mar 14, 2016 4:31 am

All my prints have been worse since I've been trying this UV mask technique. I won't go into the details of all the reasons.

I decided that I must figure out how to predict the resultant intensity for a given mask value and projector coordinate. So I chose 4 of the brightest points and sampled each 10 times at every gray value between 0 and 100, in increments of 5. The points I chose were 3, 5, 14, and 15.

I entered that data into a spreadsheet to get the averages: http://bit.ly/1M1AuWf
Then I produced this graph: https://output.jsbin.com/wojuro (X axis = black-to-white, 0-to-100)

If you're going to be measuring the UV output like this, you should get a pair of these (they work with glasses too):
http://www.amazon.com/gp/product/B0017Z ... ge_o01_s00

I'm trying to think of some good explanations for the noisy plateau at the top of each curve. Either the sensor is too noisy for this use, or the UV intensity is exceeding the acceptable range of the sensor (seems doubtful). Or maybe the noise is more apparent at full intensity, and the falloff for white happens to be very sharp. Thoughts anyone? My projector brightness is at 60%. What brightness are you using?

Not very comforting results, but I'm still hopeful I'll produce a map which is good enough. I still need to sample more points from the projection to see how dimmer areas respond to the mask.

goopyplastic
Posts: 236
Joined: Sat Mar 29, 2014 6:16 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby goopyplastic » Mon Mar 14, 2016 11:53 am

I have been playing around with the UV sensor a bit and have some concerns as well as ideas.

A couple things I notice:

1) The UV sensor is highly directionally sensitive, and the angle of the projector beam changes across the build plate changes as you move away from center. I'm not sure we are getting accurate results using a grid mechanism that doesn't account for this change in angle.

2) The range outside the UV sensors sweet spot is more important than I previously thought. I believe most of the bulb curing is happening in the 400+ nm range on these DLP's so I'm not sure we getting good results. I always thought the UV sensor would be a good way to get relative results, compare projectors etc. but now I'm not so sure.

3) Defocus, I imagine a lot of people are trying to use a mask to fix curing issues associated with edge blurriness. I'm not sure increasing the cure time in those areas will work this way, particularly on small features.

I think a better approach might be the less glamorous, printing an STL of cylinder and measuring the widths of those cylinders, and generating a UV mask from those.

I am also looking at some photographic methods, such as cyanotypes etc. to generate a map of the needed mask.

DanOrgan
Posts: 49
Joined: Mon Aug 03, 2015 10:14 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby DanOrgan » Wed Mar 16, 2016 9:55 am


cardin1
Posts: 19
Joined: Thu Aug 28, 2014 10:20 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby cardin1 » Fri Mar 18, 2016 10:56 am


kakapoopie
Posts: 115
Joined: Sun Jun 15, 2014 8:49 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby kakapoopie » Fri Mar 18, 2016 5:03 pm

Anybody tried UV sensitive paper yet?

zet-jaro
Posts: 5
Joined: Wed Dec 23, 2015 11:21 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Create a mask with UV sensor

Postby zet-jaro » Tue Mar 29, 2016 1:32 pm

Hi guys,

I have to say, this is really great project!

Though, I have a small problem:
I've assembled my UV sensor and at the beginning I was getting some values between 13 and 17 but after couple of minutes of playing, I started to get values between 0.03 and 0.05. Did anybody had a similar issue? Is it possible that my sensor is already broken?

I have to mention that I was playing with normal bulb, my projector is coming in 2 day, then I will try to measure it again if nobody has any idea, maybe there is still some hope :)

Thanks for help!
Tom


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable