Small nuts and bolts seems like an interesting challenge for a 3D printer. You need accuracy in all 3 directions to make sure they are circular and that the threads line up from one layer to another and have the right pitch. I wanted some plastic M3 nuts and bolts to mount the Arduino board without any risk of shorting something. My first attempt, when I was still getting to grips with the printer, was a dismal failure:
It looks like a tiny elephant blowing its trunk. Since then, I've got better at picking temperatures and layer thicknesses and have also made a few physical adjustments.
For printing the bolts, there is a choice between doing them horizontally, in which case they would need some support, and vertically, which I think is better. I was printing 16mm long bolts, meaning the print is tall compared to its base area. Each layer is small, and so this means it does not have much time to cool before the next layer starts. That might be the cause of the wobbles in the earlier example. I tried both 0.1mm layers and 0.05mm with 60% infill in each case. In a previous post, I said I had not succeeded in printing at 0.05mm; this time I did. Here are the results. As you can see they are pretty well straight.
Nuts don't have the same height problem, but as they have very little surface area (they are more hole than doughnut), it is hard to get them to stick. I succeeded in printing a 0.05mm layer version of this. The first attempt at a 0.1mm one detached from the bed and got dragged around by the nozzle. However, adding a 3mm brim in Slic3r solved it. A real metal 3mm bolt went through both nuts, and they also worked with the printed bolts. The metal bolt probably helped clear out the thread. I am not sure I would trust them with a lot of load, but they feel quite firm, and the nut sits squarely on the thread. I also tried a different model. This worked OK, but was a little tighter.
Another question is what to do when you want to print several items. Do you print them one by one, or lay them all out and print them at once? In the latter case, there is more time for each layer to cool before you start the next one, but it also puts more demands on repeatable positioning. I tried this with two bolts and two nuts as a single print. At 0.05mm, I have had no success: I end up with disfigured blobs of plastic which eventually stick to the nozzle. 0.1mm did not do any better. They may be ways round this, such as reducing the print speed or keeping the objects really close together, and for now I am finished with this experiment. Buying nylon nuts and bolts is a better solution for real work, but it's nice to know that if I needed some in a hurry I could make them.
Saturday, June 27, 2015
Friday, June 26, 2015
3D Printer Project, Part 12: Adjustments
I suspect 3D printer owners go through three phases once they start running prints:
Folger include some settings to import into Slic3r. For PLA, they are not very good, and based on advice from the forums and from Triffid Hunter's Calibration Guide, I made a number of changes. Most important of all is the temperature. Folger's configuration sets it to 219C, and everyone agrees this is much too hot for PLA. There is some variation between different vendors of PLA. I've used values between 180C and 195C which worked well both for the sample of PLA included in the kit, and the filament I've been using since then. 170C is too low: you get no extrusion at all. At 175C there is some extrusion but it doesn't stick. 180C is OK. Many people recommend a higher temperature for the first layer, and I am now using 185C for the first layer and 180C for the rest, or sometimes 190C/185C. The bed temperature seems less important. 65C or 70C work well.
Both the layer height and the infill percentage need adjusting. The layer height should usually be no more than 80% of the nozzle width, 0.4mm. So 0.3mm is a good general setting. Sometimes it helps to have the first layer thicker by 0.1mm. I've successfully printed at 0.2mm and 0.1mm. At 0.05mm, the print was not a complete failure, but the surface kept getting chewed up by the nozzle. The Folger value for infill is 10%, and 30% is a much better value.
One other thing I changed is the G code executed at the start and end of the print. I'll discuss the end G code first. I was noticing two bad things at the end of each print. First, a very small part of the top layer would be missing, and secondly the motors would stop with a horrid grinding noise. These are both because the end code was not allowing pending commands to complete, and the following works better:
G1 E-1 ; retract extruder 1mm
M400 ; wait for buffer to clear (finish the top layer)
M104 S0 ; turn off temperature
G28 Y0 ; home Y axis
G28 X0 ; home X axis
M400 ; wait for buffer to clear (finish homing)
M84 ; disable motors
- Printing calibration and test objects.
- Printing new parts for their printer.
- Using it for things that might actually be useful.
I think I'm about on the boundary between 1 and 2. I am largely happy with the prints I'm getting, and so I want to list some of the tweaks and adjustments I've made.
Folger include some settings to import into Slic3r. For PLA, they are not very good, and based on advice from the forums and from Triffid Hunter's Calibration Guide, I made a number of changes. Most important of all is the temperature. Folger's configuration sets it to 219C, and everyone agrees this is much too hot for PLA. There is some variation between different vendors of PLA. I've used values between 180C and 195C which worked well both for the sample of PLA included in the kit, and the filament I've been using since then. 170C is too low: you get no extrusion at all. At 175C there is some extrusion but it doesn't stick. 180C is OK. Many people recommend a higher temperature for the first layer, and I am now using 185C for the first layer and 180C for the rest, or sometimes 190C/185C. The bed temperature seems less important. 65C or 70C work well.
Both the layer height and the infill percentage need adjusting. The layer height should usually be no more than 80% of the nozzle width, 0.4mm. So 0.3mm is a good general setting. Sometimes it helps to have the first layer thicker by 0.1mm. I've successfully printed at 0.2mm and 0.1mm. At 0.05mm, the print was not a complete failure, but the surface kept getting chewed up by the nozzle. The Folger value for infill is 10%, and 30% is a much better value.
One other thing I changed is the G code executed at the start and end of the print. I'll discuss the end G code first. I was noticing two bad things at the end of each print. First, a very small part of the top layer would be missing, and secondly the motors would stop with a horrid grinding noise. These are both because the end code was not allowing pending commands to complete, and the following works better:
G1 E-1 ; retract extruder 1mm
M400 ; wait for buffer to clear (finish the top layer)
M104 S0 ; turn off temperature
G28 Y0 ; home Y axis
G28 X0 ; home X axis
M400 ; wait for buffer to clear (finish homing)
M84 ; disable motors
The home commands are optional. It's the M400 commands that are important. I'll come back to the retraction command in a moment.
(Edit: I now no longer use G28 Y0, G28 X0. They aren't necessary, as Repetier/Slic3r parks the head at X=100, Y=0).
(Edit: I now no longer use G28 Y0, G28 X0. They aren't necessary, as Repetier/Slic3r parks the head at X=100, Y=0).
I had some problems with the corners of parts curling slightly. This one went away on its own. It happened only on a couple of days which were unusually hot and humid (for where I live, in coastal Los Angeles, so much less hot and humid than say Boston in the summer). I'll see if this comes back as the summer goes on.
(Edit: I was mistaken about this. There is slight bowing on some more recent prints. It's something I'll investigate more.)
(Edit: I was mistaken about this. There is slight bowing on some more recent prints. It's something I'll investigate more.)
The issue I spent the most time on was the runny nose printer problem. The printer starts exuding filament when it hits 175C and it curls up and stick to the nozzle. By the time the print starts, then can be a semi-molten blob, which then loosely sticks to the bed. Sometimes this is OK, and sometimes it can get caught up in the print and ruin it. I tried many things for fixing this. By the way, it was helpful to make a tiny test object consisting of a 10mm x 10mm x 0.5mm slab so I could quickly experiment with different setting. You can try to grab the loose exudate with fine nose pliers just as the print starts, but this takes luck, and it's not a good solution. A second possibility is to retract some filament at the end of the previous run so there is less to exude. That's what the G1 E-1 command in the end code aims to do. It helped a little. In the end, the best solution I could find was to add commands to the start G code to draw a small object first, consisting of a skirt (the outline drawn round objects), and a small unfilled square. This helps most of the time. I made the G code by taking my code for the test slab and cutting it down. I call this the scribble. My start G code then looks like this. It's not ideal, but it works. Maybe this is just a limitation of the extruder.
Edit, a few weeks later.
I didn't use the scribble for long. It helped less than I thought it would at first. More recently, I've been trying something inspired by a blog post by nophead. Nophead's technique didn't work for me. Playing around with it, I arrived at the idea of drawing a L shape near the front of the bed. On leg of the L get the extruder going. This takes a while and leaves a blob of filament on the nozzle. Changing direction for the other leg of the L removes the blob. So far the results look good. I got the L code by making a L shaped model 0.3mm thick and deep in blender, then exporting to STL, slicing it and copying the G code. So now my start G code looks like this:
Edit, a few weeks later.
I didn't use the scribble for long. It helped less than I thought it would at first. More recently, I've been trying something inspired by a blog post by nophead. Nophead's technique didn't work for me. Playing around with it, I arrived at the idea of drawing a L shape near the front of the bed. On leg of the L get the extruder going. This takes a while and leaves a blob of filament on the nozzle. Changing direction for the other leg of the L removes the blob. So far the results look good. I got the L code by making a L shaped model 0.3mm thick and deep in blender, then exporting to STL, slicing it and copying the G code. So now my start G code looks like this:
G28 ; home all axes
G1 Z0.05 ; move nozzle close to bed
M109 S[first_layer_temperature] ; heat nozzle and wait until reached
M82 ; use absolute distances for extruder
G92 E0 ; zero the extruder position
G1 Z0.334 ; move enough to let the ooze out
G1 X115.350 Y5.000 F9000.000
G1 E1.00000 F1800.000
G1 X190.350 Y5.000 E7.75323 F648.000
G1 X190.474 Y5.026 E7.76466
G1 X190.500 Y5.150 E7.77609
G1 X190.500 Y55.150 E12.27824
G1 F1800.000 E11.27824
M400 ; wait until we get there
G92 E0 ; zero the extruder position
G1 Z0.05 ; move nozzle close to bed
M109 S[first_layer_temperature] ; heat nozzle and wait until reached
M82 ; use absolute distances for extruder
G92 E0 ; zero the extruder position
G1 Z0.334 ; move enough to let the ooze out
G1 X115.350 Y5.000 F9000.000
G1 E1.00000 F1800.000
G1 X190.350 Y5.000 E7.75323 F648.000
G1 X190.474 Y5.026 E7.76466
G1 X190.500 Y5.150 E7.77609
G1 X190.500 Y55.150 E12.27824
G1 F1800.000 E11.27824
M400 ; wait until we get there
G92 E0 ; zero the extruder position
So far this has been working quite nicely at 0.3, 0.2 and 0.1mm layer heights.
Monday, June 22, 2015
3D Printer Project, Part 11: A week of prints
I've had the printer, now dubbed moosebot, working for about a week now. The quality of the prints varies quite a bit. In general I am happy with them, though there is still tuning to do. So here's a gallery of some of the successes and failures so far (some repeats from the previous post).
The first few cubes. The little Giacometti scribble above them was the first output I managed to get from the extruder after struggling with it for a while. Then solid cubes at various temperatures.
Some thin wall cubes, first with the sample filament, and then with the roll I bought which I think is better quality.
More test cubes, as I experimented with temperatures, infill percentages and layer thicknesses.
Bigger test cubes. The one on the right was one I abandoned. It was using 0.2mm layers and it didn't stick to the bed. My first prints were at 0.4mm, and most of them since then were at 0.3mm. I plan to go back to 0.2mm. I think also the blue painter's tape on the bed was getting worn out by this point.
Various thin test slabs while I was trying to work out why the prints weren't sticking, and also why a small part of the top layer of every print was missing. This came down to needing a "M400" command to flush the buffers before moving the head away.
A couple more calibration objects. The lower one was printed standing up on the small square end. The edge is ragged. I'm not sure why.
A nice gear.
A not nice M3 bolt.
A baby Dalek, printed at 0.4mm. Very ragged, but cute.
This is a design for a fan should to blow air onto the piece as it prints. Neither way round works very well, and I've read on the forums that it hasn't made much difference. You can't see it well here, but on one the corners lifted a lot, and on the other a bit less. I'm printing at 185C, with 195C for the first layer, and in the one where the layer lifted less, with 0.35mm for the first layer. The other layers are at 0.3mm.
Another fan shround. The extruder heat sink is supposed to go in the middle. Unfortunately, it doesn't quite fit. Same temperatures as the previous one, with a 0.4mm first layer. The corners still lifted slightly, but less than the previous ones. This is my longest print so far, taking just over an hour. The X and extruder motors were pretty hot by the end, while the Y and Z ones stayed OK.
The first few cubes. The little Giacometti scribble above them was the first output I managed to get from the extruder after struggling with it for a while. Then solid cubes at various temperatures.
Some thin wall cubes, first with the sample filament, and then with the roll I bought which I think is better quality.
More test cubes, as I experimented with temperatures, infill percentages and layer thicknesses.
Bigger test cubes. The one on the right was one I abandoned. It was using 0.2mm layers and it didn't stick to the bed. My first prints were at 0.4mm, and most of them since then were at 0.3mm. I plan to go back to 0.2mm. I think also the blue painter's tape on the bed was getting worn out by this point.
Various thin test slabs while I was trying to work out why the prints weren't sticking, and also why a small part of the top layer of every print was missing. This came down to needing a "M400" command to flush the buffers before moving the head away.
A couple more calibration objects. The lower one was printed standing up on the small square end. The edge is ragged. I'm not sure why.
A nice gear.
A not nice M3 bolt.
A baby Dalek, printed at 0.4mm. Very ragged, but cute.
This is a design for a fan should to blow air onto the piece as it prints. Neither way round works very well, and I've read on the forums that it hasn't made much difference. You can't see it well here, but on one the corners lifted a lot, and on the other a bit less. I'm printing at 185C, with 195C for the first layer, and in the one where the layer lifted less, with 0.35mm for the first layer. The other layers are at 0.3mm.
Another fan shround. The extruder heat sink is supposed to go in the middle. Unfortunately, it doesn't quite fit. Same temperatures as the previous one, with a 0.4mm first layer. The corners still lifted slightly, but less than the previous ones. This is my longest print so far, taking just over an hour. The X and extruder motors were pretty hot by the end, while the Y and Z ones stayed OK.
Wednesday, June 17, 2015
3D Printer Project, Part 10: Breakthrough
At the end of the last posting, I had just blown up the electronics. A replacement Mega and RAMPS arrived the next day, and I was soon back to where I had been before: everything working except the extruder. The extruder has two holes in the top, and the manual says to use the right hand one. But when I looked, I noticed the nozzle was below the left hand one. I took it apart. The mechanism has a gear fitted to the motors shaft and a grooved wheel to one side of it. The filament is supposed to get squeezed between the two of them. The grooved wheel was on the left.
Now I sent myself down a blind alley. I reassembled the extruder to have the grooved wheel and the nozzle on the right. It still didn't work. After a day of scratching my head, I realized that the block that holds the nozzle (and the pipe that goes down to it, collectively called the hot end) was not symmetrical. The hot end could only possibly work under the left hand hole in the extruder. So I moved it all back, and set up the motor that drives the filament to the reverse direction from how it had been by reversing the cable where it plugs into the RAMPS board. One more fix to replace a blown A4988 stepper driver, and filament started coming through. We're in business.
For the first test print, I picked a solid 1cm cube from thingiverse. Here are four prints of it:
These are in chronological order. The first is at the temperature setting in Folger's config file of 219C. It's way too hot and the cube collapses halfway.The others are at 185C, 190C and 195C and are better, thought the top is still not good. Now some thin wall prints:
Not so good. This was at 195C. Taking it down to 185C:
It's pretty good, though there is some layer separation.
This was using the filament sample supplied with the kit. When it ran out, I switched to a different one (JET filament, also PLA), and the cube came out fine at 185C:
And one more object:
Now I sent myself down a blind alley. I reassembled the extruder to have the grooved wheel and the nozzle on the right. It still didn't work. After a day of scratching my head, I realized that the block that holds the nozzle (and the pipe that goes down to it, collectively called the hot end) was not symmetrical. The hot end could only possibly work under the left hand hole in the extruder. So I moved it all back, and set up the motor that drives the filament to the reverse direction from how it had been by reversing the cable where it plugs into the RAMPS board. One more fix to replace a blown A4988 stepper driver, and filament started coming through. We're in business.
For the first test print, I picked a solid 1cm cube from thingiverse. Here are four prints of it:
These are in chronological order. The first is at the temperature setting in Folger's config file of 219C. It's way too hot and the cube collapses halfway.The others are at 185C, 190C and 195C and are better, thought the top is still not good. Now some thin wall prints:
Not so good. This was at 195C. Taking it down to 185C:
It's pretty good, though there is some layer separation.
This was using the filament sample supplied with the kit. When it ran out, I switched to a different one (JET filament, also PLA), and the cube came out fine at 185C:
And one more object:
Saturday, June 13, 2015
3D Printer Project, Part 9: The Gumption Trap
Robert Pirsig, in Zen and the Art of Motorcycle Maintenance, introduces the notion of a gumption trap, a situation where you set out to solve one problem but before you can get to it, another intractable problem gets in the way, until you are so frustrated that your will, or gumption, gives out. Today was my closest approach to a gumption trap so far. And it ends with a small explosion.
I have been working on the firmware installation and calibration. Most of this went according to the Folger configuration guide. I ran into one problem once I had the firmware installed and was using the manual printer control in Repetier. The Y and Z axes moved fine, but the X axes moved in small jumps or did not move at all. I think this comes down to the end stop being in the maximum X position. Fortunately, there has been a ton of discussion about this on forums.reprap.com, and it seems it can be fixed on software. I tried two configurations, one from "JoeH" and one from "Tenny". See for forum for the original postings. The Tenny configuration worked for me. For the record, here it is (quoting from my own post on the forum):
What this means:
I have been working on the firmware installation and calibration. Most of this went according to the Folger configuration guide. I ran into one problem once I had the firmware installed and was using the manual printer control in Repetier. The Y and Z axes moved fine, but the X axes moved in small jumps or did not move at all. I think this comes down to the end stop being in the maximum X position. Fortunately, there has been a ton of discussion about this on forums.reprap.com, and it seems it can be fixed on software. I tried two configurations, one from "JoeH" and one from "Tenny". See for forum for the original postings. The Tenny configuration worked for me. For the record, here it is (quoting from my own post on the forum):
- physically, my X limit switch is on the right and the Y one is at the back. The X motor connector is reversed compared to the others (red wire to the left). This is exactly as shown in the construction guide.
- in configuration.h, I have #define INVERT_X_DIR false, and #define X_HOME_DIR 1. That's "1" not "-1".
- in pins.h somewhere around line 330, I have #define X_MAX_PIN 2, and #define X_MIN_PIN 3. This means my X limit switch tells the controller it is as it maximum value. (This can also be done by leaving these defines unchanged and moving the connector where you plug in the X connector).
- in Repetier's printer settings (printer shape), I set the X home to MAX.
What this means:
- home X moves the print head all the way to the right.
- home Y moves the bed all the way back so the print head is over the front of the bed.
- moving the head in the positive X direction moves it to the right.
- moving the head in the positive Y direction moves the bed forward, so that the head is further away from the front of the bed.
- this defines the coordinate system as (0,0) meaning the head is over the left front of the bed, and (200,200) is over the right back of the bed. That is, it's the same right handed coordinate system that the wire frame cube in Repetier shows.
Now for the tricky Z calibration. During this, I ran into a problem in the carriage hitting the Z end stop, but the limit switch not triggering. So it kept driving until the nut on which the right hand threaded rod runs was forced out of the printed piece that goes at the right hand end of the carriage. Fixing this required taking the Z motors off, then reseating the nut, the reassembling the printer and recalibrating. And it happened again. I said in part 8 that my limit switches didn't give much play, and this was the problem. When the carriage hit the Z end switch it didn't trigger it as it didn't stick out far enough beyond the mount. The nut was also slightly loose in the printed piece. Again, from my forum postings:
I did two things. First, I was going to try to shim out the nut a little. It was actually almost tight, just not quite enough. So I wrapped two layers of masking tape around it, then popped it back in, and it feels more solid, judged by inserting the threaded rod and pulling gently.
Then I think the other problem may have been to do with the limit switch. I had noticed before that the levers on the limit switches did not look bent back as far as the ones in the construction guide, and also the mount stick out a way beyond the PCB with the switch on it. So I think for the switch to trigger, the bottom of the printed end piece was pressing down on the mount and only tripping the switch when it got to quite a lot of force. So I took a stick plastic bumper (the kind you stick on as a feet on small items), and positioned it so that it trips the switch. This seems to have worked for now. Something is probably not well aligned, as there is a slight squeak when getting near the limit.
So now I reached the final step of the configuration guide, where you run some filament through. I heated up the extruder to about 220C (the PLA packet says 219C), and clicked the button in Repetier to feed some filament. And nothing happened. I couldn't hear the extruder motor turning; it could be the motor, the cable, the stepper driver or the voltage setting on the stepper driver: too low and it will stall, too high and it can also fail to turn (found a reference on the web, which I've now lost again). I turned it all off and switched to a different stepper driver, and in setting the voltage on it, I did something wrong. Maybe my multimeter probe shorted something. There was a short pop (ok, not really an explosion), and nothing has worked since. The Arduino will connect to a PC in isolation, but once everything is assembled again, Repetier won't talk to it. It did seem to partially connect for a while. Vref on the steppers is zero. The most likely thing is that I blew out the regulator in the Arduino board.
So new boards are now on order. I'm frustrated, but somehow also amused. This was meant to be a challenge.
Later: I am pretty sure that at minimum I fried the serial chip on the Mega. I can't program it from the Arduino IDE (disconnected from the rest of the circuitry). I used another Arduino to reinstall its bootloader. While this is going on the "L" LED is solid, as it should be, and then it blinks afterwards, as the bootloader also uploads the Blink sketch. But an attempt to install Blink from the IDE reports a timeout.
Later: I am pretty sure that at minimum I fried the serial chip on the Mega. I can't program it from the Arduino IDE (disconnected from the rest of the circuitry). I used another Arduino to reinstall its bootloader. While this is going on the "L" LED is solid, as it should be, and then it blinks afterwards, as the bootloader also uploads the Blink sketch. But an attempt to install Blink from the IDE reports a timeout.
Friday, June 12, 2015
3D Printer Project, Part 8: Race to the Finish
Now, the last few steps of the construction.
Step 23: end stops, 1 hour. The parts inventory goes wrong here. This step calls for 3 M3x18 bolts and 6 M3 nylock nuts. But there are only two of the first and 5 of the second left. I counted the parts off against the listing on the packaging and Folger sent as many as they said, it's just that their parts listing doesn't have enough. I improvised by taking back one of the three M3x30s that hold the Arduino board on, and the nut that goes with it.
The next issue is that the levers for the limit switches are not bent back as far as the one in the construction guide. As the mounts for the limit switches stick out over the end of the switch PCBs, this means that the can't make enough contact for the switches to activate. I fixed this for Y and Z by angling the PCB compared to the mount. For X, I bent the lever out a bit. I'm not sure it'll stay like this.
Step 24: power cable, 5 mins. Easy.
Step 25: RAMPS wiring, 5 mins. Easy, though the 16 gauge wire was missing from my kit and I used some that I already had.
Step 26: extruder fan wiring, 10 mins. Easy. I used heat shrink tubing for the places where the wires were soldered together.
Step 27-29: check the wiring, filament assist and spool holder; 5 mins.
Step 30: tidy the wiring, 1 hour. I spent a long time on this, as the prospect of having hundreds of little wires near to things that get hot is not appealing. I used spiral wrap, not the stuff that Folger provide, which is quite rigid, but a more flexible one. I followed the principle of bundling together all wires that came from the same place, thus one bundle for the Z motors; one for the extruder motor, heater, thermistor and fan; one for the X motor and X and Z limit switches; one for the Y motor and Y limit switch; and one for the bed heater and thermistor.
Extra step: motor voltages, 10 mins. In the manual for Folgers acrylic Prusa model, they have a step for adjusting the reference voltages to the motors. On the forums, Dan from Folger said use the same settings, so I have X, Z and extruder set to 0.350V and Y to 0.550V. Also I set up a piece of 8x8 glass ($10 from a local glass merchant) on the bed, put blue painter's tape on it, and held it down with two bulldog clips.
A few final pictures:
Next: software and calibration.
Step 23: end stops, 1 hour. The parts inventory goes wrong here. This step calls for 3 M3x18 bolts and 6 M3 nylock nuts. But there are only two of the first and 5 of the second left. I counted the parts off against the listing on the packaging and Folger sent as many as they said, it's just that their parts listing doesn't have enough. I improvised by taking back one of the three M3x30s that hold the Arduino board on, and the nut that goes with it.
The next issue is that the levers for the limit switches are not bent back as far as the one in the construction guide. As the mounts for the limit switches stick out over the end of the switch PCBs, this means that the can't make enough contact for the switches to activate. I fixed this for Y and Z by angling the PCB compared to the mount. For X, I bent the lever out a bit. I'm not sure it'll stay like this.
Step 24: power cable, 5 mins. Easy.
Step 25: RAMPS wiring, 5 mins. Easy, though the 16 gauge wire was missing from my kit and I used some that I already had.
Step 26: extruder fan wiring, 10 mins. Easy. I used heat shrink tubing for the places where the wires were soldered together.
Step 27-29: check the wiring, filament assist and spool holder; 5 mins.
Step 30: tidy the wiring, 1 hour. I spent a long time on this, as the prospect of having hundreds of little wires near to things that get hot is not appealing. I used spiral wrap, not the stuff that Folger provide, which is quite rigid, but a more flexible one. I followed the principle of bundling together all wires that came from the same place, thus one bundle for the Z motors; one for the extruder motor, heater, thermistor and fan; one for the X motor and X and Z limit switches; one for the Y motor and Y limit switch; and one for the bed heater and thermistor.
Extra step: motor voltages, 10 mins. In the manual for Folgers acrylic Prusa model, they have a step for adjusting the reference voltages to the motors. On the forums, Dan from Folger said use the same settings, so I have X, Z and extruder set to 0.350V and Y to 0.550V. Also I set up a piece of 8x8 glass ($10 from a local glass merchant) on the bed, put blue painter's tape on it, and held it down with two bulldog clips.
A few final pictures:
Next: software and calibration.
Wednesday, June 10, 2015
3D Printer Project, Part 7: Going Electric
As mentioned at the end of the previous part, I ordered a replacement RAMPS board from Amazon (this one). It's well made with clean and accurate soldering. One particularly nice touch is that the pins for the end stop connectors are color coded corresponding to the cable colors. This is important, as the Folger instructions note that plugging these connectors in the wrong way round can destroy the Arduino.
The original, horrible RAMPS board:
To be fair, Dan at Folger offered to send me a replacement RAMPS board, but by then I already had the one from Amazon. If I blow it up, maybe I'll take up his offer.
I also made two changes to the build so far. I changed the Y motor so that its connector is horizontal rather than vertical, to avoid the cable colliding with the heated bed in one of the steps listed below. And after at first thinking that the acrylic mount was misdrilled, I realized that I had it on wrong. You need to compare the holes on it to the ramps board and get the direction right from that.
Now back to step 19: mounting the electronics; about 35 mins. I made one change here, by attaching a spare heatsink to Q3 on the RAMPS board. This is the driver for the heated bed, and I've heard that it helps avoid it overheating. Switching to a better MOSFET is another option.
Step 20: attach motor wires; 10 mins. You can plug the wires into the motors the wrong way round. For the connections to the board, the X motor really is plugged in back to front compared to the others. The forums have a long discussion on this. Rather than follow what it says in the manual and attach the wires to all the motors first, I did them one by one: attach the wires to a motor, then the board, then the next motors, and so on. There's less chance of picking the wrong motor. I also spent an extra 10 minutes putting wrap round the wires to tidy them up. I'll redo this at the end, but for now it avoids an OMG spaghetti situation.
Step 21: wire the heated bed; 10 mins. One tip for this stage is that if the heated bed wires won't stay in the connector, just double the exposed end over, or blob a little solder on it. You can gently tug on the wires to make sure they are connected well, and also put a meter across the screw terminals. For both the heated bed and the extruder, you should see a resistance of a few (2-4) ohms.
Step 22: thermistor wires; 10 mins. Fairly simple. I soldered the termistor wires to the pins for the connectors rather than crimping them.
I have also done steps 23 and 24, and will write them up in the next episode.
The original, horrible RAMPS board:
To be fair, Dan at Folger offered to send me a replacement RAMPS board, but by then I already had the one from Amazon. If I blow it up, maybe I'll take up his offer.
I also made two changes to the build so far. I changed the Y motor so that its connector is horizontal rather than vertical, to avoid the cable colliding with the heated bed in one of the steps listed below. And after at first thinking that the acrylic mount was misdrilled, I realized that I had it on wrong. You need to compare the holes on it to the ramps board and get the direction right from that.
Now back to step 19: mounting the electronics; about 35 mins. I made one change here, by attaching a spare heatsink to Q3 on the RAMPS board. This is the driver for the heated bed, and I've heard that it helps avoid it overheating. Switching to a better MOSFET is another option.
Step 20: attach motor wires; 10 mins. You can plug the wires into the motors the wrong way round. For the connections to the board, the X motor really is plugged in back to front compared to the others. The forums have a long discussion on this. Rather than follow what it says in the manual and attach the wires to all the motors first, I did them one by one: attach the wires to a motor, then the board, then the next motors, and so on. There's less chance of picking the wrong motor. I also spent an extra 10 minutes putting wrap round the wires to tidy them up. I'll redo this at the end, but for now it avoids an OMG spaghetti situation.
Step 21: wire the heated bed; 10 mins. One tip for this stage is that if the heated bed wires won't stay in the connector, just double the exposed end over, or blob a little solder on it. You can gently tug on the wires to make sure they are connected well, and also put a meter across the screw terminals. For both the heated bed and the extruder, you should see a resistance of a few (2-4) ohms.
Step 22: thermistor wires; 10 mins. Fairly simple. I soldered the termistor wires to the pins for the connectors rather than crimping them.
I have also done steps 23 and 24, and will write them up in the next episode.
Saturday, June 06, 2015
3D Printer Project, Part 6: Joining The Dots
First, I need to note a duh moment regarding step 10. I damaged one of the linear bearings in this step, but decided to proceed anyway, as it still seemed to move OK on the chrome rod. I forgot that Folger include two spare bearings in the kit. By the time I realized this, I had completed several more steps and didn't want to undo them (including taking the end pieces off the Z carriage). Maybe I'll fix it later.
Step 12: attach the chrome and threaded rods; 5 mins. Easy.
Step 13: front pulley; should have been 10 mins. I forgot the M3 washers at first and had to redo this. The parts list includes two M4x8mm pan head bolts for this, but they aren't needed as they were already attached earlier.
Step 14: attaching the Y belt; about 20 mins. Most of the work in this was trying to get the belt even across the Y motor, the pulley and the Y belt carriage. The position of the last of these in the X direction is fixed, so I took a measurement from it to the side extrusions (170mm from the end of the belt to the inside edge of the extrusion). Then I adjusted the position of the motor and pulley to make this the same. This puts the back of the motors right up against one of the chrome rods, and puts the pulley off center. Both of these seemed odd, but are consistent with the pictures in the construction guide.
Step 15: attach the couplings and SHF8UU; 10 mins. Easy. A tiny error in the guide: it says the M4x14mm bolts are black, which they aren't.
Step 16: attach the X/Z assembly; about 50 mins. To raise the motors I had to completely remove one of the screws holding each motor mount to the uprights. I found it easiest to lay the whole printer on its back while I worked on this step. It went together fairly smoothly on one side, but the other one didn't quite line up. I found that loosening the screw on one of the L pieces underneath the top bar meant I could move the upright in by about 1mm, and it then all fitted together nicely. Doing this also made the motor shaft and the threaded rods looked straight (coaxial) with respect to each other. You probably can have it slightly unaligned and be OK: the point of the helical couplings is to allow this. After tightening everything up, I manually turned the couplings to move the carriage all the way up and down the X axis, making a point of turning both couplings at the same time to keep it level. This proved to me that the alignment was good enough. Step 16 is the trickiest step since step 10, and it left me with a sense of satisfaction. It is just about the end of the mechanical construction, and it's really all come together.
Steps 17 and 18: power supply and acrylic mount; 10 mins. Easy.
I started on step 19, but was pretty unhappy with the quality of the RAMPS board. Here is what I wrote on the forum:
The quality of the RAMPS board is really horrible. Firstly, it was badly packaged, so that the power transistors and the two large capacitors were bent over. The pins on several of the connectors were bent out of shape. I've straightened them up, but it means extra care when attaching the other parts to it.
Worse that this is the quality of the soldering. There are two diodes which are not flat to the board. They are floating in mid air about 15 mm above the board. Then the really nasty bit. Turning the board over the solder side shows:
- many solder bridges. I picked off at least 10 with a scalpel plus as many other random blobs of solder in places they should not be.
- the board is covered with the resin (flux) from the solder. This tends to degrade the board over time. Back in the days when I was an electronics engineer building embedded systems, we would not have allowed something like this out the door. We would have cleaned it with Arklone first.
- many of the solder joints are dull and blobby, the hallmarks of a dry joint. I will go over those with a soldering iron before using the board.
- a few joints which were not soldered at all.
I decided to order a new board on next day delivery from Amazon, as I just don't trust the one that came with the kit to work without risk to the other components. The last thing I want is for a solder bridge to send 24V onto the Arduino board.
The other components look OK, apart from some damage to the Arduino board, again due to poor packaging. Two of the header sockets were bent over and the plastic shroud was not pushed down on the pins. This was easy to fix.
Step 12: attach the chrome and threaded rods; 5 mins. Easy.
Step 13: front pulley; should have been 10 mins. I forgot the M3 washers at first and had to redo this. The parts list includes two M4x8mm pan head bolts for this, but they aren't needed as they were already attached earlier.
Step 14: attaching the Y belt; about 20 mins. Most of the work in this was trying to get the belt even across the Y motor, the pulley and the Y belt carriage. The position of the last of these in the X direction is fixed, so I took a measurement from it to the side extrusions (170mm from the end of the belt to the inside edge of the extrusion). Then I adjusted the position of the motor and pulley to make this the same. This puts the back of the motors right up against one of the chrome rods, and puts the pulley off center. Both of these seemed odd, but are consistent with the pictures in the construction guide.
Step 15: attach the couplings and SHF8UU; 10 mins. Easy. A tiny error in the guide: it says the M4x14mm bolts are black, which they aren't.
Step 16: attach the X/Z assembly; about 50 mins. To raise the motors I had to completely remove one of the screws holding each motor mount to the uprights. I found it easiest to lay the whole printer on its back while I worked on this step. It went together fairly smoothly on one side, but the other one didn't quite line up. I found that loosening the screw on one of the L pieces underneath the top bar meant I could move the upright in by about 1mm, and it then all fitted together nicely. Doing this also made the motor shaft and the threaded rods looked straight (coaxial) with respect to each other. You probably can have it slightly unaligned and be OK: the point of the helical couplings is to allow this. After tightening everything up, I manually turned the couplings to move the carriage all the way up and down the X axis, making a point of turning both couplings at the same time to keep it level. This proved to me that the alignment was good enough. Step 16 is the trickiest step since step 10, and it left me with a sense of satisfaction. It is just about the end of the mechanical construction, and it's really all come together.
Steps 17 and 18: power supply and acrylic mount; 10 mins. Easy.
I started on step 19, but was pretty unhappy with the quality of the RAMPS board. Here is what I wrote on the forum:
The quality of the RAMPS board is really horrible. Firstly, it was badly packaged, so that the power transistors and the two large capacitors were bent over. The pins on several of the connectors were bent out of shape. I've straightened them up, but it means extra care when attaching the other parts to it.
Worse that this is the quality of the soldering. There are two diodes which are not flat to the board. They are floating in mid air about 15 mm above the board. Then the really nasty bit. Turning the board over the solder side shows:
- many solder bridges. I picked off at least 10 with a scalpel plus as many other random blobs of solder in places they should not be.
- the board is covered with the resin (flux) from the solder. This tends to degrade the board over time. Back in the days when I was an electronics engineer building embedded systems, we would not have allowed something like this out the door. We would have cleaned it with Arklone first.
- many of the solder joints are dull and blobby, the hallmarks of a dry joint. I will go over those with a soldering iron before using the board.
- a few joints which were not soldered at all.
I decided to order a new board on next day delivery from Amazon, as I just don't trust the one that came with the kit to work without risk to the other components. The last thing I want is for a solder bridge to send 24V onto the Arduino board.
The other components look OK, apart from some damage to the Arduino board, again due to poor packaging. Two of the header sockets were bent over and the plastic shroud was not pushed down on the pins. This was easy to fix.
Wednesday, June 03, 2015
3D Printer Project, Part 5: Over Troubled Waters
Step 9: attach the motors; 20 mins. This was easy. I noticed the Y axis motor was labelled 5.3 kg/cm, while the instructions say 4.8. Maybe this will have implications when it comes to setting the driver voltage.
Step 10: assemble Z carriage; about 1 hour and 10 mins. Step 10 was by far the hardest stage so far, both in following the steps and more particularly in the physical force that was needed. There is one error in the parts list: it says 4 M3 nylock nuts, when only one is needed. Getting the bearings into the the end pieces took quite a lot of force. As recommended, I pushed them down hard on a table. The second bearing was easier than the first. On the forums, one person commented that the bolts for the motors were too long. I found there was a tiny amount of play after attaching it to the right side piece, but not enough that I am worrying about it. For fitting the F623ZZ bearings to the left side piece, it's important not to overtighten the bolt or the piece starts to distort.
Then I got to the stage where things have, for the first time, gone wrong. You have to fit three bearings to the extruder carriage. Two are colinear, and one of them would not go on completely flat, even with a lot of force and when I gently squeezed it in a vice. When I was checking if they were close enough by running a chrome rod through the bearings, I knocked a shower of tiny metal balls out of one bearing. Surprisingly, the carriage ran OK on the chrome rods, as well as the Y bed did. I may come back to this later and replace the damaged bearing. Maybe a printed one like this would do (and this might make the Y axis smoother).
Next, after fitting the end pieces to the chrome rods, you have to squeeze it so they are 300 mm apart. This takes a ton of force, and I got it close (303 mm) and then couldn't get it any further. I eventually rested on end on the floor and pushed down with a lot of force. It jumped down to about 295mm, and I was then able to expand it back out to 300mm.
Fitting the belts was OK. After the initial fitting, the carriage movement was very stiff. I slacked off the grub screws on the 20T pulley, then did them back up again, and things were good after that.
Some pictures for this step. From top to bottom, here are the right end, carriage and left end in case you have difficulty telling which is which:
And a few pictures of the assembled components:
Step 11: attach the extruder; about 20 mins. Almost easy: the main thing is that getting both bolts into the motor was a little hard. I think the spacing of the holes in the extruder carriage was a little short.
Step 10: assemble Z carriage; about 1 hour and 10 mins. Step 10 was by far the hardest stage so far, both in following the steps and more particularly in the physical force that was needed. There is one error in the parts list: it says 4 M3 nylock nuts, when only one is needed. Getting the bearings into the the end pieces took quite a lot of force. As recommended, I pushed them down hard on a table. The second bearing was easier than the first. On the forums, one person commented that the bolts for the motors were too long. I found there was a tiny amount of play after attaching it to the right side piece, but not enough that I am worrying about it. For fitting the F623ZZ bearings to the left side piece, it's important not to overtighten the bolt or the piece starts to distort.
Then I got to the stage where things have, for the first time, gone wrong. You have to fit three bearings to the extruder carriage. Two are colinear, and one of them would not go on completely flat, even with a lot of force and when I gently squeezed it in a vice. When I was checking if they were close enough by running a chrome rod through the bearings, I knocked a shower of tiny metal balls out of one bearing. Surprisingly, the carriage ran OK on the chrome rods, as well as the Y bed did. I may come back to this later and replace the damaged bearing. Maybe a printed one like this would do (and this might make the Y axis smoother).
Next, after fitting the end pieces to the chrome rods, you have to squeeze it so they are 300 mm apart. This takes a ton of force, and I got it close (303 mm) and then couldn't get it any further. I eventually rested on end on the floor and pushed down with a lot of force. It jumped down to about 295mm, and I was then able to expand it back out to 300mm.
Fitting the belts was OK. After the initial fitting, the carriage movement was very stiff. I slacked off the grub screws on the 20T pulley, then did them back up again, and things were good after that.
Some pictures for this step. From top to bottom, here are the right end, carriage and left end in case you have difficulty telling which is which:
And a few pictures of the assembled components:
Step 11: attach the extruder; about 20 mins. Almost easy: the main thing is that getting both bolts into the motor was a little hard. I think the spacing of the holes in the extruder carriage was a little short.
Monday, June 01, 2015
3D Printer Project, Part 4: Hot
Step 7: heated bed; 15 minutes. The instructions lack a couple of details. I found this video helpful. A couple of notes:
- solder to the smooth side of the heated bed. The contacts should read 3, 2, 1 from left to right.
- strip the wires back a lot further than it looks like from the instructions. See the video linked above.
- the thermistor was in the same bag as the heated bed. I missed it at first.
- you want to bend the tip of the thermistor to it stick into the hole, but you don't want it to stick out of the hole on the other side. That's the surface you'll be printing on, either directly or with blue tape or a glass pane on top of it. Unlike the video, I didn't glue it in place, I just used kapton tape.
Step 8: attaching the heated bed; 5 minutes. Simple, no problems. Just make sure that the wires are facing down and at the back of the printer.
Subscribe to:
Posts (Atom)