I believe the problem in our case has to do with the high frequency damping of the galvo mirrors, affected by the mechanical inertia, that is, when they have to turn abruptly to follow a specific detail, while they operate at high speed. The laser path creates a trail as it tries to return to the coordinates given by the g code.
The absence of an f-theta lens inside the device also plays a role in this. The f-theta works not only by minimizing the barrel distortion of the galvo system, but also corrects for small discrepancies and inaccuracies of the galvo mirror rotation. The galvo mirror has a small rotation angle, 20 degrees, and with this minimal rotation angle it covers the span of the build plate. You need to have a hell of a lot of accurate rotation to always hit the same spot every time in each slice. The galvo motor is bound to have some loss in accuracy of rotation, depending on build quality, signal quality and the fact that it has to compensate for mechanical inertia of the mirror because it rotates at high speed, and it gets worse as speed increases i.e. faster scanning . Add to this that there is a posibility that the mirror is not balanced even by a tiny amount, the motor would have to adjust it’s rotation to compensate for that inertial force against it, which I don’t think is happening, and most systems that go for reliability use the f-theta lens. The lens provides a tolerance for small changes of the beam angle and position as it hits each mirror. In contrast, plain mirrors bouncing a beam around at a distance of 20cm makes for even bigger error and requires more precise galvo motors and geometricaly accurate placement of mirrors in the housing of the apparatus.
Now, think of the model being printed, and one slice being drawn by the laser, and the laser following a rather smooth path with no abrupt changes (buddha’s belly). Then slice after slice, they are drawn quite uniformely, then suddenly, some raised detail starts to appear at the slice… a rivet, a bolt, a hole, the support contact… and the laser has to start following this abrupt change in direction, so the galvo mirrors have to rotate abruptly to get that line, but it’s not that simple, the inertial forces move against the motor. And then the mirrors have to rotate back, to follow the previous contour line… but here’s the thing, they don’t , so it follows the contour, but with a slight offset. After a couple of slices, once it passed the detail/support contact point, it has to work with the smooth part of the model again, the galvos don’t have to do drastically abrupt angle changes and the surface produced is smooth again.
That’s why it happens on small raised details and abrupt changes in geometry. If there was an f-theta lens inside, it would compensate for that minor glitch in the angle offset produced by abrupt changes in galvo rotation.
A more hands on solution, would be to attempt to correct the inertia problem with adjusting the high frequency damping on the driver board. But we need peopoly for that.
Also, since the problem exacerbates with high frequency scanning, i.e. fast moving laser, then slowing the speed of the laser should significantly improve our situation. That means all speed values in cura and laser power settings need to be reconfigured. The prints will take longer, but I can live with that.
Galvanometer mirror systems are used in many fields and the available literature is extensive, covering function, the flaws and advantages, and on compensation of said flaws.