In short, Smoothieware and GRBL-LPC can take input in the form of G1 X0.1 S0.6 F6000
- this is because they actually have laser modules in the firmware that allow for the S value (power level) to be directly in the G1 move segment. When doing raster engraving, you are quite literally sending thousands of these lines per second, one per image dot. This is already considered quite verbose compared to how the real industrial controllers do it, but it works.
Last I checked, Duet’s firmware does not have such a thing, and laser control on Duet requires the “Marlin Workaround” way of doing it which is to set power on one line, then do the move, then set the next power level, then the next move. So this is a much more complex way of sending the data, and the throughput would be much slower. It seems ok for cutting, but would choke on engraving, where again, you have to send thousands of tiny pixels a second.
Source: I developed the Cohesion3D Board which has required me to be able to pretend that I know what I am talking about on this subject for the last 3 years.