Ben,
I actually have a question for you about linuxcnc

I use your linuxcnc modifications to do ppi on linuxcnc on my 80w cutter.
Today I hooked up the parallel port to my logic analyzer and analyzed some cutting signals at 24MHz (to be sure I don't miss any pulses).
There I discovered something strange in the signal to set laser power. It is a PWM signal, but I actually had thought that this would be a fixed frequency signal with variable duty cycle.
But these are the signals I found produced by your config
100% POWER = ON 25µs / OFF 2.463ms / Duty Cycle 99% / Frequency 402Hz
90% POWER = ON 25µS / OFF 0.221ms / Duty Cycle 88.4% / Frequency 3.99kHz
80% POWER = ON 25µS / OFF 0.100ms / Duty Cycle 81.25% / Frequency 8.00kHz
70% POWER = ON 25µS / OFF 50µs / Duty Cycle 66.5% / Frequency 13.34kHz
60% POWER = ON 25µS / OFF 25µS / Duty Cycle 50% / Frequency 20kHz
etc....
The lower the power, the more off the results.
But that is not the most important. I was very confused. You seem to keep the ON pulse constant at around 25µS and the OFF periode is variable. By using this technique you actually vary the PWM Frequency from 402Hz at 100% power downto 20kHz at around 50% power. Because the ON time remains constant, but OFF time changes, the frequency also changes.
So..... is this a deliberate choice ? I would like to generate the power PWM signal on an arduino microcontroller and while it is possible to continuously change the frequency for other power levels, I always thought that it would be better to just have a fixed frequency of for example 20kHz or 25kHz and then change the duration of the ON and OFF time. For example at 20kHz 1 cycle is 50µS, so if you set the ON signal active for 25µS and OFF for 25µS, you get 50% duty cycle. If you then want 25% power, then you don't change frequency, but just set the ON time to 12.5µS and OFF time to 37.5µS for a 25% duty cycle.
Is this a bad way to do it ? Or is the system you use with a varying frequency the REAL PWM system and is the one I suggest (pwm with fixed frequency) another trick which might require additional circuitry like RC filters to function?
I hope you can help me a little with this, since I always thought I could just let the arduino generate a 20kHz pwm signal and then alter the duty cycle by varying the ON and OFF timing of the signal, while retaining ON+OFF=50µS (for 20kHz pwm in this case).
Kind regards,
Bart