Thursday, 20 July 2017

Upgrade Ultimaker 2 to Ultimaker 2+

With the extra nozzle cleaning required from changing from PETG back to PLA I decided I needed a hot end that had a replaceable nozzle. The type to be added to an Ultimaker 2 is called an Olsson block.


Once I started looking at that I ended up back at the upgrade from Ultimaker. It's an expensive kit which I'd looked at before because of the improved feeder. Now additionally with the desire for the Olsson block, that is also included in the kit, it started to look like a good idea. It gets lots of positive comments on the forums. I ordered it to arrive next day. Which it did.

There are some clear instructions available from Ultimaker's site so no need to repeat those.

The claim is that it can be done in an hour. I won't dispute that, I didn't rush and it was about 1.5 hours for the mechanical build and a further 20 minutes for the calibration and build plate levelling. The firmware would have been a couple of minutes but I kept getting a communications failure warning!

After a lot of fiddling about, I checked the version number on the Ultimaker and as far as I can tell it has updated. I guess it is just the error shown within Cura that is wrong.

I ran out of time being a weekday. Tonight I'll try my first print.

Sunday, 16 July 2017

Lower filament guide

I have found that the filament on my Ultimaker 2 flows best if it runs under the power adaptor socket.
This must make the angle better for the approach in to the feeder.


I have never been keen on that. Although I doubt there is much strain on the socket it does not look like a good idea.





To resolve that I have made a simple guide that fits under the lower lip of the Ultimaker case and serves the same function as the socket does to direct the filament.

==

Update: 17 - 20 July 2017

The filament drags a little on the table top. It has not affected the printing but is not ideal. I'm in the processes of creating a revised version that sits just above the power socket.


I have not had a chance to print it yet but the design is done. It overhangs the power connector.

To get that shape without a support structure it will be produced in two parts and joined with a dovetail.

==


Tuesday, 11 July 2017

PETG Experiments

I have started to use PETG for the first time with my Ultimaker 2, 3D printer.
Apparently it can be tricky to print with and needs experimentation to get the right settings.

For those of you who are reading this to find a solution to avoid large prints from warping, I still find each print is a risk but I have had some good results. As far as I can tell no one has found a completely reliable solution.

I am hoping that PETG will produce some strong prints.


Until I've had a few bits in use for a while I won't know how robust it is. So far I can tell it is a bit more flexible and needs a bit more cleaning up than PLA. The PETG I have used has a tendency to leave a bit of fine stringing and a few blobs but its main drawback is that it often warps away from the build plate.



Conclusion

These settings have given me the best results so far.
Material Settings:
Bed temperature: 80C
Hot end temperature: 240C
Fan speed: Off
Print settings:
Speed: 80mm/s
Adhesion: Brim 9.0mm

The brim is not always needed. The important bit is that the object needs a lot of surface area on the build plate in proportion to it's Z height above the build plate.

The main things are a hot build plate with no fans to cool the hot extrusion.

Preference

For quality and ease of use I prefer printing with pure PLA. Some of the hybrid PLA's claim to have some advantages but typically I find they also have some disadvantages. Lower quality or a slight tendency to warp depending on the mixture.

Once I've used up my stock of different filament types, I'm going to use PETG when I need strength and PLA the rest of the time.

==

This post records the settings I have tried and some of my thinking to get to the above conclusion.

==

11 - 12 July 2017


My first print with PETG is off the printer after 11 hours.

Filament: PETG by Real bought from Amazon
It says it's opaque black but, on the build plate, it looks a more translucent green. It's finished a bit black but not as black as the PLA.
The filament on the reel looks black. A lot more flexible than PLA and a much smoother surface on the real.




Material Settings:
Bed temperature: 70C
Hot end temperature: 240C
Fan speed: 50%
Print settings:
Speed: 60mm/s
Adhesion: None

Reasoning:
I struggled to find a temperature to set the build plate, so I've taken the view that as the glass temperature and the nozzle temperature are hotter than PLA the temperature for the bed for PETG should be a bit higher. PLA worked well for me at 60C so I've started a bit higher than that at 70C.


The result is a little warped. Not much but I'll reduce the temperature and add a brim to see if that helps.



The hot end temperature was simply in the middle of the range specified for PETG. That was the easy choice.

The result is a bit stringy. After a bit of tidying up the result is similar in quality to PLA.

I found very mixed information about the fan speed. The most reliable sounding source suggested start off with no fan and change to 100%. I've split the difference for now and set it to use 50% for all the print.

The layers appear to have joined well, so I think the 50% is OK.

The same source suggested not printing too fast. I've therefore reduced the speed to 60mm/s for now.
That felt a bit slow so I'm going to try a bit faster for the next print.


It was also mentioned about leaving more gap between the head and the build plate. About an extra 0.02mm or thereabouts was suggested. As that is a bit awkward to keep changing between materials, I've tried it without moving the Z height of the bed. I have not had any issues leaving the hot end Z height unchanged.

Lots of places recommended enclosing the printer to keep the temperature even. One of the first things I added to mine was an enclosed front panel. This was intended as a safety feature to avoid cats getting caught under the build plate when it descends. Apparently it has advantages for printing as well :-)


One of the features of PETG is that it has no odour while printing. I can confirm that is the case.
Let's hope the advertised strength is as described. It could be the perfect printable plastic for me.

==
11 - 12 July 2017

Material Settings:
Bed temperature: 60C (fail)
Hot end temperature: 240C
Fan speed: 50%
Print settings:
Speed: 80mm/s
Adhesion: Brim 8.0mm

The lower bed temperature warped even sooner. After about 5mm in height it had a noticeable curl at one end.


I stopped that print it was so bad.

12 - 13 July 2017

I've adjusted the bed temperature up above my original setting and restarted.

Material Settings:
Bed temperature: 80C
Hot end temperature: 240C
Fan speed: 50%
Print settings:
Speed: 80mm/s
Adhesion: Brim 8.0mm

Same warping. If the object is over about 80mm long on any edge, one corner or end will warp away from the build plate! In this case the brim remained mostly attached to the bed and only the model body warped.

It warps all round at the edges but it tends to be minor on most edges and only on a large object does the warp become excessive.

==

13 - 14 July 2017

I tried the same setting but with a raft instead of a brim.


Same result. The raft is nicely attached to the build plate but the rest of the model has warped away from the raft, just at one end, like all the other prints.

Some of the discussion I have read on forums have mentioned that cool areas caused by unintended fans and drafts may be affecting the warping. In my case the location of the shrinkage on my build plate is not the same each time. I have therefore ruled out extraneous drafts as the ultimate cause with my setup.

The location of the warp on the models I have tried depends on the shape of the item not on the position on the build plate.

==

14 - 15 July 2017

Looking for a solution. Here are some of the sites I have read:

https://www.reddit.com/r/3Dprinting/...99_problems_and_petg_warping_is_1/
https://craftunique.com/forums/view-thread/763
https://rigid.ink/blogs/news/175700615-petg-filament-heres-what-you-need-to-know

Despite what people are claiming none of them have a solution for the size and shape of the models I am printing. Most people are trying small test prints or that only have a small area touching the build plate!

At least one of the pictures I looked at that claimed not to have warped was of an object that only had a small footprint and I'm fairly sure I could see the start of the warping on the edges of the area that did touch the build plate!

Adhesion Aid:
Just in case you have not noticed. I do not use any glue or tape on the build plate. I keep the glass clean using a chamois leather. Adhesion may have a part to play but I'm working on trying to minimise the shrinkage rather than trying to force the object to stay put. In fact, the raft I tried remained attached to the bed but the model pulled away from that, I'm thinking that adding gunk to the glass is not going to help!

Next attempt, the fan speed.

Material Settings:
Bed temperature: 80C
Hot end temperature: 240C
Fan speed: Off (success)
Print settings:
Speed: 80mm/s
Adhesion: Brim 9.0mm




This has just about worked. Just the tiniest pull up from one corner. I have changed the model to have more surface area on the bed at the point it tended to warp so this is not a scientific test.

A hot bed plus no fan appears to be the solution.


I need a few more successes before I call this a final result.

Consequences

When I swapped back to printing with PLA I had a few problems. The filament came out a bit lumpy and the second print got pulled off the bed. On closer investigation I found small pieces of PETG mixed in with the PLA.

My guess is that the PETG was on the outside of the extruder end and bubbled up , eventually it was pushed off in small lumps by the new filament. I suspect the same is happening inside the nozzle partially interrupted the flow of the PLA.

I've experimented and changing the filament a couple of times to help clean the nozzle helps a bit. I'm not sure it's a complete solution but the prints are reasonably OK now.

--
Update on the consequences: 17/07/2017

PLA completely stopped flowing thorough the nozzle. I could load the filament and it would flow while changing but when printing, the filament just stuck completely.

The hot end of the filament bulged out. My best guess is it is not flowing through the nozzle quickly enough because there is PETG in there that is not melting at the lower temperature used for PLA! The PLA just jams in the Bowden tube because of the bulge!

Having only used PLA before, I am not used to having to clean out the nozzle beyond changing the filament a couple of times to pull out any old stuff. I have not had time to sort this out but I have decided an Olsson block would be very handy, if I'm going to use different filament types.

20 July 2017, I've upgraded my printer.

==

15 - 16 July 2017

I've had a couple of successful prints with minimal shrinkage so I am going to make some very minor adjustments to see if I can improve on the blobbing and stringing without making the warping worse.

The blobs and strings do not harm the result but do make for more cleaning up.

Material Settings:
Bed temperature: 80C
Hot end temperature: 238C
Fan speed: Off
Print settings:
Speed: 80mm/s
Adhesion: Brim 9.0mm

Just a touch lower temperature for the extruder.

The result was much the same. Perhaps a little more fine string but perhaps smaller bobbles. The difference was so marginal the one test is not sufficient to be sure there was any difference. At a guess I'd say it's not as strong so I'll probably revert back to 240C.

Again there was just a little bit of warping on one corner. What I did note was that the contraction causing the warping happened AFTER the print had finished. I could hear it shrinking as it cooled!

The implication is that no matter what the print settings are there is always going to be a risk of warping.

==



Monday, 10 July 2017

Socket set replacement case

After many years the plastic catches gave way on my Halfords ratchet and socket set.
I bought a plastic case and planned to cut the tool holes in foam matting however the design evolved.


Metric


I've modelled and 3D printed holders to fit in some smaller clear plastic cases that will in turn fit inside the larger case. The metric, imperial and odds and sods sockets will fit in the separate cases.

The old case

Possible layout in the new case




I found just the right size smaller cases from e-bay.

Lemmy


Impact

Imperial





The socket holders fitted first time but I'm still tweaking the design of the other bits I'm adding to the case.

Spanners



==


The font I used on the first parts was a little bit fine and the "1's" tended to break off. I've adjusted the thickness which, although not as easy to read, is a bit stronger. I used the following settings in Blender, which gives about 5mm tall characters.


The above settings creates the smallest characters I've managed, so far, that retain their form when printed.



==

After a few days work




==


Thursday, 22 June 2017

My C++ reminders

I don't spend all my time doing the same thing. I hop from one project to another and end up using different tools and different languages as appropriate for the job. It becomes difficult to remember the best practice for any particular tool. I need to maintain a quick reference sheet.

Coding Standards For C++

Use variables instead of hard coded 'magic number' to make code more readable.
Use const variables instead of #define for static members because the variable name is visible in the debugger.

I prefer all my configurable options at the start of the file.
I use #define where I do not want a variable to have global scope but I want all the configurable items in that block of code at the start of the file.

Do not use #define within a function unless it cannot be avoided. An example where it might not be avoidable is where extra code may be needed only for debug purposes or where code is specific to only one environment.

I put all my comments in the header (.h) file including the licence details and feature list.

Preferred Naming Convention

These are my preferences.
UPPER_CASE for global scope const members or #define macros.
camelCase starting with a lowercase word for variables.
CamelCase starting with uppercase for function or method names (less common style.)
No differences for public, private or protected members.

Licenses

I release most of my code under an MIT, Microsoft Permissive or similar style licence unless, any of the work it is based on, forces another licence. I try to avoid referencing works released under the GNU public licences (GPL) because I think they are too restrictive. The Lesser GPL is just about acceptable.

**

Licence (MIT licence):

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub-license, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

**

Where appropriate I use a single line version which I believe has the same meaning:
'This work is free to use with no warranty'

==

References:
http://www.cplusplus.com/
http://www.learncpp.com/

==

Sunday, 18 June 2017

Fixing an ABS sensor warning

Yet again the dashboard warning lights were on that are comically referred to as the 'three amigos.'

There was also a forth general brake warning light on. The three amber 'amigo' lights, traction control, ride height and ABS, only indicate something wrong with the ABS system but not exactly where the fault is.


The trusty Nanocom to the rescue again. It pointed clearly to the rear left sensor.


Looking under the car it was a very easy diagnosis. The sensor cable had been rubbing against the wheel rim and worn through the cables!

I had a quick look on the Internet about how to replaced the sensor but according to a workshop service release from Land Rover in 2001, the sensor is deliberately supplied pre-installed in the hub because workshops are not usually clean enough to fit the sensor without getting grub inside which would affect the operation!

The sensors are therefore usually only available with a hub.

I will eventually have the hub replaced but for the time being I have done a pretty robust repair of the broken wires.





With the wheel off it was very easy to access the wire.


I've trimmed back the insulation and joined the wires. I made a splint out of a small spade connector. I could have soldered them but I am very reluctant to solder any wires on a vehicle.


I was taught that solder stops the strands in wires from flexing so the cable has a tendency to break at the margin between the solder and the free strands. As I've seen this myself, many times, I have no doubt.

I invariably use a crimp joint unless it is really not practical.



I wrapped the joint in several layers of insulation tape, followed by a layer of duct tape over the whole exposed length and then as further protection I've used spiral wrap over the top of that.




Once the car was back on the ground I checked which way the brake pipe and wire flexed. I've had to deliberately move it so it curves away from the wheel. I'll probably have to monitor it.

The test drive went well with everything working as it should and no warnings.