By: Anh Nguyen
I/ X,Y,Z Resolution
The object of this experiment is to calculate the resolution of the x, y and z axis of the 3D bio printer. First, the theoretical values from the manufacture’s specification sheet are used for the resolution calculation. Then the experimental values are used to calculate resolution. We will use both online RepRap calculator and the formula for the resolution calculation.
1/ Z axis:
The threaded rod is used for the z axis
The following parameters are used for the z axis:
– Motor Step Angle: 1.8 degree/step and 360 degree/rev
step/rev = = 200 steps/rev
– Driver Micro Stepping: 1/16 u step (we use the 1/16 Pololu motor driver)
– Presets: 1/4” 1/16” ACME
a. From the specification sheet, the lead screw pitch is 1.5875 mm/rev
+ Using RepRap calculator, the resolution is 2015.75 step/mm
+ Using the mathematical formula:
Leadscrew ( * * Motor ( =
(( * * 200 ( = 2015.75 step/mm
b. To get the experimental lead screw pitch value, we will need to measure the length of the rod and the number of lead screw within that length. Since we do not want to take the printer apart, we choose a part of the rod to measure the length and count the lead screw. The length of this section of the rod is 75.2 mm and the number of lead screw is 50.
Distance between each lead screw:
= 1.504 mm/rev
+ Using the RepRap calculator, the resolution is 2127.66 step/mm
+ Using the formula, the resolution is 2127.659 step/mm
Percent error between the theoretical and experimental resolution:
*100% = 5.55%
This percentage error is relatively large. This can be a result from human error in calculate the number of lead screw and also the uncertainty from the equipment (caliper).
We decide to use the theoretical value for the software to calibrate the z axis. We will later re-calculate the resolution of the z axis from the calibration’s result.
2/ X and Y axis:
The belt and pulley are used for the x and y axis
The following parameters are used for the x and y axis resolution calculation:
– Motor Step Angle: 1.8 degree/step and 360 degree/rev
step/rev = = 200 steps/rev
– Driver Micro Stepping: 1/16 u step (we use the 1/16 Pololu motor driver)
– Belt presets: 2mm pitch
a. From the specification sheet, the belt pitch is 2mm and the pulley tooth is 30
+ Using RepRap calculator, the resolution is 53.33 step/mm
+ Using mathematical formula:
(motor_steps_per_rev * ) / (belt_pitch * pulley_number_of_teeth)
(200 step/rev * ) / (2mm * 30) = 53.33 step/mm
b. The measured belt pitch using a caliper is 2mm. The number of pulley tooth counted is 29
+ Using the RepRap calculator, the resolution is 55.17 step/mm
+ Using the mathematical formula, the resolution is 55.17 step/mm
Percentage error between theoretical and experimental values:
* 100% = 0.289%
The percentage error is small. We will use the theoretical value for the software to calibrate the x and y axis. We will later re-calculate the x and y resolution from the calibration’s result.
2/ Sofwares:
To control the 3D bio printer, we will use the three following softwares: NETFABB, Slic3r and Pronterface.
NETFABB is a free cloud, which allows us to clean the .STL file so it is ready to be sliced into G-code (machine code which represent the created model).
Slic3r is software that converts the .STL file into G-code. The software can be downloaded online from: http://slic3r.org/. There are 4 tabs in the Slic3r software: Platter, Print Settings, Filament Settings and Printer Setting. We will add the G-code in the Plater tab and set the settings for each requirement.
In the start of the G-code, the printer is told to home all axis and start printing. At the end, only the x-axis is home and all the motors are turned off.
Pronterface: After the G-code is ready, it will be loaded to the Pronterface software.
The baud rate of the Pronterface is set to be 25000, the same as the baud rate of the Marlin Firmware.
The Marlin Firmware is used for the Arduino to set up the movement for the 3D bio printer. The firmware can be downloaded from: https://github.com/ErikZalm/Marlin
In the code, the speed of communication is set to be 25000.
// This determines the communication speed of the printer
#define BAUDRATE 250000
// #define BAUDRATE 115200
We will take out the thermal settings in the code because we will use a Peltier cooler attaching to the bed to cool down the printed gel and a second Arduino to control the temperature of the gel inside the syringe. However, when we comment out the thermal setting of the code, an error is returned in complying because the firmware wants to run the subroutines that control the thermal settings of the bed and the extruder. To solve this problem, we connect 100kohm resistor instead of the thermistor and keep the original code.
// 0 is not used
// 1 is 100k thermistor – best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor – ATC Semitec 204GT-2 (4.7k pullup)
3/ Wiring:
We use a new linear actuator for the extruder. It has 2 pairs of wire: red/ red white and green/ green white for two phases.
First, we will test the polarity of the connecting wire from the ramp to the actuator. The ramp side has 4 wires: black, brown, red and orange. The actuator side has blue, yellow, green and read wires.
Ramp Actuator
1A Red Green
1B Black Blue
2A Brown Yellow
2B Orange Red
Red / Red White will go to 1A and 1B while Green / GreenWhite will go to 2A and 2B or vice versa. We need both two phases of the actuator for precise movement. The current goes through the actuator should be from 1.75 to 1.2A. Since the actuator does not have any motor in it, its motion depends on the control of the ramps on the Arduino board. We need to check the connection of the ICs on the Arduino board to make sure there is enough current going through the actuator.