Hi,
What if BeagleG supported Laser-cutters ?
I am wondering how laser cutters typically access the laser via GCode.
It looks like typically this is just simulating a spindle-speed that
is then associated with the PWM of the Laser modulation.
There should not be much changes needed except that (a) in the case of
using the machine with a laser, we don't need BringPathToHalt() or do
any waiting for spindle 'spinup'. (b) We want a spindle speed as part
of a G1 block:
M3 S42
G1 X100 Y50 S55
I've added an S-value for moving, but have not wired up to the spindle
yet; but at least I simulated it in the gcode2ps code now; this is the
simulation of gcode generated by LightBurn (a common laser cutting
software):
https://github.com/hzeller/beagleg/blob/master/Development.md#laser-visualization
Since this would require PWM to be synchronous with moves, we
essentially have to add the PWM value to LinearSegmentSteps and
MotionSegment. I hope it is simple to just set the PWM value from the
PRU via some memory-mapped register.
Any thoughts ? What are other concerns we'd like to do ? I could
imagine a (energy per distance) mode, which scales the power with the
inverse of the speed, which would automatically adjust e.g. for the
acceleration.
-h