RepRap Builder

October 2013

Calibration, First Test Printing, Problems with the Heated Bed


October 2013

Finally everything worked as it should: all stepper motors were running in the correct directions, the endstops stopped the stepper motors when triggered and both the heated bed and the extruder heated up when switched on.
Prior to printing the first object I had further to calibrate the RepRap.


Just after making the first wiring of the stepper motors and testing their functioning I had already the stepper motors calibrated by adjusting the trimpots on the stepper motor drivers until they were running on the correct current. Motor calibration is not exactly a matter of measuring the current but more a process of trial and error. The trimpots are turned anti-clockwise until a stepper morors stops running and just vibrates, then the trimpot is turned up almost a quarter turn clockwise and the motor should run now smoothly and without strange sounds.

After calibrating the stepper motors I had calibrated the distances travelled by the stepper motors for the X- and Y axis and corrected the deviations by changing settings in the firmware.
The easiest way to do this was by connecting a shap pointed pencil on the extruder in parallel with the nozzle bore axis and by taping a sheet of paper on the heated bed.
In the host sofware the extruder was lowered carefully until the pencil point rested on the paper and then the extruder was moved a distance of 20 mm in the X-direction and 20 mm in the Y-direction. Then the pencil line was measured accurately with the digital calipers and the correction factor was calculated by dividing the value set (20 mm) by the value found. The outcome was used to multiply the value for respectively the X- and Y-axis movement in the firmware. The procedure was repeated until value set equalled value found.

The basic formula for finding the initial value for X- and Y-axis travels is:

x,y_steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)
In my situation with a NEMA 17 motor with T2.5 belt and 16-tooth pulley: (200 * 16) / (2.5 * 16) = 80.0 steps per mm before correction. Due to variations in the system the actual distance travelled can deviate slightly and therefore a correction has to be applied. The factor is established by the calibration procedure.

In a similar procedure I did the same for the vertical extruder travel but not with a pencil because this was not possible. Instead I used a small rectangular block placed on the heated bed (to provide space for the claws of the calipers) and measured after a set travel distance of 10 mm the height between the block and the outer end of the extruder nozzle. Correcting the measured travel value against the set value was done similarly as above.

For the Z-axis the  basic formula is:
z_steps_per_mm = (motor_steps_per_rev * driver_microstep) / thread_pitch
With a NEMA 17 motor with an M8x1.25 mm threaded rod: (200 * 16) / 1.25 = 2560 steps per mm before correction.

Also the extruder has to be calibrated for the exact lenght of filament transported by the extruder when a set value to extrude is entered in the host program. The procedure is done with the hot end removed from the extruder because only filament transport has to be checked and not the output of extruded molten filament.

For the extruder (e) the basic formula is:
 e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * (big_gear_teeth / small_gear_teeth) / (hob_effective_diameter * pi)
For my classic Wade extruder with a 39:11 gear ratio: (200 * 16) * (39 / 11) / (7 * 3.14159) = 515.91048 steps per mm before correction.

A full instruction how to calibrate the RepRap can be found here.

The next step now was levelling of the heated bed. This is performed by placing the extruder from the home position in a number of different positions on the heated bed with a distance for nozzle from heated bed equal to 0.2 mm  and by then regulating bed height by turning the bolts which fix the bed onto the springs. Because the bed is resting on three points and because it is pushed up by compression springs it is rather easy to level the bed by adjusting the three bolts that define bed height at these three resting points. It seems quite difficult to measure a distance of 0.2 mm between nozzle and glass surface but it is not when we take a sheet of 120 grams paper and adjust the glass plate in such a way that the paper sheet can be moved with a slight resistance. Just do that for a number of spots all over the glass surface and the job is done!

Almost at the point of printing my first test object the last step was to check the temperatures of the heated bed and the extruder. I had the choice to finetune the actual temperatures measured against the nominal values in the host program by applying a correction factor in the firmware or by leaving it the way it was and just raise the nominal temperature in the host software to obtain a correct printing temperature on the heated bed and in the extruder. Both methods looked fine to me.

The measurements were done with a thermocouple on my digital multimeter and showed for the actual measured temperatures a difference of about 10C lower than set.
I decided to make my first test run with a nominal temperature set at 10C higher and to observe the quality of the melted filament leaving the extruder nozzle and for the heated bed to observe if the filament would stick to the bed surface. As I was working with ABS the heated bed was now set at 120C and the extruder at 220C, which is 10C higher than the usual temperatures for this working material in order to compensate for the measured differences.

The extruder was instructed to print 10 mm of filament and the result was a nice 0.2 mm thick filament deposited onto the heated bed. Continuing manually printing filament the power was suddenly cut off and it appeared impossible to continue operating the RepRap. After waiting a while for cooling down the extruder and after resetting the microcontroller the RepRap worked again as usual but again only for a short while. Apparently something was overheating and a safety setting prevented further operation of the RepRap. Research on the internet revealed that the firmware has a setting that prevents the extruder heating to exceed 245C. The reason for this limit is to prevent that your house burns down when accidentally the RepRap is instructed to heat to 2000C instead of 200C and one decides to leave the room for taking a coffee when waiting for the heating up.

Probably the cause for this power cutting out problem can be explained by an overshoot of the temperature in the heating process, taking into account that the firmware uses a PID algorithm. The problem, however, could be resolved by changing the limit in the firmware to a higher value, i.e. 265C.

Attention had to be paid now to the heated bed by observing the level of sticking of the filament to the bed surface. I did some tests by changing the temperature of the heated bed and noticed suddenly a cut out of the power supply unit. A power supply unit only stops working when a short circuit occurs in one of the power lines. As I had been changing the temperature settings for the heated bed
I decided to disconnect the power lines for the heated bed in order to find out if the problem was caused by the heated bed circuit. This proved to be the case and I found myself unexpectedly with a new problem to resolve.

To resolve the new problem I had searched for the circuit diagram for the RAMPS PCB but found only some  minimal results. Another disadvantage of Open Source projects?

In image 1 we see the layout of the RAMPS 1.4 PCB and this does not really help to find the circuitry of the heated bed, which is connected to output D8. Image 2, which is difficult to read, shows the D8 connection in the  Heaters and Fans section.
With a photo editing program I have taken out an enlarged Heaters and Fans section from image 2 and we can see in image 3 that mosfet Q3 is a critical part in the operation of the heated bed power supply. When I measured the resistance over the  connectors for D8 I found a short circuit and most obviously Q3 was the cause. This puzzled me because the heated bed resistance had the expected value of 1.2 Ω, drawing 10 Amps, and the mosfet was equipped with a large heat sink. Moreover, I had never experienced a hot mosfet when the heated bed was on, because I checked that when I started testing the heated bed.

RAMPS 1.4 layout
Image 1: RAMPS 1.4 PCB layout (image

RAMPS 1.4 schematic
Image 2: RAMPS 1.4 schematic (image

RAMPS 1.4 schematic heater and fans part
Image 3: RAMPS 1.4 schematic Heater and Fans part

At this point I realised myself that the best option now was to obtain a second RAMPS board as a back-up in case the problem had to be located in the mosfet in the electronics circuit.
I had the choice either to order new critical components (e.g. diodes, mosfets, fuses, etc.) for my existing RAMPS board or to order a completely new RAMPS board. The required minimum order value for components is 25 EUR and a completely new RAMPS boards costs also 25 EUR!

Therefore a new RAMPS 1.4 board was ordered and I started waiting for its delivery.


Last Updated on: Mon Nov 10 21:51:37 2014