I managed to get my laser working under GRBL Mega 5X which was written for an Arduino Mega 2560 and RAMPS 1.4. The way Gauthier Briere has written the control pin for Spindle PWM places it on D8 which is ordinarily for the heated bed and runs at 12V. My little 3.5W laser runs on 12V but has a third wire for TTL which wants 5V. I have read a variety of solutions, some simple and some complicated. I finally found this solution:
In short, it uses the D6 Pin located in the Servo area on the RAMPS board. This pin doesn’t seem to be used for anything else. It is associated with an 8 bit timer which gives 255 power levels (instead of a 10 bit timer and 1000+ levels with D8) but this seems to work just fine for me so far.
To implement it I downloaded the Mega 5X Edge file with all of the various GRBL related folders, Cut and Pasted the solution into the cpu_map.h file over the one specifying D8 (right at the end of the file), recompiled everything in Arduino IDE, created a Hex file which quickly uploaded with Xloader.
In the end this was a very easy solution so a Big Thanks to the guy who figured it out and posted it!
The big bonus is that I can use the laser with Grblgru and a 4th axis on my CNC. The program makes the laser follow the curves I map in and so stays in focus! Otherwise it controls my TTL laser in the usual XY(Z) suitable for Lightburn.