The resolution for any device with discrete subdivisions is always given along the native axes of resolution. For example, if you have a monitor with dimensions X by Y pixels and R pixels per mm, that value R will always be the resolution as measured along the X or Y axis of the monitor.
For the AxiDraw (V2 and newer), the native axes, accessed through the SM command, are at directions (X+Y) and (X-Y). The resolution is measured along *those* axes. So, if you set up with 1/16 microsteps (
EM,1,1) and perform a move along the native axes of
SM,1000,0,2870, you’ll end up with a movement 1 inch long and
SM,1000,1130,0 will give you a 1 cm movement. This is the resolution described in the user guide, and you should be able to check and verify it with direct commands. No calibration is needed– it should be correct.
If you use the XM command, pay attention to what it actually does. From the documentation,
XM,duration,AxisStepsA,AxisStepsB is an alias to
SM,duration,AxisStepsA + AxisStepsB, AxisStepsA - AxisStepsB.
XM,5000,1130,0 is an alias to
SM,5000,1130,1130. The total distance travelled by the carriage is 1130 steps each, along the native axes of the machine. You should expect the distance travelled to be sqrt(2) * 1 cm.