Ok, thanks to your diagrams I think I have now got my brain around this!
By way of recap: it is possible to set up a machine so that the axes appear to work "normally", but in fact the geometry is reversed compared to the geometry of the print model. (A kind of anti-universe). Whereas the brain can cope with the reversal, the software doesn't! I have seen that on some Prusa Mendels the endstop is placed at the front, and combined with the ease of reversing wiring on steppers motors leads to all sorts of confusion. It is possible to reverse both and think you have a good config, but it's reversed for the printing.
In the regular RepRap Mendel, the home position is set at (0,0,0) when the mechanism hits the endstops. Therefore the endstops should be positioned at the negative of the axes AND where the X-Y orientation is the same as the "real" Universe. For Mendel, this would usuallly be endstops at the left (X) and back (Y). The Y endstop is at the back because the table moves in the opposite direction to the extruder.
The R2C2 has two additional features to allow for the endstop to be placed at the positive end of an axis, and for the home position to be something other than zero, but it does not have the ability to invert an axis. I added these features because in my Rapman/Darwin type printer, the endstop is at the +Y end, and for compatibility with legacy GCode generator (0,0) is in the centre of the print area.
The home_direction config variables tell the firmware which direction to move to find the endstop. For a normally configured Mendel has described above, these are all -1. The other feature is the home_pos variables; these specify the position to set when the endstops are reached. For normally configured Mendel these are all zero.
This is the layout I use for my Rapman: (E=endstop, H=home pos, 0,0 = origin)
- <- X -> +
E
+---------+ +
|H | ^
| | |
E| 0,0 | Y
| | |
| | v
+---------+ -
^
(me)
So the R2C2 can be configured to have endstop at either end of an axis, and to place 0,0 anywhere inside the printable area. This should remove the need to invert any axes.
For the Mendel case, if endstop is at the back then set home_direction_y = -1, home_pos_y = 0.
If endstop is at the front then set home_direction_y = 1, home_pos_y = (maximum Y) - you will need to measure the max Y value.
Then, wire the stepper motor to also move in a direction consistent with the config.
This topic really needs video ;)