PrintrWings

In the Printrbot – Heated Bed post, I mentioned the covers to go over the wings of the heated bed.  I asked for comments to the blog posts, and today a request for the wings design files was posted in the comments of that post. I am therefore happy to say they are now available for download at http://www.thingiverse.com/thing:849772

I have been using the printer with the wing covers quite extensively for about 3 weeks, and they work just as intended as far as I can tell.  Note that the photo shows a small rectangular hole on the left which is not in the uploaded model. The large rectangular hole is to allow access to the X belt tensioner. The smaller rectangular hole was not required and therefore removed in the model.

The covers are designed as solid parts, but printed with “hollow” infill and 0.8 mm skin. The parts should be hollow since air is a good heat insulator. With the insulation I can reach 60C bed temperature in 4-5 minutes and 100C in 19-20 minutes.

About comments

Almost every day I check for comments to the posts, but find that all I get is spam posts in the spam filter :-) Does that mean no-one reads this blog? Perhaps, but the visitor count is increasing …

If you happen to visit and find something of interest, you are now encouraged to make a comment, if you prefer you can do it anonymously. With comment feedback you may influence the contents of future posts, otherwise I get 100% of the votes and that’s not fair :-)

You can for example begin with a simple hello below this post!

A wheel centre cap

In the post about printing 3d gears, we saw that it was possible to print replacement gears for car parts. I have now received a report that the printed gear works after several weeks of in-car testing, so let us count that as a success. In fact, it was so successful that I got a request to print another part that was missing; a press-fit wheel centre cap, original as below.

image

The owner also wanted the logo on the replacement part. When you don’t pay, there is no limit to what you can ask for :-) Anyway, I thought we might give it a try.

First step was simply to place the original on the flatbed scanner and make an image of the logo. I could have found the logo on the web, but that is cheating. Instead the scanned image was imported into Photoshop and turned into a monochrome image and blurred/clipped and saved to a PNG file.

image

Then, OpenSCAD  was fired up, and the following script was edited

image

In the above code, the d1 to d4 parameters define measured diameters (using a caliper) on the original. d1 is the outermost diameter. Similarly h1 to h4 define the heights measured from the bottom when logo is pointing down.

The “logo()” module imports the scanned image and turns it into a 3d object. A slice of that is created by intersecting it with a “cube” (actually a cuboid). The intersection is then scaled, rotated and translated to fit the size and orientation of the printed object.

The “bottom()” module is simply a short cylinder minus the logo at bottom and a smaller cylinder on top, to create a “rim” on the bottom part.

The “teeth()” module describes the 2d profile of the teeth that grips the wheel and then performs a rotational extrude (360 degrees). This is then intersected with the result of the “cross()” module which simply defines a cross from 2 cuboids. The result is 4 teeth, separated by 90 degrees.

All in all, less than 60 lines of code. We then get this OpenSCAD model to export as an STL file.

image

There are many ways to process an STL file, but generally it needs to be run through a “slicer” program to generate the G-code that a printer can understand. There are many very good slicer programs, including slic3r and Cura, but recently I have been using KISSlicer, as it has many nice customization options.

image

After completing the slicing, we have the G-code to send to the printer. I am using OctoPrint running on a wireless Raspberry Pi to control the printer, so the G-code is sent to OctoPrint via the web browser on the PC. OctoPrint can also display the temperature of the hot end and the heated bed. All we have to do is check that the printer calibration is ok and commit the print:

image

When finished, we have something that closely resembles the OpenSCAD model.

image

When we turn the print around, we also see something that resembles the logo. It is not perfect, but it is there. One idea is to fill the void with some dark filler and sand the top surface a bit. Then it might pass :-)

image

A challenge with a part like this is that the printed part is relatively brittle compared to the original, so it is hoped that the teeth simply do not break off. This is why the printed teeth are made wider than in the original, where it is only the smaller teeth that grip the wheel.

Printrbot – heated bed

The break in posts on 3d printing does not indicate that nothing has happened in the time passed. On the contrary, I have been too busy exploring various smaller problems and ways to improve.   The most important improvement is the installation of the “heated bed” upgrade that has been waiting since I got the printer. I left it alone for a while because I wanted to get some experience with printing on the unheated standard bed. I think now it was a good idea, because I can see the benefits in better perspective after installing the upgrade.

So what exactly is the “heated bed”? It means that the print surface is heated by a heating element so that the plastic parts do not warp as easily (or at all). With the unheated bed there will be temperature gradients in the parts causing warping, especially when the print surface is relatively large, i.e. longer than just a couple of centimetres.  With the heated bed the temperature is more uniform through the part and you can then create more geometrically accurate parts. Since I am mostly interested in mechanical parts, it is important.

image

The upgrade kit contained a machined aluminium print surface (bottom right). Being machined, it also provides a flatter surface than the standard bed, which can be slightly non-flat. The other main parts are the 2 black aluminium “wings” that are needed for the X belt after removing the standard non-heated bed. At top left is the heater element with 12V wires and next to it is a sheet of heat resistant Kapton tape which will be fastened to the aluminium print surface. In the bag is a thermistor that will be used for monitoring and controlling the bed temperature. Both the thermistor and the heat element power wires connects to the board under the printer. The bag also contains delrin parts to help insulate the “wings” from the hot print surface.

image

On the underside of the machined print surface, there are grooves that must be electrically insulated using Kapton tape. The biggest groove will contain the soldering points on the heater element and the smaller groove is for the thermistor.  After placing the thermistor in its place, the heater element is put on top (i.e.  under it, since the print surface is upside down still). The black & white wires are for the thermistor.

image

Over (i.e. under) the heater plate comes a reflective sheet that is simply screwed into the corners. I added some Kapton tape pieces to secure it. I am not sure this is sheet very effective, heat is lost not only via radiation. It would make sense to let the sheet cover the whole plate also. But this is according to the kit.

image

What remains after this is to turn the heated bed around and connect the X-belt to the wings and then connect the wires to the board. But I also added an update of my own. Under the 4 corners of the heated bed I put a flat and a split washer so that it is possible to manually adjust the “bed level”, i.e. manually make the print surface as perpendicular as possible to the print Z-axis of the printer.  The goal is not to replace the Z probe which accounts for unlevelled beds automatically, but  to ensure the adjustments are very small.

Once installed, we have a new and shiny printer! Notice also the Raspberry Pi  Model B in the background, that is the other important upgrades that the recent weeks have seen.  Instead of connecting the printer to the main computer, the Raspberry PI is committed as a wireless printer server, running OctoPrint . OctoPrint provides a web interface, so you can access the printer via any browser, anywhere. This is now the standard mode for how I  operate the printer, it is very convenient.

image

Also in the background is the new power supply serving the printer. The standard laptop-style power supply that came with the printer cannot be used with the heated bed, you need a power supply with more “grunt” as the heated bed draws about 7A  at 12V.  The power supply I use is rated at 10A and seems to be working fine for the job.

Below is how OctoPrint reports the temperatures of the bed and the hotend. The bed can reach 100C in about 14-15 minutes from a starting point of ~20C which I find adequate.  100C is required for ABS, but for PLA 60C is sufficient, it achieved in about 5 minutes.

image

The temperature curves above are not really reflecting the standard heated bed upgrade shown above. It reflects an additional modification. I noticed that the black “wings” of the heated bed got quite warm, they acted as heat sinks and radiators, even with the delrin pieces in the kit that were supposed to insulate the “wings” from the machined print plate.  It probably has some effect, but a lot of heat is lost that way still.  The curve above shows the effect after installing the “blankets” described below.

It seems like a good idea to put a “blanket” over the wings to reduce the heat loss. I did that by designing hollow covers to go over the wings. They are designed as solid parts, but printed with “hollow” infill and 0.8 mm skin. Below is how it looked during early print, there are for parts since each of the two wing covers are split,  you cannot print a part covering the whole print surface on the same print surface…

image

After completion, you get this nice looking view, four parts complete with holes for screws and belt tensioners.

image

These parts simply “snap” onto the wings, the heat loss is now much reduced.

image

I am very happy with these changes. The power supply is working, the Raspberry PI with OctoPrint is the perfect way to operate the printer, it works flawlessly even with the older Raspberry PI model B. It also frees up the main computer during long prints.  The heated bed itself works fine, I can now print large parts without warping and I am also ready to consider printing ABS.

A nut-case

I discovered a very nice OpenSCAD library called “Nut Job” http://www.thingiverse.com/thing:193647  that was quite inspiring, it looked like a nice test for the printer.  I first tried a 8mm nut and a bolt, and the result was just great on first attempt:

image

I had to try some more, model on the left, print result on the right…

image

A quick check confirmed they all fit together and will work fine for a lot of purposes.  Even the countersunk screw could be used with a hex spanner. It was tight, but that is probably a good idea anyway. What didn’t work was threading a metal nut onto the printed screws, the thread pitch was different. It can be adjusted in the ‘Nut Job’ library, so perhaps the print can be done compatible with metal screws/nuts.  However, that is probably not usually required as the nuts and bolts are printed together.

image

This could be used in many ways of course.  As shown or as embedded threads in prints so that parts can be screwed together.

Printrbot – first week

This post is just a quick status after assembling and using the Printrbot Simple Metal Kit for about a week. Considering that I had never seen a 3D printer (except on YouTube) before the kit arrived, I think it has been a success. After just over 2 evenings of assembly, I was printing on the 3rd day. Most of the prints have been successful too.

Below is how things look now.  Todays additions are two elliptic shaped spool adapters that are now held together on the spool using 2 bolts, plus two rings that keep everything centred.  Previously I also printed 2 end-caps that press-fits onto the 32mm PVC pipe. The spool holder now works even better than I had hoped, there is virtually no friction, which is very important for the extruder to produce a constant flow of plastic.

I have seen several other spool holder designs on http://www.thingiverse.com/ , but this one may be among the more compact yet sturdy ones. It can handle spools up to 90mm in width and 110mm radius.  There are no stability issues as the sideway movements of the print bed carries relatively little mass.  I could possibly clean up the design files and upload to thingiverse, depending on interest. Give a shout in the comments below if you would like to try it.

image

The extruder tensioner arm extender and the fan shroud have been mentioned before. Both parts were downloaded from thingiverse, and they work very well.

The 4 feet the printer rests on are of my own design. They are supposed to function as elastic springs/dampers smoothing the printer vibrations, and at the same time increase the support area under the printer. Under the feet is a sheet of rubber anti-slip mat. The small contact area of the feet in combination with the rubber sheet creates very high friction, the printer does not move at all during prints.

image

One thing I learned was that keeping the print bed clean is very important. After a few days, it had started to gather some dust, and the prints began to warp and lose adhesion. As a test I vacuum cleaned everything, then cleaned the bed with some isopropyl alcohol before printing the 2 centring rings on the spool holder. The adhesion was suddenly so good that the blue painters tape would not let go, and followed the parts off the bed! So keep things clean is essential.

Another issue appears to be draughts from windows etc. This tends to cause issues with warping or bed adhesion in general, due to thermal stress. There is probably a good reason why some 3D printers come in closed boxes, keeping constant temperature is one of them. If one does not build a box around the printer, it is anyway an idea to place the printer somewhere where the temperature is reasonably constant, and preferably not too cold.

Speaking of temperature, a heated bed is in the pipeline. I have the parts, but I will use the printer in the current configuration a bit more, that way I can appreciate the upgrade when completed :-)

Printing 3d gears

The 3D printer is up and running, although I still have some upgrades waiting in the pipeline. Rather than just printing parts for the printer itself, it is interesting to see if it can be put to other useful work. When a friend heard I was getting a 3D printer, he asked me if I could fix a broken part in his car.  The part wasn’t working because a plastic double spur gear had been stripped of its inner teeth:

image

Could I fix that with the printer? The diameter of the large gear was only 31 mm so quite small!  The first thing I did was count the teeth of both the rings, 37 for the large gear and 12 for the little one.  I also estimated the “circular pitch” of each gear by measuring with a calliper the diameter on top and bottom of the teeth. The gear heights were also measured.

So now we had some numbers, but creating a duplicate of the gear means we need a computer model representing it.  Luckily, there is a great open source program called OpenSCAD and an open source library called MCAD that contains functions for creating 3D involute gears with OpenSCAD. So I used that :

image

That looks very nice, but is it possible to print it? I tried using 2 different PLA filaments. First, the white top right in the image below, using the familiar eSUN filament. It looks very nice, but I suspect it isn’t quite hard enough for this purpose. Also, it is difficult to get the teeth properly separated.

Therefore, I gave the Printrbot PLA filament a chance (top left below). The calibration boxes I had printed with it seemed quite stiff and hard, so I tried to print the gear with it.  The gear that came out was quite promising … all I had to do was manually clean the bore with a 4mm drill bit and very carefully brush up the teeth clearances with a hack saw blade. It gives the impression of being harder than the original gear, so maybe it works.  Possibly, ABS would be even better, but I have not come to that stage yet.

image

The printed gear fits perfectly where the old gear used to be, so maybe it works as a replacement. Now the car owner has 2 spare gears to try out.

These gears were very small, but the test proves that it is certainly possible to print gears of this size or larger. However, it is probably wise to use a slow print speed (I used 20 mm/sec) and possibly even a smaller nozzle than the stock 0.4mm that comes with the Ubis hot end on the Printrbot.

The printed gear from an oblique angle:

image

Printrbot – day5

This is another entry in the “Printrbot – dayN” series, documenting the build and initial use of the Printrbot Simple Metal Kit. In this post we will add some more notes on experiences so far, plus show some videos of the printer in action.

One of the first things I noticed after completing the spool holder print, was that the vertical bar hole diameter tolerance was too liberal, making the holder wobbly and unsafe sideways, especially with a 1kg spool on top.  But there is an easy fix, simply print some narrow tolerance collars to fit on the bars, with 2 M3 screw holes and then drill corresponding holes in the spool holder.  Problem solved!

image

image

Second issue was to do something about the operation of the extruder tensioner arm. When you change filament, you press down the tensioner arm to allow for the filament to be inserted. But since the arm is short and the pressure area is small with a screw head in the way, you get sore fingers.  I therefore decided to download and print a part to solve this problem: http://www.thingiverse.com/thing:446480

When installing this printed part, you have to remove the tensioner arm by unscrewing the screw indicated in the image below. The screw is threaded into one of the 4 holes of the extruder stepper motor seen behind the extruder assembly. However, in my case, the screw was very short and hanging on to only a few threads in the motor, and I managed to strip those threads in the process. Maybe I used the wrong screw during assembly or perhaps this is a design issue, I have not double checked the build instructions yet. However, as I had same dimension M-screws in my drawer, I was able to find a longer screw plus suitable shims on the outside and solve the problem that way.  Problem solved again.

image

Another observation was that the fan shroud I had printed originally seemed to be a poor design wrt. airflow.  It seemed to blow more behind the fan than at the extruded plastic! The reason seemed to be a rather steep narrowing of the cone and a small hole at the bottom, creating an internal pressure causing blow-back. Clearly, this part was a candidate for an improvement.  I contemplated designing my own fan shroud, but then I found a part on thingiverse that looked rather promising wrt. airflow, plus it matched the way I had mounted the fan: http://www.thingiverse.com/thing:725248

Both of these parts from thingiverse are shown installed below.  Also, If you compare the image of the hot end with previous images in this series, you will notice that the two horizontal “rings” on the hot end are closer to the extruder assembly than before, after I managed to install the hot end properly. More problems solved :-)

image

Both of the printed parts are working fine, the back-blow from the fan is much reduced, so most likely there is more and better airflow around the hot end nozzle to cool the plastic.  Also, the new fan shroud misses the black metal base with a tiny margin when the printer is in the home position (back/left/bottom in the image), so all is good.

What follows are videos from the new fan shroud print, with the old fan shroud still installed. The videos are made with an old Phillips webcam, so VGA resolution only. The video speed is real time, the printer really moves this fast!

First the “critical” start sequence where the metal/orange Z probe detects the bed level in 3 points, allowing for automatic compensation of slightly unlevelled beds. In this phase, the challenge is to get the first print layer to stick to the bed, that is what the blue painters tape on the bed is for.

Printrbot Simple Metal Z probe start sequence

 

The second video shows the print as the shape is getting more complex.  The dent in the front is intentional to avoid collision with the printer base when in home position.

Printrbot printing a complex shape

 

The final video shows the final phase of the print, and homing of the hot end.

Printrbot finishing up the complex shape

 

After this print, some minor clean up was needed, there were some plastic stringers inside that had to be removed, but that was trivial to do.  The print was not 100% perfect, something I attribute to the old fan shroud, but the new part was certainly usable.  I have printed a couple of end caps for the 32mm PVC tube on the spool holder and they look very good, so the new fan shroud appears to be doing its job.

Printrbot – day4

In the previous post, Printrbot – day3, the printer assembly was completed and the Z probe was adjusted mechanically and calibrated so that the initial print bed level would be correct down to 0.1mm precision.  This was done using repeated calibration prints of a 3mm box and observing the result.  Also a fan shroud was printed successfully.

After this success, I noticed that some of the online images of the same printer seemed to have a shorter hot ends than my printer. Since I had a standard hot end, this meant that even though it worked, I had probably not inserted the hot end into the extruder assembly as far as intended.  After some deliberation, I found the reason: The hot end must be inserted into the extruder before inserting the top right screw indicated with red below. In that image, it is done in the wrong order, resulting in the hot end only partially inserted.

image

The fix was easy, simply remove the screw, insert the hot end all the way and insert the screw again.  Obviously, this implies that I had to mechanically re-adjust the Z-probe to fit the new location of the hot end nozzle, and then perform a new round of calibration prints.  But after having done it once, the second round was much easier.

The time had now come for something slightly more challenging. I needed a filament spool holder, so why not design and print one to sit on top of the vertical bars? This is not a new idea with this printer, and an alternative is to download such a solution from thingiverse, but it is more interesting to design your own, I thought. I used the open source program OpenSCAD and designed the following slightly futuristic looking spool holder.

image

The holes under it are just large enough to match the 12mm vertical bars of the printer, with some slack. The top is designed to take a 32mm PVC tube that I already had. The spool holder is designed to allow a reel radius of up to 110mm and a reel width of up to 80mm. It is also worth mentioning that the design is intended to be printable without support material, since there are no low angle overhangs to speak of. The top of the bar holes can be covered by the printer automatically by means of “bridging”, the printer drags strings of plastic across the hole and the string is instantly cooled.

Would it work to print this design? It was estimated by Cura to take 5 hours with 15% infill. To attempt this as your second print is perhaps foolish, but who cares? All I had to lose was some time and pride, and there was no-one around to observe it happen :-)

Thus far I had used only the sample PLA filament provided with the printer, and I doubted it would be enough to complete the long print. I therefore opened the PLA filament I had bough from filament.no . This turned out to be made by eSUN in China, and as far as I can tell it is very good quality indeed. The prints look much better than the sample filament prints.

So I set out to do this print, but when I got as far as the image below indicates, the print just stopped, and the connection to the printer was lost. I rebooted Windows 7 and tried again, but the same thing happened once more. This was rather frustrating, the suspicion is on the Windows serial port over USB driver. Could it be that the stepper motors generate electronic noise that the Windows driver cannot manage?

image

Since I also have a Linux Kubuntu desktop, I decided to try Cura on that machine instead and ditch Windows for controlling the printer. Ultimately, the idea is to use OctoPrint on a Raspberry PI, so running Cura under Linux is anyway closer to that goal.

Printing from Linux turned out to be a very useful idea. Even though the software (Cura) was exactly the same as on Windows, and with the same USB cable (now with an extension), no more connection dropouts were observed. The print proceeded uninterrupted for the next 5 hours. Half of the base has been printed in the image below. The 15% infill can be seen as crossed lines inside the print volume.

image

image

In the image below, the bar holes have been bridged and closed. The arms have started to “grow”.

image

The fancy bottom arm supports are complete and the arms have gained some more height.

image

Print nearly complete. Everything went beyond expectations, the performance was really impressive. However, the keen observer will notice 3 horizontal lines in the spool holder arms. These lines are not in the design, and each represents a “dislocation”, a small shift in negative X direction. Some minor “clunks” when the shifts occurred could be heard. I think it has to do with slippage in the X-axis, either in the X-axis pulley, the X-axis GT2 belt or the metal clamp that holds the X-axis linear bearings down. After the print, I removed the print-bed and applied some Loctite to the pulley set screws and re-tightened them. I also tightened the GT2 belt and the 4 clamp screws. They were somewhat loose, so perhaps they were the cause of the problem.

image

In spite of this issue, the printout was a complete success! I now have a spool holder and it just needed a slight trim with a sharp knife to fit on the vertical bars. A quick test with the 32mm PVC pipe and the eSUN filament spool is a good demonstration.

image

The spool holder is adequately stiff, but the connection to the bar is slightly wobbly.  I will therefore print some  extensions to fit around the top of the bars and glue them to the spool holder, to make the connection more rigid. Then trim the PVC pipe to the required length and print end caps for it, plus an adapter to centre the spool on the  PVC pipe. Then it will be complete!

Printrbot – day3

In the previous post,  Printrbot – day2,  we completed assembly of the mechanical parts of the Printrbot Simple Metal Kit. We ended up with something that looked finished, but nothing was connected to the controller board. In this post, the topic is connecting the motors and sensors to the controller board (Printrboard Rev. F5 in this case), calibration of the Z-probe and initial printing attempts. It gets more exciting!

First, we hook up the four stepper motors. From bottom, the sockets are for X, Y, Z axis motors and the top one is E for extruder motor. The black motor connectors are not polarity safe, so it is very important to pay close attention to the orientation of the blue wires as shown in the image below. The Y and E motors are connected in the opposite manner, compared to the X and Z motors. Since I labelled the motor connectors consistently, the Y and E labels end up on the back in this image. All the other connectors have polarity safe connectors, so all you have to do is identify the various sockets on the board.

image

After the motors are connected, the fan and hot end thermistor are connected at the top of the board. The X and Y end stops are connected to the right, counting from bottom. The Z-probe is connected to the Z-stop socket above them. A word of caution for the Z-probe : Make sure the extension cable is connected correctly to the Z-probe cable. It is possible to get the polarity wrong and the Z-probe is then going to say “goodnight”, needing a replacement. Follow the printrbot instructions with full attention to the details. 

What remains is then to connect the hot end to the socket at the bottom of the board, followed by the large red/black power input connector. We should now be hooked up!

image

The final step is to route all the wires through the opening between the two base “compartments” and close the opening with a zip tie. Then collect the wires in the bottom compartment with one or more zip-ties and tuck them away. Make sure there is no excessive  tension on any wire. Similarly, I found it useful to use a couple of zip ties to collect the wires in the board compartment.  I used no force, but simply carefully  collected the wires and made sure  they were not sticking out or under any strain.

Done! This should in theory now work.

In the future my setup is likely to be different, but for the purposes of calibration I decided to go completely mainstream and and follow the printrbot calibration procedure in every detail. That means I used a laptop with Windows7 and installed a serial port driver and the Cura software.  I would recommend reading those instructions carefully and do exactly what they say. Initially, i didn’t and had some scary moments, but all went well :-)

One should read and follow the procedure, but it is useful to understand the overall concept of calibrating the Z-probe. You power up the printer and connect it to the PC using the USB cable provided. You then start Cura on the PC and connect to the Printrbot. The idea is to first mechanically adjust the position of the Z-probe to be approximately one mm higher the hot end (which must be hot) when the hot end is “a paper thickness” above the bed. This is done using the wooden wrenches (or use better tools, the wooden wrenches are mostly useless).

By repeatedly printing the provided calibration cube and observing the result, one can determine the required Z-offset of the probe. There are YouTube videos demonstrating how to analyse the printouts during calibration.  This offset changes are entered by means of manually typing G-code commands such as “M212 Z-0.2” (to offset the Z-probe –0.2mm) and then “M500” to save the value into the board firmware. This process is repeated by changing the Z-offset until things start to look right. Remember that the hot end must be hot during the calibration, since heating it will change its dimensions enough to affect the settings.

After a few completely failed attempts of the 3mm calibration box , I was getting closer, however things were still not perfect, the bottom was a bit messy. But at least we could see what it was supposed to be.

image

In the above image, it is possible that the offset is too low, causing the first layer to be squeezed too flat. It is also possible that the extrusion isn’t completely correct. But at least we are getting something. In the image below, the offset is –1.0mm (I think). Now it starts to look good.  However, it is still this is not a perfectly calibrated printer.

image

The print box ended up looking quite good, so I had a go at printing the Improved Fan Shroud available from Thingiverse.  This worked out rather good as the following images illustrate:

image

image

image

The print completed in about 48 minutes. After a little bit of cleaning up, the printer got a new part! The fan will now blow on the freshly extruded plastic, not on the hot end itself. This should help improve print quality even more.

image

I consider this a complete success so far. There are probably a few more adjustments that can/must be made, but being able to print a part like this proves that everything is working and that was the goal at this stage.

My corner of the universe…