You are not logged in.
Hi shahin,
long time no activity from me
I've recently been printing again and have developed a method of determining when a layer has been peeled off successfully, meaning kind of closed loop control ^^
I would appreciate a way of having some kind of "move up until GPIO state changed" function.
I haven't fond out how to do it with the default set of tools yet.
If nothing like this is possible, i would revert of implementing the movement in an external IC.
Cheers,
Adam
Offline
Hi Adam,
To test functionality wire enable pin of the RPi, use GPIOHigh / GPIOLow keywords to enable or disable motor.
Unfortunately adding another check inside pulse generation loop could cause slowdown. Maybe we can change limit functionality so instead of setting height it just stop movements.
Offline
The Idea with limit switch sounds interesting. I guess this would work. If limit switch is hit during print, cancel move up and go down to next layer.
Would it be possible to implement for one of the switches? For my printer I only use the top switch, so the bottom switch could use the functionality.
Cheers
Offline
OK, will try to implement it asap
Offline
Will push the new version in a day or two.
Offline
Thanks a lot, will try it as soon as it's there
Offline
Just as a follow up, here is what I will be doing:
Basically I have a flow sensor below the FEP membrane to monitor membrane movement during separation. This enables the detection of the exact moment of separation to incresae speed and monitor correct peeling. I am planning to feed the data to a neural network to try to predict peeling tiimes based on layer image.
Additionally I will place a IR Camera right next to the projector lens pointing up to the platform. This could be used with some CV algorithm to do other forms of monitoring.
Offline
Have you tried latest beta version?
Offline
Oh so it's already in? I haven't seen any options for it so i thought it's not in yet. I'll try today.
Offline
Hmm..doesn't seem to work for me:
Here's what I tried: build 1946
-tested BCM24 using python, works
-configured Z Bottom in NanoDLP
Tried switching manually while travelling up, nothing happens.
Also restarted printer etc.
Any other suggestions?
Cheers,
Adam
Offline
Set "Change Reset position on Limit" (I should change name to something better) to no.
Offline
I tried both, not working unfortunately. Should there be any Log output?
Offline
Another thing I tried is setting the pin as Top Limit Switch, just to make sure that NanoDLP can use it, which works when calibrating zero position, but not while printing..regardless of going up or down.
Offline
Here's data from my implemented system. It's easy to see that peeling time strongly correlates to exposed area. However, creating a formula would be difficult due to dependencies on motor speed and material viscosity, so the in situ monitoring could work quite well for a variety of circumstances. Print time could benefit a lot from this
X-Axis: Layer Number
Last edited by adam (2019-01-12 12:50:56)
Offline
Adam,
Looks very interesting/.
I have checked logic again, I do not see any problem. When axis move up and touch limit it stop the movement, change the position (without zeroing) and go to the next step.
Offline
Ok i will recheck. Does it work for both limit switches?
Offline
OK, i checked now in the live System with Build 1960:
In the video you can see:
Bottom: Projector
Middle: Vat with Platform
Right: Blue LED indicates when Bottom Limit Switch is pulled HIGH (Peeling Done)
The Limit switch worked when i moved manually, but not during printing.
As you can see, while moving up, the Blue LED turns on when peel is done but the Axis is still moving up
Any Ideas?
Offline
Do you receive limit has been touched on each rises after getting blue LED?
Offline
Not while printing. Only when i move manually. I have wired it up to the LOWER limit switch. But motor is moving UP, could this be the reason?
Offline
I believe so.
Offline
Hi, I've done some more tests. Somehow Endstops only work wenn moving manually via Z-Axis settings, measuring Z-Axis or Startup.
Are the pulsing routines different for some of the movements?
An easy way to reproduce would be:
1. after startup, move down 50mm
2. Move up 50mm
3. while moving, press top endstop manually.
-> endstop works and stops axis
1. after startup, move down say 50mm
2. Click TOP
3 while moving, press top endstop manually.
-> This does nothing in my setup. The axis continues to move.
still build 1960
Offline
No routines are same no matter where they have called. I have found source of the issue for some movements limit is not checked for example when system is sure that axis is far from limit.
Offline
Is there any way you'll work this in? otherwise i will implement all movement externally.
cheers
Offline
Adam,
Try latest beta I have removed constrains on limit. Please, let me know if it works or not.
Offline
Works like a charm! Thank you!
Offline