@dc42 indeed we are using a Duet 3 MB6HC.
Thank you very much for the prompt reply, testing and making effort to improve the code!!
@alankilian thanks for the suggestion and the quick reponse!
@dc42 indeed we are using a Duet 3 MB6HC.
Thank you very much for the prompt reply, testing and making effort to improve the code!!
@alankilian thanks for the suggestion and the quick reponse!
Dear experts,
We are trying to setup a PWM output on OUT9 BUFF (laser output) to drive an external system. We need good linearity for this output between 0 and 6000 ideally in steps of 1 above 10kHz.
The configuration code we currently use is
M950 R0 C"laser" Q160 L6000
The firmware version is 3.4.1.
Upon testing the configuration above with M3 commands, we noticed that the PWM output is not behaving as we expected. What we measure with our oscilloscope is:
So we have 3 issues:
Is there a configuration that would achieve this?
For the last issue according to the code it seems the maximum frequency of 150MHz is divided by 128, is this necessary? Might this be a limiting factor?
https://github.com/Duet3D/CoreN2G/blob/3.4-dev/src/SAM4S_4E_E70/AnalogOut.cpp#L284
@dc42 ok thanks a lot! Out of curiosity, do you already know what will become the expected behavior? Will we be able to update the spindle speed if it is not the currently active tool?
Updating the speed of a spindle that is not the currently active tool seems to work only once.
T0
M3 P1 S200 ; works
M3 P1 S500 ; does not work
If we set the active tool with T1 it works.
When we try to change it through M4 it works but again only once:
T0
M3 P1 S200 ; works
M4 P1 S500 ; works
M4 P1 S1000 ; does not work
M3 P1 S1000 ; works
Is this the expected behavior, and if so what is the reason?
We checked the code and it seems to come from these lines:
https://github.com/Duet3D/RepRapFirmware/blob/1194bf3d4867a844fe442cfc7d1500d933521467/src/GCodes/GCodes2.cpp#L583-L586
And especially this one where the rpm is updated if there is a state change
https://github.com/Duet3D/RepRapFirmware/blob/1194bf3d4867a844fe442cfc7d1500d933521467/src/Tools/Spindle.cpp#L134-L141
@Phaedrux thanks!
I fixed it by turning off the trigger, and re-configuring the endstop before and after the homing sequences.
I guess there is no way to immediately use probe K3 for example as external trigger?
Hi,
I want to use a Z probe as an external trigger without defining it as an endstop (RRF3.3).
The z-axis on my project has several probes (4) with different uses. One of them is a touch down switch that can be used to probe an object height, but if triggered otherwise should shut off the machine for safety reasons.
I could make the trigger work correctly with this command combination:
M558 K0 P8 C"^io7.in" F500 H5 ; Define the Z probe
M574 Z1 S2 ; Define low Z endstop to Z probe
M581 T2 Z1; Trigger T2 on endstop of Z1
However this messes with the homing as it will now use the K0 probe to home Z. Is there a way to use a Z probe as an external trigger without having to use the endstop as middleman?
I was thinking of maybe defining "^io7.in" as an input pin with M950 J1 C"^io7.in", but I get "Error: M950: Pin 'io7.in' is not free", as it is already defined as a Z probe as it should be.