While I anxiously await for my proximity sensors to arrive so I can continue the ATC setup. I have been giving the gear change some thought. After doing some research I came across the potential for remapping the S word. If I am not mistaken I should be able to perform the following by doing this:
1) Check to see what the requested S value is
2) Switch to a ngc file subroutine which will check the S value
3) If S value is > 1200rpm then switch to high gear using digital I/O pins (If already in high gear do not do anything)
4) If S value is < 1200 rpm then switch to low gear using digital I/O pins (If already in low gear do not do anything)
5) Scale output of spindle pwm based on selection above (1:1 high gear and 4:1 low gear)
This would be checked every time an S word is commanded to allow automatic gear selection based on requested S value.
I was looking at the gearchange.comp also but only see that it handles (1) output and I need (2) outputs (high and low gear selection).
The process on my machine is as followed:
1) Spindle stop
2) Disengage shot pin using solenoid on valve
3) Wait for shot pin switch to go LOW
4) Switch to high or low gear using the respective solenoid on respective valve (1 solenoid per gear selection)
5) Wait for respective switch to go HIGH (based on gear selection)
6) Engage shot pin
7) Wait for shot pin switch to go HIGH

Start spindle respective to S value
Seeing that I only noticed (1) output on the gearchange.comp is what directed me to look at the remap of S word for automatic gear change. Maybe the gearchange.comp has (2) outputs and I overlooked it.
Do I need to have master running to perform the remap of the S word or can I use the prebuilt LCNC?
Does the gearchange.comp allow for (2) outputs (high and low gear output)?
Is the S word remap a good way to perform this or is gearchange.comp better?
I do not know enough C either to create a component for this (thinking a comp would be better than a HAL mess) or anything else and I am very new to the remapping of items as well. After going through some the documentation I have a little better understanding but the way I learn this stuff is by examples then I can build from there.
**** After posting this I looked at the gearchange.comp again and maybe I am incorrect and this is only used for scaling the output and not making the actual gear change. I am not sure now.. ****