If you wish to change processors, I’d suggest that you use a DLC32, there are no issues with it’s output being ttl compatible. It’s also very cheap. I would also bet you will have the same issue with any controller.
I have tried to use the software you suggested but can’t really get the results you show. Probably because I can’t really drive it. That makes it difficult for me to feel confident with your diagnosis of what I’m seeing on your posts, not to mention it makes no sense a controller would/could operation this way. If you’ve ever programmed one of these for pwm, it’s not so simple to get that output.
Although software doesn’t break and may have bugs, hardware does break. All of these indicate a hardware failure to me, not a firmware of software issue, so I think you’re chasing something that may not exist. If it was software I’d expect it to repeat with some kind of interval, not randomly like we see.
You’ve done all that’s possible, besides changing the laser module, including multiple controllers using proven software, I think you need to look elsewhere.
You’re also complicating the simplest of operations, it shouldn’t matter what the host computer is, loading an Arduino, via a Mac, Linux or variations of Windows software has/is done thousands of times a day without issue and it’s occurring to you every time with different hardware and software … very suspect. Hundreds of thousand, if not millions of the of these Arduino controllers are driving laser machines with no issues, yet you’ve tried a number of them with the same type failure, even disconnected.
I understand what you see on your software of the larger pwm duration, but it’s occurring on multiple platforms without the laser module, so it’s even more suspect that the waveform analyzing software isn’t being interpreted correctly or something else is being picked up.
I’ve used scopes and some very expensive waveform (> $100,000) analyzers for decades and this interpretation with parts being replaced like you have done makes me very uncomfortable. It’s easy to mis interpret some of these.
I don’t know what to advise at this point, which indicates a hardware issue, not a firmware or software issues and certainly not the loading of the Arduino code with different platforms as you suspect.
Since you changed out the control boards multiple times, I suggest you look elsewhere as you are getting nowhere now.
You’ve identified one pulse that is longer, yet this occurs during one period or 1mS (1kHz) and would not make a mark as long as the ones in your output. Take the period and compare it to your head speed, I think you’ll find any correlation unlikely. @ednisley can check my math, but if you’re running 10mm/s (600mm/m) the aberrant pulse would only exist for speed/period or 10/1000 (1mS period relates to 1000kHz) or 0.01 mm in length… I doubt you could even see it. Even at 100mm/s (6000mm/m) the length would only be 0.1mm or 100/1000.
I’ll follow this thread, but I think you’ve exhausted the possibility of a controller and/or firmware…
Of course this is my person view.
Best of luck