For beginners that want to modify their printer, firmware can be uploaded with the Arduino IDE.
RAMBo Arduino Plugin
Marlin and Repetier-Firmware (and others?) have extended support for RAMBo that takes advantage of the Atmega2560 MCU's pins that are not available on Arduino Mega2560. These pins are used for LCD interface or external stepper drivers.
RAMBo can operate with the Arduino app as an Arduino Mega2560, but it is best to install the RAMBo Arduino addons. The add ons need to be copied into your Arduino application's hardware folder. You should end with a boards.txt file at arduino-1.0.5/hardware/rambo/boards.txt. The add ons can be found in https://github.com/ultimachine/RAMBo/tree/master/ArduinoAddons/Arduino_1.x.x or it may be included with your firmware(i.e. Marlin).
Once the add ons are installed you can select RAMBo from Arduino>Tools>Board>
Without the add ons you can use Arduino Mega2560 from Arduino>Tools>Board> . You will not have functionality on the extended ports. Firmware may not work as expected if the firmware developer expected the add on folder to be installed.
For Marlin you will at least need to set the following variables in configuration.h:
#define MOTHERBOARD 301
The TEMP_SENSOR needs to be set to match your configuration. For a Epcos 100K thermistor on Extruder0 and HeatedBed:
#define TEMP_SENSOR_0 1 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_BED 1
You will likely need to tune the PID and DEFAULT_ settings to mach your hardware.
For some computers you may also need to set #define BAUDRATE 115200 to get communications.
You can adjust the motor driver settings in Configuration_adv.h: #define MICROSTEP_MODES and #define DIGIPOT_MOTOR_CURRENT
Repetier-Firmware has good support for RAMBo.
One of the key features of RAMBo (like most other RepRap electronics) is the ease of entry for development and research.
If firmware is compatible with RAMPS it can run on RAMBo with minimal modifications.
The current for the stepper motors is set by firmware controlling the 8-bit digital potentiometer. For the end user this is seamless. The firmware sets the current at every boot and The following formula from the Allegro datasheet describes how to set the reference voltage: ITripMAX = VREF/(8 X RS). RS, the value of the sense resistor on RAMBo is equal to 0.1Ω. ITripMAX is the current the stepper motors are rated for. Ideally you should start with 70%-90% of maximum. You can verify the voltage for each driver by plugging the reference voltage (VREF) measured at the X_REF test point (Y_REF,etc for the other drivers) in the following formula:
VRef = ITripMAX * 0.8
Note the A4982 is set to be limited to 2A. This means the adjustable voltage range is 0 to 1.66 volts. The following formula will yield the 8-bit binary value, Wv, to be entered into firmware or directly over SPI.
Wv = (VRef / 1.66) * 255
Seamless to end user. Can be configured in configuration.h or by M-code.