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.

Printrbot – day2

In the previous post  Printrbot – day1 we began assembly of the Printrbot Simple Metal Kit. This post continues where the previous stopped. We had assembled the X-axis and the bed on the base, plus inserted the vertical rods and the acme screw for the z-axis. We also attached the electronics board under the base. The board is the so called “printrboard”, which essentially is a glorified Arduino processor with integrated stepper motor controllers and more.

The next step in the process is to attach the various bits on the Y-axis. This includes the metal extruder assembly, the extruder stepper motor, the hot end and the Z-probe. The Z-probe is an inductive distance sensor that measures the distance to metal below it, it works as an end stop on the Z-axis in a way that compensates for a slightly unlevelled bed. It will require calibration later, but at this stage we simply assemble things roughly as shown below.

image

We are now starting to get a few wires to manage, such as power to the hot end, hot end thermistor, stepper motor power and the Z-probe wires. In order not to lose sight of what is what, it is a good idea to label them. This will make it easier to hook up things correctly to the printer board later.

image

After that, we start to assemble the Y-axis motor and drive assembly.  This introduces another motor and the Y-axis end stop switch. Two more wires to manage and label.

image

The Y-axis motor assembly is then attached to the Y-axis rods via the very nice metal linear bearings.  At the ends of the rods, delrin blocks are fitted. At this stage I made a slight mistake, I didn’t check the alignment of the screw holes on the Y-axis metal plate against the corresponding threaded holes in the delrin blocks before attaching the Y-axis GT2 belt.  I therefore had to undo the belt attachment, hammer the blocks into place and then re-tighten the belt with new zip-ties. Another possible mistake here is to attach the zip-ties in a way that makes the zip-tie heads collide with the metal plate, when the Y-axis is all the way in to either side. If the zip-tie heads are positioned on the side of the belt opposite the metal plate, there is no collision problem. Lots of details to pay attention to….!

image

After attaching the Y-axis metal plate to the delrin end-blocks, the whole Y-axis assembly can be slid down the vertical Z-axis rods. The Y-axis motor assembly also has a delrin block (not shown) opposite  the two white nylon standoffs. In this block there is a threaded hole, where the Z-axis acme screw goes. By rotating the acme screw, the Y-axis is lowered into place. The acme screw is coupled to the Z-motor axis via the axis coupler. During print jobs, the Y-axis is gradually raised as the Z-motor turns the acme screw.

image

The wiring now looks rather messy, and it is a good thing we have labelled everything.  To make it look nicer, and also protect the wires from wear, the wires are fed through rubber grommets which are then inserted into holes on the base (under the Z-axis motor and on the back). Finally, we wrap the wires in plastic wire-wrapping and we then have something that starts to look much nicer:

image

It looks finished, but it isn’t. Nothing is connected or calibrated. But this looks like a good place to end the second day of assembly. More to come!

Printrbot – day1

After 2 months of waiting, the printrbot simple metal kit finally arrived yesterday. It is a popular 3d printer with good reviews. The printer can be obtained as fully assembled or as a kit. I chose the kit as I thought it would be more interesting to assemble it myself, plus it is a little cheaper that way.  Since it had to be shipped internationally, I also thought it would be safer as a kit.

Day1 was dedicated to unboxing and beginning of assembly, following the assembly instructions. After opening the box I was met with a few large metal parts, metal rods, bearings, stepper motors, several bags,  a controller board and more.  I marked the bags according to the bill of materials to familiarize myself with the kit.

image

The assembly instructions turned out to be fairly detailed and reasonably easy to follow.  After a little while I had the basic X-axis drive assembly in place.  A stepper motor drives a pulley and two bearings help guide the belt, which in turn makes the print surface (the “bed”) move. On the left in the photo below is an end stop preventing the bed to move too far.

image

Next, we have 4 linear bearings in which the 250mm X-axis rods slide. They are held down by a metal clamp screwed into the metal base . At each end of the rods, a delrin block provides support for the print bed (to be installed later).

image 

Turning the base upside down, we see the GT2 belt secured in one end of the bed and in a tensioner clamp on the other side. Two screws provides a means to tensioning the belt which runs over the pulley that is driven by the x-axis motor shown. The red and black cable is the power cable for the board (not yet connected).

image

The printer board  is attached under the front of the base:

image

Top of print bed shown, plus vertical rods. Between  them is the acme screw coupled to the Z-axis motor mounted under the base:

image

More to come in the following days!

Weather camera reboot

While waiting for my next project to take off (info to come here when it happens), this is a good time to mention the impressive stability of 2 computers serving my weather station page. The machines are an old laptop and a Raspberry PI, both running Linux distros.

The graphs on that page is collected from a simple weather station with an outdoor unit located in the garden:

image

The outdoor unit runs on 2 AA batteries (they seem to last forever!) and contains a temperature sensor and a humidity sensor, they are located inside the Stevenson screen. On the roof of the Stevenson screen is a rain sensor plus a wind speed and wind direction sensor. The location of the outdoor unit is not ideal, and the wind direction is not to be trusted. Mostly, it is the temperature that is of interest, but wind speed and rain can sometimes be useful also.

The outdoor unit sends readings wirelessly to the indoor unit which has its own indoor temperature plus pressure sensors. The indoor unit is permanently connected via USB to an old laptop running Linux Xubuntu 11.10 .  All that laptop does is run a program that queries the indoor unit and stores the readings in an SQLite database every 5 minutes. The incredible thing is that the old laptop was last rebooted 11. May 2012, i.e. almost 3 years ago. That is stability!

The images on the weather station page are generated from the Raspberry PI based weather camera housed in a dummy surveillance camera, mounted on an old TV antenna pole. The Raspberry PI camera runs Linux Rasbian. Since performing some hardware changes 2-Jan-2015, the RPI machine has not been rebooted, it has captured images every minute for almost 90 days in a row. Not bad!

image

However, 2 days ago, the images suddenly stopped coming, something was wrong. After investigating, it quickly became clear that the SD card the RPI was running from had acquired a file system problem, so it crashed and a reboot didn’t work. The camera was taken down, SD card erased+reformatted and Rasbian was reinstalled. Problem solved, now the camera is running fine again with the same hardware.

The problem may have been caused by excessive writing of files to the SD card, which will eventually wear it out. To prevent similar problems in the future, I decided to install a small RAM drive based on this description.  Instead of temporarily writing the images to the SD card before copying to a disk in the house, it now writes the images to the RAM drive. A very simple fix that should increase the life expectancy of the SD card.

It will be interesting to see how long these two work-horses will run before requiring a boot!

My corner of the universe…