I’m not sure how smart Marlin is, and they don’t spell it out in the g-code reference, but in the reference they use the following to turn on the PWM at half power:
M3 O128
Note the 0 prefix, and the lack of the 'S; parameter. In your g-code you use:
M03 S102
It may be with the ‘S’ parameter, that Marlin is interpreting your g-code as a spindle command that has a whole other range of values defined in the configuration file.
Another thing you can try is to run part of or all of the g-code in the first post in this topic. Note how that g-code uses the ‘S’ parameter of the G0 and G1 commands. This is code that Ryan was running so you know it has been “tested.”
What bothers me more than the laser not coming on, is that it comes on briefly. I know there are some forum posts with a similar issue, but I don’t remember the fix.