Configuring Jerk and Acceleration for Laser Rastering (SLS)
-
Bear with me on this question, this project is a doozy.
I retrofitted a Sintratec SLS printer with a CO2 laser. This conversion required new analog mirror galvanometers (to reflect the correct wavelength), which unfortunately were not compatible with the stock microcontroller. This was purely a software issue. The original board would command a field jump (i.e., tell the galvo to instantaneously move to an extreme position) at the end of a scan move. Not good. These full-field jumps were fine with stock galvanometers because they were much smaller, but to get the correct spot size with the CO2 laser I had to use larger mirrors that cannot be moved as quickly and do not tolerate infinite velocities. It was not possible to work with the OEM to remove these field jumps.
Before discovering this problem, I had always wanted to use a configurable board, such as the Duet Wifi to have control over every aspect of the sintering process for research.
Obviously, the Duet WiFi does not support analog galvanometers, so I created a small circuit that uses an Arduino Due, DAC and Op-amps to sum or substract step pulses into an analog voltage depending on the direction pin. With just a little optimization, the circuit can convert 90k steps/sec to analog voltage for both the X and Y galvos (180k total). This is less than the max step/rate of the Duet, but should fit my needs.
To make it easier to ask my questions, I have converted all of my units into the surface speed of the laser. I am targeting a scan speed rate of 1,000 mm/s. The step/mm conversion is 32. Therefore, 32,000 step pulses would need to be sent per second to reach my scan rates which is possible with my system. The acceleration to these scan rates is a critical parameter because the laser power remains constant, so long accelerations results in some material receiving more energy than others, which I am trying to minimize.
The max velocity of my QS20XY galvanometers is 150V/s which works out to be 3300 mm/s. I have not be able to find a specification that gives a maximum acceleration value for the galvos, so for better or worse I want to have the highest acceleration as possible.
My question is how to achieve this. Should I set the jerk value to 120,000 mm/min (2,000 mm/s) to allow the mirrors to instantly change speed from -1,000 mm/s to 1,000 mm/s when changing directions? I am not sure if the M566 could handle this high of a value. The documentation only specifies a minimal value, but the RRF configurator says the max value is 1200 mm/min. The other option is max out M201. What is the maximum acceleration value allowed?
Thank you for taking the time to read my long post and provide any input if you are able!
-
To simplify my question, what is the maximum jerk value (M566) allowed?
-
@drdflo
I can't help you with the question, but want to share my solution of a similar problem with a Diode laser.
The laser power is also constant when changing directions. That's especially annoying for raster/gray sclae engraving.
I also had ringing issues with too high jerk and accel value, which might not bother you.I found a workaround by simply adding a rectangular frame around the image I wanted to engrave. That way the turning point and all the issues related to it happened outside of the image borders. Just have to figure out the required gap between frame and object and then choose a pale white color for the frame, so it doesn't get burned. (non-white, or it is ignored)
-
@o_lampe Thank you for your response!
Your problem with ringing (and other design constraints) is why I went with mirror galvanometers. They can change direction almost instantaneously, so constant laser power should not be as much of a concern if I can use high jerk values.
-
-