EDIT: Changed the name of this topic to be more descriptive
Several people seem to find the behavior of the Printrbot relative to Calibration Constants and other constants such as Bed Size etc. rather confusing. I'll try here to lay out the scheme of things as I understand it.
EDIT: Thanks to Mooselake for pointing out that the M502 command loads Factory Values into Active RAM rather than EEPROM.
CalConstantsFlowChartRev1a2048.jpg
The Active Values are the values inside the Printrboard that are actually in use for controlling motion along the axes. When the Printrboard is turned on, part of the boot-up routine copies values from EEPROM into the Active Values storage. You can also copy values from EEPROM to Active Values with an M501 command. (Active Values are in volatile memory that is lost whenever power is lost; EEPROM means "Electrically Erasable Programmable Read-Only Memory - a type of memory that does not lose information when power is lost, but it takes special programming steps to make any changes to it.)
You can find out what the Active Values are from Pronterface or Repetier Host by issuing the M503 command. This will "echo back" to your interface program the complete list of Active Values, which includes many more entries than just the X, Y, Z, and E "steps per millimeter" values, but you can find them in the list identified by M92 prefixes.
How do Active Values get Changed?
EDIT: If you are running Repetier Host on a Windows computer, there is a very convenient way to see and to change your EEPROM settings. Use the "Config" menu at the top of the screen, and select "Firmware EEPROM Settings." This opens up a window with setting displayed in labeled text boxes. You can type new values into these boxes and then "Save to EEPROM." Apparently when you click the "Save" button the values are pushed into Active Values; then you are given a second prompt to actually store them in EEPROM. EDIT^2: The Repetier screen for examining and changing EEPROM values is not all-inclusive. To change bed size and a number of other constants, you have to use the M5xx series of commands.
From Pronterface or Repetier Host, you can issue M92 commands to change one or more of the Active Values. Whichever ones you don't change remain as they were before. Changes you make this way remain in effect until either power is lost or the values are replaced by newer ones.
When you run a G-Code program from Pronterface or Repetier Host to print a part, you may have M92 values in the header of your G-Code file. This is actually optional, but the PB instructions guide you to do it. It's potentially a problem because the calibration constants came from a Configuration file that may not be using the same values as the ones you gave to the Printrboard manually. If you choose to use M92 commands in your slicer headers, be very sure that the ones you are using are the ones you think you are using. For example if you run Slic3r by itself, you have full control over which configuration file it uses. If you run Slic3r as an embedded program call from within Pronterface, it will automatically use "Default.ini"
Once you have your Calibration values set up the way you want them in Active Values memory, you can issue an M500 command to copy them into the EEPROM. By doing this, you ensure the same values will be present the next time you turn on the Printrbot.
Finally, if you've gotten everything all mixed up and want to start over from scratch, issue an M502 command to restore factory defaults.