Open anarion999 opened 8 months ago
The LPC176x only has code support for a single PWM output. The allowed pin definitions for PWM can be found here. Without adding code for a second PWM spindle the only option is to #define N_SPINDLE 2 in config.h and
which will use the spindle direction output as spindle enable for the cloned spindle.
The cloned spindle has to be enabled with $511=1
. Spindle switching is either by tool number or by M104.
Note that I have not yet tested this option with this driver.
With new code one has to add code explicitly for a new spindle (SPINDLE_PWM1) and register that with the core, something I have not done yet. Alternatively add code for an analog PWM output and enable SPINDLE_PWM2 which claims the output and register it as a spindle. The code neded for an analog output can be complex depending on the MCU, an example can be found here.
Hey there, Since two days I am trying to get a firmware ready based on grblHAL for the MKS Sbase v1.3 which is capable of using two different PWM pins for controlling laser and spindle. I think I am missing something or just being too stupid to put the pieces together. I think I found the relevant parts in the respective *.h files but I was not able so far to get the things working. From the mks_sbase_map.h the relevant part is to my mind the following:
_// Define driver spindle pins
if DRIVER_SPINDLE_PWM_ENABLE
ifdef SPINDLE_PWM_PIN_2_4
define SPINDLE_PWM_CHANNEL PWM1_CH5 // MOSFET3 (P2.4)
else
define SPINDLE_PWM_CHANNEL PWM1_CH6 // BED MOSFET (P2.5)
endif
define SPINDLE_PWM_USE_PRIMARY_PIN false
define SPINDLE_PWM_USE_SECONDARY_PIN true
else
define AUXOUTPUT0_PN 2
define AUXOUTPUT0_PORT port(AUXOUTPUT0_PN)
define AUXOUTPUT0_PIN 4
endif_
I also found in the config.h the part for the definition of the number of spindles/PWM devices:
/! \def N_SPINDLE \brief Defines number of spindles supported - minimum 1, maximum 32. /
if !defined N_SPINDLE || defined DOXYGEN
define N_SPINDLE 2
endif
Here, I suppose that I should increase the number to 2...
And then finally the part of my_machine.h:
define SPINDLE0_ENABLE SPINDLE_PWM0
define SPINDLE1_ENABLE SPINDLE_PWM1
//#define SPINDLE2_ENABLE SPINDLE_PWM0_CLONE //#define SPINDLE3_ENABLE SPINDLE_NONE // **
But now I don't understand how to tell the code that I want to use two different PWM pins for the devices and also were to remap the respective pins accordingly. Also the PWM-Channel thing form the mks_sbase_map.h is unclear for me. And the final question for me is how two switch between the two PWM devices in a respective controlling software?
I am really confused at this point and your help is more than aprreciated.
Thanks you and best regards
Florian