UV LED control for syringe extruder
I've built a nice syringe extruder tool for our E3D Toolchanger. Controlling the extrusion should be simple enough as it is largely analogous to filament extrusion. But I also need to control some UV LEDs to cure the extruded photopolymer and for practical reasons, I would like to (ab)use the hotend heater power for this (I'm open to proposals though). Basically, the LEDs should turn on as soon as extrusion starts and continue for an adjustable period (0.5-5") after extrusion stops. Would anybody know if and how this can be achieved?
My first thought would be to do some post processing to find the extrusion start and then trigger the LEDs that way. If you wanted a more dynamic way of doing it you might be able to come up with some conditional logic and run it in deamon.g
@phaedrux Thanks for the hint, I will give it a try.
Would it be possible to have G10/G11 call a retract/unretract macro?
OwenD last edited by OwenD
You can use M571 to set an output on during extrusion.
You'd then have to figure out how to delay turning it off.
I would think a timer relay with off delay would work.
dc42 administrators last edited by
@bludin would it be sufficient to turn on the UV light during the start GCode, and then in the end GCode to delay for a short while and then turn it off?
@owend thanks, also for making me aware of M571. I will consider moving to hardware-based solutions of I can't find one in software
@dc42 thanks. that might be a viable workaround in many situations. I don't know yet how tight the off-timing needs to be to have all extruded material cured (at least to the point where it becomes dimensionally stable) while making sure that the curing does not propagate into the nozzle.
OwenD last edited by OwenD
About the only way I can think to do it in software is a bit convoluted.
EDIT: on second thought no need for half these steps
1: Use M571 to control an output pin . There doesn't need to be anything connected to it.
relay or mosfet module
Connect to output of the relay to a GPIO pin
3: Create a trigger.g file for both rising & falling trigger events to update a couple of global variables with the led state required and current time.
Monitor the output pin in daemon.g to turn the led on and off when the sate is off and the current time > set time plus delay
Monitor the output in daemon.g.
Turn on the led if it's high and also set the stop time to "now + 5 seconds"
If it's low and current time is > stop time, turn off LED
You'd need to do the whole lot in a while loop if you need timing less than 10 seconds as that's the default cycle time for daemon.g