I feel this is huge for the MPCNC and any other dual drive machine, on both X and Y axis or even just one dual drive axis.
Update 11/4/17 - The was actually the first merge, Andy M was testing the Dual endstop beta and found an issue. Jeffeb3 Jumped in and had a fix for independent endstop activation, both min and max! This was merged before the dual endstops but I couldn't test it until now. Still some issues in repetier host but this works with gcode and the LCD screen manually.
This means you can now home your z axis to a touch plate above the spoil board and still move negative after and have the X and Y endstops not allow a negative movement. This will save some hardware for sure. Thanks guys!
Update #2 10/29/17 - https://github.com/MarlinFirmware/Marlin/commit/233ddf80da89502d2840289b12afd59ba2be510c
Marlin version 2 now has the changes merged! What an awesome day. I will need to test them a tiny bit and then start a write-up on using it. It is actually fairly easy to use, with all the end stops and steppers under individual control it is now as easy and as useful as a 3D printers homing. This change and all the updated configs resulted in 47 files changed and 2,209 additions and 990 deletions.
Update 10/29/17 - https://github.com/MarlinFirmware/Marlin/commit/a6f7cda23e4267e5f924570523f4d52e0e4552b0
As of today's BugFix 1.1.x This is now integrated into the main Marlin repo!!!! Everyone, give Jeffeb3 a big high five and hit his thanks button wherever you see it. This would not have happened without him. I am proud as hell to have finally contributed a little something to Marlin, and to have the help of a community I helped create get me there. For me this is a freaking huge deal. So Heffe, a million times thank you, the rest of you testing and fiddling and keeping me going, thank you! Marlin has changed my life and I am not done trying to help make it better for everyone.
(The 2.0 version is on deck to be merged next!!)
Update 10/13/17 - https://github.com/MarlinFirmware/Marlin/pull/7943
I have tweaked Marlin code to duplicate the Z axis dual end stops to work on the X & Y axis as well. Jeffeb3 has helped me get this fully functional and we now have a clean release. I was really hoping to get this integrated with the main Marlin repo, a pull request has been https://github.com/MarlinFirmware/Marlin/pull/7648 submitted, but it looks like we are in firmware limbo. 1.1 seems to be in sort of a feature freeze as 2.0 is being developed, but 2.0 is actually behind 1.1 in features at the moment. Finger crossed! Just in case I have also prepared a fully functional Marlin 2.0 dual endstop branch as a backup. (It says 785 line of code were changed, and that isn't even for the full MPCNC branch...that is just the generic Marlin version).
This will make for extremely easy multiple process CNC jobs (flips, tool changes). This will help any machine that drives an axis with two steppers. For boards with only one extra driver slot (rambo mini) or machines with only one dual powered axis this is all that is needed. This also will pull your non-square build into Square! We might be able to use some spare pins to wire in another driver but I am not sure how yet, but I will look into it.
How this works is you put each stepper on its own driver and plug in the (X or Y)min and (X or Y)max end stops and put them on both sides where you want it to home. Both steppers move at the same time when one hits an end stop it locks and the other continues to drive until it hits it's endstop and locks.
The fully functional firmware (might still need some basic MPCNC configs)