Advanced 3D Printer, The Conclusion

By Mustafa Alkhulaitit – Project Manager

After 8 weeks of hard work, we have the 3D printer at 90% completion. During the last week, there were many complications and issues that prevented us from completing the printer to a 100%. The main reason for the delays was the printed parts provided by our mentor Mike Plume. The y-carriage, for example, had way too short rods that made calibration quite a hassle. We had to purchase extra stepper-motor couplers in order to try to calibrate the printer. Another issue was with the Bowden extruder holder. When we tried to calibrate it, we discovered that it was too short. Another issue was one stepper-motor that suddenly stopped working; this stepper-motor was supposed to be for the new extruder that is responsible for the filament. The stepper-motor needs to be replaced in order to dual print, which we did not have any time to fix or get new stepper motor.

The endstops were also troublesome because the new frame is totally different than the previous one. We had to come up with quick solutions to put those on the new frame. Luckily, we no longer need the z-axis endstop because now we have auto leveling that is replacing the z-axis endstop. Another issue that we did not expect was replacing the Arduino MEGA 1280 to MEGA 2560. The MEGA 1280 works fine, but it unfortunately does not have enough memory to support dual printing. Since the firmware must be changed to adopt the new upgrades and changes, the MEGA 1280 couldn’t support those new changes. After getting the MEGA 2560, we were able to successfully upload the new firmware.

The following table shows what must be done on the printer to have it completely ready.

 

Type

Issue

Suggested Fix

Y-Axis Rods

4 mm radius– too small

Replace with 5mm

Y-Axis Carriage

Bad print – starts breaking off

Redesign and reprint

E1 Stepper-Motor

Does not turn – dead

New NEMA 17 stepper motor

Arduino cooling fan

No pins available

Find a way to connect to the RAMPS, or use external power supply

Nozzles holder

Bad print – not aligned

Redesign and reprint

 

Most of the hard work has been already accomplished; the next project team should be able to finish the remaining tasks easily. Overall, our group has done a good job on this project, especially when considering that we received the printer really late (week 7). This project was not an easy one; the amount of precision and time needed make a very hard project to finish. The following are the tasks that our team has done:

  • Frame – was one of the toughest tasks. It required so much time and effort in order to put everything together.
  • Heat Bed – improved the isolation material and improved the appearance of the bed. Better appearance and improved performance. We also added bigger screw holes, considering thermal expansion and also added three-point leveling.
  • Bowden Extruders – almost ready to use with the replacement of the defected stepper motor.
  • E3D Hotends – ready to use and were tested to verify function. High quality and professional look.
  • LCD Controller – very nice feature with many options as can be seen in the photos below. It was tested and verified to function. Printer is now fully functional without a PC.
  • Endstops – new position acquired. Verified to perfectly work.
  • Auto Leveling – the best feature we have added to the printer. It works perfectly and saves time required to setup for printing.

The following photos are a glance of the overall work done on the printer.

photo copy

1

 

2

 

3

 

photo 4

 

photo 5

 

photo 1

 

photo 2

 

photo 3

 

Remote Controlled Printer

By Mustafa Alkhulaitit – Project Manager

 One of our main goals is to be able to controlled Sasha remotely. After many researches on this topic and trying to know if such an idea is even possible or not, we found our answer. There is a very neat feature that allows 3D printer users to remotely control their printers. This feature is called “OctoPrint”.

 OctoPrint uses host software to control 3D printers; it also uses web interface enabling users to control their printers from anywhere in the world. OctoPrint needs a camera and a RaspberryPi to work. If this cannot be implemented this semester, we hope in the future somebody will get OctoPrint to work on Sasha.

 For more info, please check: http://octoprint.org/

E3D Hotends Assembly

By Jessica Salazar – 3D Manufacturing  

Components:

-Thermal Cartridge
-Thermistor
-M3 grub screw
-Heat block
-Heatsink
-Heat-Break
-Modified Fan Mount
-Tube coupler

steps 1-2

Step1:

The Bowden tube coupler screws directly into the top of the heatsink.

Step2:

Screw the coupler into the heatsink, then push the tubing into and through the couple until it stops

steps 3-4

Step3:

Insulate the thermistor legs with kapton tape up to the base of the glass bead. All bare wire should be covered

Step4:

Thermistor goes into the small hole the side of the heater block

(it is secured by kapton tape)

steps 5-6

Step5:

Place the heater cartridge into the smooth hole on the heater block; a small amount should be poking out each end. The M3 grub screw secures it.

Step6:

Screw the heatsink onto the long end of the heat break.

steps 7-8

Step7:

Place the heatsink into the printed fan mount. Screw down and secure the fan to the printed fan mount.

Step8:

Final step- using software heat the now complete hot end up to 290C, then once up to temperature you need to do a final tightening of the nozzle against the heat break to form a good seal. This prevents any plastic leaking.

Area Thermal Expansion

By Jessica Salazar – 3D Manufacturing

area therm exp 

 IMG_0778

Aluminum expands when heat is applied; this was not considered and remained a problem with the previous design of the heat bed.  The heat bed was screwed down with no room for expansion this made imprecise prints and was not a smooth surface. The aluminum would concave up in the middle of the heat bed making it uneven and impossible to work with. In order to fix this problem we took all the measurements needed to calculate the area of thermal expansion. The misconception of a hole on the plate is that when the plate is heated it will expand in all directions or just on the whole but that is not the case. If we have a plate that does not have a hole it will expand outward. It does not matter if the hole is there or not it will still expand outward through the whole plate. Therefore, the hole will get bigger as well as the plate.

We found out that the thermal coefficient expansion for aluminum is equal to 24×10^-6. We plugged in the numbers needed for the expression and came out to .10465cm^2 for PLA or 3.23mm as well as ABS. Our holes would have to be modified to these numbers.

Auto Leveling Design

By Greg Rios – 3D Modeling

In order to implement auto leveling to the new Sasha, one must first come up with a design that will be easily attached to the current frame or printed parts. Not having to replace parts will help with reduce material being used and be able to finish in a timely manner.  Knowing the location where auto leveling components will be located is very important. Incorrect placement will not only waste material but also a lot of time, in case of having to re-design the part and to re-print.

The location I selected was next to the x-carriage and hotend mounts. The reason I decided on this location was because since the switch needs to travel to different parts of the bed, the logical place to put it was somewhere near the x-carriage. SolidWorks was used to design the servo mount, which will hold the servo (TowerPro SG90 9G Mini Servo) next to the hotend mounts with two M3 screws.  The other part designed was the servo arm that will allow extend when needed and retract when done probing points on the heated bed. Before any design, a blueprint (or quick drawing) needs to be done so you have measurements of where you plan on putting the mount to make sure that nothing gets on the way when printing and knowing needed clearance when mounting. I also took measurements of the servo and micro-switch, to have dimensions of each, which will help on designing both mount and servo arm. This will allow a proper fitting when parts are printed out.

In SolidWorks an outline for the servo arm was drawn and given measurements in order to be able to fit properly on the servo and micro-switch. A caliper was very important tool to be able to get precise dimensions. After front plane was completed with the correct measurements were implemented, it was time to extrude to 5mm thickness. I did not want to use M3 bolts to attach the micro-switch to the arm because we were running short on supplies. I decided to go with zip ties instead, hence the two holes at the bottom of the arm. These had to be the same distance as in the micro-switch.

AU ARM

Another important part that needed to be designed was the servo mount. After deciding on the proper dimensions for the servo mount things were starting to come together. The servo mount was also designed to be an easy installation with the least amount of installation difficulties. Caliper was again used to make sure that the mount had enough clearance for the servo. I did however decided to go a little smaller than what the actual measurement I got from the caliper; this was done so that the servo would have a snug fit instead of being loose. I also decided to add an opening that will allow wires from the servo to come out of. All that needed to be after part was printed was to sand the mount and it fit without a glitch.

AU MOUNT

Once both Servo mount and arm were completed, I wanted to see how all parts were going to work together. In SolidWorks there is an option where parts that are created can be assembled. But in order to be able to have a simulator, additional parts needed to be created. I create parts for the servo and micro-switch (OMRON ELECTRONIC COMPONENTS SS-5), these parts had to be precise in measurements that would fit perfectly with mount and arm in SolidWorks, if parts are not precise they will not be able to mate properly error messages would come up on SolidWorks when trying to assemble.

AU PARTS

After several hours of adjusting various parts in order to not receive any errors on SolidWorks I was able to assemble it properly and even learned how to use animation on SolidWorks to simulate how parts were going to act on the x-carriage. If you would like to see the video please click link below

AU ASSEMBY

Following picture shows my personal 3D printer, printing both servo arm and mount.

AU PRINT 1

AU PRINT 2

https://www.youtube.com/watch?v=yIJ0AzV6SuI&feature=youtu.be

 

Auto Leveling Implementation

By Greg Rios – 3D Modeling

What you will need:

 

TowerPro SG90 9G Mini Servo with Accessories

Omron SS-5 Microswitch (not shown in picture)

Servos mount (3D printed)

Servo arm (3d printed)

PARTS NEEDED

Male pins

Assembly:

Servos mount needs to be sanded down in order for the servo to fit properly. The slot that was made for the servo wires was cut off further, for easier installation. Micro-switch is added to the bottom of the printed arm with a zip tie. Top of the printed arm has an opening that needed to be enlarged with the Dremel, in order to be able to connect to the servo gear. By now there should be two items to be connected together.  Combine both servo and printed arm, and use the small white arm (that came with the servo) into the servo gear. Use a small screw to keep in place.

In the Ramps shield, a jumper needs to be installed 5V to Vcc next to the reset button. This will activate the servo pins. Our current Ramps shield did not have pins for servos or for 5v to Vcc, so some soldering was done.

PINS

Installing:

With hardware assembled, the completed part is attached to the hotend mounts/x-carriage. A drill was used to make opening for the screws that will hold the servo mount in place. After everything installed, we need to connect to the servo pin 0 and connect the servo into the Ramps shield. With hardware installed, we need to go to the Marlin Firmware to enabled auto leveling

Firmware:

In configuration.h file:

#define min_software_endstops true // If true, axis won’t move to coordinates less than HOME_POS.

Was changed from true to false, this will not allow firmware to move any axis go below zero.

Scroll back down to Auto Bed Leveling section, uncomment:

//#define ENABLE_AUTO_BED_LEVELING

Scroll down and skip (for now):

#define X_PROBE_OFFSET_FROM_EXTRUDER -25
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35

(These values will change, these need to be measured. Every printer will have its own unique offset numbers)

Change the travel speed, (8000 is too high and might cause skipping problems), choose from 4000-6000. I choose 4000.

#define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min

For now, I pass the Auto Leveling section and go to R/C Servo support section:

Uncomment the following lines:

//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
//#define SERVO_ENDSTOP_ANGLES {0, 0, 0, 0, 70, 0} // X, Y, Z Axis Extend and Retract angles

 

Servo number was changed from 3 to 1. In SERVO_ENDSTOPS the first two values are “-1” (disable) with the third being “0” enable). SERVO_ENDSTOP_ ANGLES will later be changed to an appropriate angle of extraction and retraction

I encountered twitching problems while printing; servo printed arm would twitch when printing which might cause the servo to malfunction after time. To avoid this problem this line was uncomment:

In the configuration.h file

//#define PROBE_SERVO_DEACTIVATION_DELAY 300

Now the angles for servos will be adjusted using Pronterface with command:

M280 P0 S160

(This command is telling the printer to extend servo 0 (P0) to an angle of 160 degrees (S160)).

If everything is installed appropriately, the printed arm will extend. Changing the value of “S” until the micro-switch is parallel with the print bed. If it’s not parallel the switch will never activate and it crash into the bed. Do the same for the retraction angle; make sure that the angle is wide enough to clear from any objects while printing.

Go back to Configuration.h file, and add your new angles:

#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles

The 3rd pair (Z-axis endstop) was change and new values were added (Z Axis Extend and Retract angles). Then load to Ramps. Now the probe/extruder offsets needs to be defined. An arbitrary point was selected on the bed and marked. Somewhere in the middle works well, but it’s not important. Using the X, Y, and Z controls on Pronterface, positions the hotend so that it is just touching the mark. Slide a piece of paper between hotend nozzle and bed should be barely able to clear.

Zero all the axes with command:

G92 X0 Y0 Z0

(This command will temporarily set the hotend’s current location as the zero point for all three axes)

After the command, raise the hotend until there is sufficient room to extend servo printed arm with micro-switch (which is now your z-axis probe). To extend the Z-probe use the M401 command.

With the z-probe extended, Pronterface was used to place the micros-witch trigger right on top of the mark on the bed. Z-probe is lowered until the Z-end stop is triggered; check if endstops were triggered command M119.  Once verified that the Z-end stop has barely been triggered, use M114 to read the current position of the hotend, and record the values. You should have one value for X, one for Y, and one for Z.

Multiply the values by -1 to reverse the sign.

Back in Configuration.h, change the probe offset values to your new values

Example: (old values)

#define X_PROBE_OFFSET_FROM_EXTRUDER -20
#define Y_PROBE_OFFSET_FROM_EXTRUDER -24
#define Z_PROBE_OFFSET_FROM_EXTRUDER -10

Replace the values with your new sign-reversed values.

#define X_PROBE_OFFSET_FROM_EXTRUDER 30
#define Y_PROBE_OFFSET_FROM_EXTRUDER -2
#define Z_PROBE_OFFSET_FROM_EXTRUDER -9

The last things to change are probing positions on the bed:

Initially were set as:

#define LEFT_PROBE_BED_POSITION 50
#define RIGHT_PROBE_BED_POSITION 150
#define BACK_PROBE_BED_POSITION 150
#define FRONT_PROBE_BED_POSITION 50

These will need to be changed in order to probe farther out. Farther out the better the plane calculation will be. Caution needs to be taken to make sure that there will be no issues with clearance with any other objects around the x-carriage and auto leveling parts and make sure that the probe is within the bed. Ramps 1.4 will be uploaded with all new changes.

Use command G29 to run the auto-level. But before you do, you need to home all positions by either clicking home button on Pronterface or by using G28 before running the G29. Click on the link below to see auto bed leveling in action.

https://www.youtube.com/watch?v=I3SBSFOKj5w

Frame assembly

By Gregorios Rios – 3D Modeling
and Jessica Salazar – 3D Manufacturing

When I first got Sasha, she was not the prettiest Mendel 3D printer. Sasha’s rods were a bit rusty; wiring was held down good but aesthetically was not pleasing to the eye. I was even concerned that it would not work at all or not print properly. After she was plugged in, she was alive and all that was needed to be done was to do a bit of calibration. Prints were pretty well done. Of course there is always room for improvement, especially since now there are new and better frame designs.

old shasha 0

The Mendel printer is more of a triangular structural design weighing about 16 pounds, twenty inches high with and square base of sixteen by fourteen inches. When Jessica and I broke down Sasha, we realized that there were a lot of different components for a Mendel printer. It included printed parts, different rods, types of screws, washers and other miscellaneous part. Since the Mendel version requires so many parts it would require a lot of work in order to replace parts, repair or do any upgrades. Luckily the new P3Steel frame will take care of those issues. Once Sasha was broken down we separated everything that was going to be salvaged and parts that were not compatible with the P3Steel Design. The salvaged parts for the new frame were the Ramps board, most of the wiring, stepper motors, heated bed and 4 smooth rods.

Leonardo_2_15_preview_featured_8102

This is the new Sasha. P3Steel design is derived from the Prusa i3 frame. The main difference between Prusa i3 and P3Steel is that the frame is cut steel plate, along with the y-axis frame replaced the y-axis rods. This frame design has a stronger frame due to its construction which will reduce vibration which will increase accuracy.  When the new Sasha is complete, the printer will weigh about 23 pounds, which is much heavier than the Mendel version but it is not enough to be considered a bad thing, unless you are planning to transport it frequently.

Since the frame was lasered from steel, it needed to be painted to prevent corrosion. Because the frame was lasered from specific measurement it was supposed to fit with enough clearance.  But after being painted that extra layer of paint was enough for parts not to fit properly which caused scraping parts or take off the paint of the frame when assembling. After being built, I had to go back, primer the part that the paint was scratched off during assembly and then repaint it.

 Before adding the y-axis rods on the y-frame, rods needed to be cleaned from corrosion. I used a bench grinder with a wire brush disk, which worked very well. All four rods needed to be cut and luckily Jessica knew where to get them to the correct measurements. When adding the y-axis rods on the y-frame, the rods would not fit the opening on the y-frame. For some reason they were too loose when installing the rods, either the rods were slimmer than the opening or the opening were too big. The solution for this was to buy Amazing Goop which is glue that works with metal. This added an extra layer on the openings giving it a really good fit without movement, which will reduces vibrations during printing.

There was another minor problem with the stepper motors. Some motors didn’t seem to take M3 screws; it was a mixture of M3 and M2.5.  The only way to solve that issue was trial and error. Try different screws on each spacing and add extra washers because the screws were too long. In the end it was mounted very securely and was no longer loose.

framepaint

After many hours, of putting together the frame, trial and error, we had a completed frame. All that was needed was to prepare the printed part to be mounted on the frame, pulleys, bearings and belts. This was result of a lot sweat, tears and blood.

NEWSasha

Preparing Printed Parts

By Gregorios Rios – 3D Modeling

SupportMaterial

Our 3D mentor (Mike Pluma) provided the printed parts to be use on the new P3Steel design frame; which is very similar to that of the Prusa i3. All of the printed parts were printed out of ABS plastic because ABS is very sturdy and has a higher melting point compared to PLA plastic. When dealing with printed parts, there is a process that needs to be done on each part so that it can be installed properly into the frame. This can include parts that need to be cut off, sanded, trimmed or be drilled. Support material is part of the printing process that helps support material when being printed. This support material needs to be removed by cutting it off with a sharp blade and pliers for every printed part.

For most of the printed parts, M3 screws would not fit, so a drill was used to make them big enough to fit correctly. The drill was also used when there where opening that were too small and needed to be expanded. A Dremel could have been used but it is usually better for larger openings. When using a Dremel, being precise and cautious is very important. You do not want to ruin the part and have to spend more hours re-printing a replacement.

X-axis PARTS

Both x-axis mount ends took longer than expected to get them prep to install into the frame. Apart from the above procedures done to them, all four opening for the smooth rods were too small and needed to be increased in diameter. This was done with a combination of a drill and the Dremel. The drill was used to make the diameter as big as possible without making it big enough for the rods to be loose, and the Dremel was used to grid off the hole evenly big enough for the rods to go in nicely snugged to avoid vibrations. When installing the rods, you have to be sure that you do not force the rods in too forcefully; this can split open the a-axis mount and ruin the x-axis mounts. The Dremel grinder was used to make enough room for the linear bearing to be put in the mounts.  When installing the linear bearing it is very easy to break off the linear bearing walls. Just enough clearance for the bearing to go in is essential.

Dual extruder PART

For both extruder and hotend clamps printed part also needed to be altered in order for bearing and screws.  In order for 608 bearings to be installed, a Dremel with a round grinder was used to make sure the bearing fit correctly. E3D dual clamps that are attached to the X-carriage needed a good amount modification.  Both the diameter and height of the inner walls of the clamp needed to be cut down in order to adequate installation with the E3D hotends. In the picture below you can see how it originally was and the end product.

Dual Clamp

partfitting

proper fit

There were times that parts needed to be replaced after being prepped and installed, but were replaced by better designed parts that in the long run will benefit Sasha’s reliability. Regardless of the time spent on the discarded parts, it will reach our goal of providing an overall better quality printer.

All these steps were done to several of these parts:

http://reprap.org/wiki/P3Steel_Proteins

Three Point Leveling

By Mustafa Alkhulaitit – Project Manager

Another minor upgrade that will be applied to the heat bed is what’s called “three point leveling”. The previous heat bed had what people uses on their 3D printers. The most common method used on heat beds is the four point leveling, which is simply having four bolts on each corner of the heat bed to mount it.

Fig1

This figure shows the positions for the bolts to mount the heat bed- “Four point Leveling”

There are few problems when it comes to using the four-point leveling such as over-constraint and complicating leveling procedure. To fix this issue, the three-point leveling is introduced and is beginning to spread among 3D printer users.

Advantages of 3-point leveling:

  1. High quality prints
  2. Reliable printing
  3. Increase of first layer adhesion

All of those advantages will help us meeting our requirements. All of those advantages depend on a leveled bed, which is a very important point when it comes to 3D printing.

The procedure depends on how many points of attachment are used to mount the bed. Three-point of attachment avoid the problem of over-constraint and simplifies leveling procedure. Three-point leveling uses a triangular pattern that can be seen in Fig.2. There will be only three bolts to mount down the bed instead of four.

 

For more information, please check: http://numbersixreprap.blogspot.com/2012/09/heated-bed-with-three-point-leveling.html

 

 

 

Construction Update 3.0

By Mustafa Alkhulaitit – Project Manager

The heat bed as mentioned in a previous blog post is remaining the same, except for minor upgrades. This blog post is going to cover the upgrades and work done on the heat bed. The first thing was changing the insulation material used in the original design. The insulation was no more than few pieces of cloth put together and taped with Kapton tape. The look was unprofessional and there was heat loss.

Fig1

The previous design is shown in Fig.1.

 To fix this, a rigid foam insulator is now used instead of the cloth. The insulation foam sheet was cut and cleaned for perfect fitting. Figures 2 and 3 show how insulation sheet and how machinery was used to have the perfect thickness.

Fig2

Fig3

The surface, as can be seen in Fig2, will reflect heat minimizing heat loss. Figures 4 and 5 show the final insulation sheet ready for implementation.

Fig4

Fig5