Friday, September 7, 2012

WhiteAnt 3d Printer Build- Electronics II

The heart of the 3d printer's electronics system is an Arduino Mega 2560 microcontroller interfaced by a RAMPS 1.2 shield. The RAMPS (RepRap Arduino Mega Pololu Shield) attaches to the topside of the Arduino Mega and allows for connections to the Pololu stepper drivers, motors, heat and fan components. Presently, the version of the board is at 1.4.

Arduino Mega 2560 and Arduino Mega 2560 with attached RAMPS 1.4 shield.

Why am I using a shield designed for Pololu stepper drivers if I plan to use
different drivers? First and foremost, I want to keep with an electronics
package that is working well with the software that I am presently using. My
past experience had a high learning curve because I was completely unfamiliar
with the many different components (both soft and hardware related). Getting all
of it to work together was not easy. I'm hoping by retaining most of my original
setup on this printer, I'll be able to work bugs out more efficiently.

Second, the RAMPS shield is considered to be the best interface for the RepRap printers and because of this, has a good support system (especially where software is concerned).

Third, I plan to retain the use of 1 and later 2 Pololu drivers for extruder
control. More than half of the shield then keeps it’s functionality as it was

I'm using RAMPS version 1.2 (later I will update to v1.4) for the initial build
of the WhiteAnt. The v1.2 shield was assembled with only one important
alteration:  the IN4004 diode was omitted so that the board can be powered by
24v. All of the driver slots are left in place and will be used as designed.

Fully assembled RAMPS 1.2

Why power the shield with 24v instead of the typical 12v supply? The RepRap
printers use the NEMA 17 stepper motors to move the axes. The WhiteAnt is built
utilizing the larger stepper motors NEMA 23. These larger motors will work more
effectively if more voltage is supplied.

Nema 17 and NEMA 23 stepper motors.

The Pololu 4988 stepper drivers (typically used on the RAMPS shield) are rated
to 35v, 2A and could drive the larger motors, but the higher current demands
would put a strain on them. Overheating would be a constant problem. I'm
replacing the Pololu’s with the v3.3 stepper drivers designed by Makerbot. They
are rated up to 35v, 2.8A and robust enough to handle the NEMA 23's.

Makerbot v3.3 and Pololu 4988 stepper drivers.

The major obstacle in swapping out the Pololu with the Makerbot stepper driver
is the hookup to the RAMPS shield. What connections are necessary? I owe NoobMan on the RepRap forums thanks for helping me sort it out. A detailed account can be found here. Basically, the DIR, STEP, ENABLE pins (ignore the other 3 pins) are connected from the Makerbot driver to the corresponding pins on the RAMPS board (where the Pololu driver would sit).
The 12v power pins on the Makerbot board (even though 24v will be supplied in this case) are connected to the motor power supply pins (where the Pololu would sit) on the RAMPS shield. This supplies power to the Makerbot driver. All of the other connections that the Pololu driver would use can be ignored including the motor connections next to the driver slot. All four stepper motor leads will now be connected directly on the Makerbot driver.

The next obstacle is finding a way to physically attach the connections. One method to solve this is by imitating the Pololu driver. I fabricated little boards with male breakaway headers and wired into it. This gives me the flexibility of swapping  out whatever driver I decide to use.

To test my system, I hooked up a driver and stepper motor to the Y-axis and connected the Arduino Mega to the PC. Using the 3d printer software Pronterface, I was able to run the motor with the y-axis controls. The motor 
worked well in both directions.


  1. I thoroughly check it this is really awesome 3d
    prints. I will try it.