Bobc,
That's the sort of layout I was thinking about.
Perhaps expand the top side of the board so that there is more room for the FET's and that edge connector? Additional reasons below:
I was wondering if we could move all the extra connectors to the middle of the board, parallel to the large expansion connector on the back? This way, people who want them could put ribbon cable on them (since they're 3.3v signals, not stepper voltage) and run it flat over the middle of the board to the expansion connector (ie: out the right side). This means they don't foul the airflow too much, which was part of my issue with the position of the motor cables on the standard RAMPS. If you need more space in the middle to put in those extra connectors, you should be able to push the top 3 stepper drivers upwards a bit to give you some more room.
Something you could also try is putting the end-stop and thermistor outputs in the top right corner of the (larger board), above the expansion header? With the board being larger there's no reason to not use that space, and if it gets the commonly used connectors out of the middle, it will definitely make connection easier. You may need to move the stepper row slightly to the left to get the traces through the gap. Apart from being the most commonly connected parts, they're the ones that, due to pin config, are the most troublesome to avoid.
Other things worth noting:
You've put Z on the bottom right. Does it need to be there? Could it be at the top? If so, could you put more room between the pair of connectors, so that locking connectors can be used? This might remove some of the excess size on the bottom edge, which means it'd would fit in better with something like an UDOO, especially if we can make the bottom right corner dead space and cut it off the board entirely (makes room for the UDOO LVDS & SATA connectors).
Are the XYZ steppers all on the same port on the Arduino Mega/Due? This might be a hard push (routing wise), but specifically on the Mega it means you could probably drive this using the Grbl firmware easily (from memory, it is really hard to get Grbl to use 3 axes that aren't all on the same port, due to the way the code was written to use AVR port writes). It also means that with something like a Mega, when you're moving 3 axes at once (eg: Rostock/Delta requires all 3 motors to move at once, unlike a traditional XY platform machine like the Mendel variants), you want them all moved at the same time, rather than one lagging slightly behind the other two (might only be 2-3 clock cycles - tho depends on the code). Even the Due has "ports" like the AVR's do, but I don't know if they're even remotely the same arrangement, or how much an effect it would have. Will have to sit down and see if we can find some that cross over or if it's necessary on the Due.
Anyway, just my 5 cents (I don't use 2 cents, they're uneconomically viable).
That's the sort of layout I was thinking about.
Perhaps expand the top side of the board so that there is more room for the FET's and that edge connector? Additional reasons below:
I was wondering if we could move all the extra connectors to the middle of the board, parallel to the large expansion connector on the back? This way, people who want them could put ribbon cable on them (since they're 3.3v signals, not stepper voltage) and run it flat over the middle of the board to the expansion connector (ie: out the right side). This means they don't foul the airflow too much, which was part of my issue with the position of the motor cables on the standard RAMPS. If you need more space in the middle to put in those extra connectors, you should be able to push the top 3 stepper drivers upwards a bit to give you some more room.
Something you could also try is putting the end-stop and thermistor outputs in the top right corner of the (larger board), above the expansion header? With the board being larger there's no reason to not use that space, and if it gets the commonly used connectors out of the middle, it will definitely make connection easier. You may need to move the stepper row slightly to the left to get the traces through the gap. Apart from being the most commonly connected parts, they're the ones that, due to pin config, are the most troublesome to avoid.
Other things worth noting:
You've put Z on the bottom right. Does it need to be there? Could it be at the top? If so, could you put more room between the pair of connectors, so that locking connectors can be used? This might remove some of the excess size on the bottom edge, which means it'd would fit in better with something like an UDOO, especially if we can make the bottom right corner dead space and cut it off the board entirely (makes room for the UDOO LVDS & SATA connectors).
Are the XYZ steppers all on the same port on the Arduino Mega/Due? This might be a hard push (routing wise), but specifically on the Mega it means you could probably drive this using the Grbl firmware easily (from memory, it is really hard to get Grbl to use 3 axes that aren't all on the same port, due to the way the code was written to use AVR port writes). It also means that with something like a Mega, when you're moving 3 axes at once (eg: Rostock/Delta requires all 3 motors to move at once, unlike a traditional XY platform machine like the Mendel variants), you want them all moved at the same time, rather than one lagging slightly behind the other two (might only be 2-3 clock cycles - tho depends on the code). Even the Due has "ports" like the AVR's do, but I don't know if they're even remotely the same arrangement, or how much an effect it would have. Will have to sit down and see if we can find some that cross over or if it's necessary on the Due.
Anyway, just my 5 cents (I don't use 2 cents, they're uneconomically viable).