Posted on Leave a comment

Printing Nylon

Today I’ll take a break from my BeTrue3D Printer project and look at some long overdue projects.

Todays project is going to be printing Nylon, which is something I’ve wanted to try for a long, long time.

Picking type of Nylon

The first step obviously is to get my hands on some Nylon, but which one? There are so many types, and I’m not really all the knowledeable in the composition and usages of the different models… luckily for me, Taulman3d has made a super nice overview of Nylon types, for this exact situation.

I strongly recommend you go and read the full page on Taulman3d to learn more about it.

I’ve picked the Alloy 910 to print, and marked it in the below image, which originates from Taulman3D.

When I bought it, a long time ago, there was a list over ease of printing as well, where the Alloy 910 featured as the most easy Nylon to print, which was a huge reason for the choice as well!

Properties and usagescenarios of Alloy 910

Below is taken from the Taulman3D page I linked to above.

Alloy 910 = Alloy 910 is a significant development by taulman3D and both our chemical house and post processing company.  The goal was to provide a super material with very high tensile, yet sufficient elongation to maintain a high degree of durability.  Alloy 910, when 3D Printed comes in at 8,100 PSI Tensile and close to 12,000PSI when injection molded.
Potential uses:
* Any industrial parts that are currently being made of other high tensile polymers.
* Large motor mounting
* Industrial vibration isolators and damping parts
* High Pressure Sand Blasting resistant
* Sand Blast Masking
* Electroplating supports and hangers
* Chemical dip and tank supports.
* High end gears and cams
* Chemical resistant equipment covers.

I primarily wanted to be able to print Nylon in order to create strong mounting parts and also to be able to print high quality gears, for which the Alloy 910 is a good choice.
The Alloy 910 is also the choice of Nylon for high temperature applications.

Alloy 910 has one very unique feature as well: There are no fumes when printing!

Alloy 910 Features:

I’ve only written the one directly relevant for printing and using Alloy 910. There are more informtion on the Specification sheet and much more detailed information in their Data Sheet (opens PDF).

  • Surface texture: Very Good
  • Use of Taps for threads: Excellent
  • Use in 3D Forging: Excellent
  • Printed Prostesis: Excellent
  • Robotic Assemblies: Excellent
  • Fumes: None
  • Dye Uptake (Saturation): Very Good
  • 8100+ PSI Tensile strength

How to print it

Ahh, now we come to the question that prevents many from trying to print Nylon.

The Taulman3D Alloy 910 is listed with the following printing requirments:

  • Printing Temperature 250-255c
  • Print-Bed Temperature 30-65c
  • Ambient Temperature 30-100c

Prepare printbed

Nylon just doesn’t stick on PEI. At least not on mine. It works well the first few layers, but then it pops free and leaves you something like this:

I opted to find a piece of glass, clean it using Acetone and clamp it onto my PEI-Coated Aluminium bed.

Now I applied a thinish layer of Elmers Glue-All (any PVA glue should do I guess) and heated the bed to 65c untill it dried up.

For my UM2+ clones I normally mix the glue 1:1 with water, but I applied it without mixing it here.

Ambient temperature

How to get the temperature above 30c you might ask.. higher is preferable… luckily for me, or maybe just foresight, I have removable sides on my printer, attached using magnets, and I recently made a top for it as well, made from Acrylic plates I cut using a jigsaw and printed parts.

So, I simply just put my heated bed to 120c and waited.. not long, untill the temperature in the box was at 40+ as you can see here:

Printsettings:

I started out using the recommended values and printed slow. I normally print a good deal faster, but I’ve learned to start slow when starting to learn something new. Takes away the speed variable for failures in most cases.

  • Hotend: first/rest 255c/250c
  • Bed: first/rest 85c/80c
  • Ambient: 40c-50c (I call it my passively heated chamber, as the heat comes from the bed).
  • 0.2mm layer height
  • 3 walls
  • 100% infill
  • First layer speed: 20mm/s – no need to go this slow. It stuck really well.
  • Outer walls: 30mm/s
  • 40mm/s everything else
  • 150mm/s movespeed
  • 100% flow
  • Retract 1mm – E3D Full 1,75mm
  • Nozzle 0.4 – all lines 0.4 width
  • No Cooling

Result

I hadn’t configured the distance between nozzle and bed properly. I thought I could do it using babystepping, but for some reason it wouldn’t move Z to negative, so the distance was too great. Even though, it was only one corner that came loose, and not even much at that!

Even though it wasn’t close to the glass it sat extremely like fused to the glass. I ended up putting the plate in the freezer, which made it pop free easily.

Unless you use a Borosilicat plate you must be carefull not to drop a smoldring hot plate into the freezer, or the other way.

Also make sure to get condensation away before next print (said mr. obvious 🙂 )

Further reading

I found a good article on Matterhacks on printing Nylon.

They also had nice info on how to dry out the Nylon before usage:

To dry nylon filament, place it in an oven at 70c/160°F – 80c/180°F for 6 to 8 hours. After drying, store in an airtight container, preferably with desiccant (learn more about desiccant here).

Posted on Leave a comment

Using Duet with Cura and + Diamond Hotend and Firmware Retract

Note: This post is not complete, and the temperature settings in startup.gcode is not correct for use in Cura – I am working on a new, updated, more comprehensive Guide to using Cura for muticolor printing.

In my ongoing project for my 5way Fullcolor Diamond Hotend I’ve had some issues getting Cura to work in the first place and latter again to make it run using Firmware Retract, which is required to make all 5 extruders retract at the same time.

I finally made it all work yesterday, so here comes the setup-recipy for Cura users, once an for all 🙂

Inherent config changes needed for all Cura users using Duet:

Duet is using Relative Extrusion as standard, which Cura does not support. It shows itself in massively overextruding when printing, while at the same time extruding normally when calibrating extruder using Web Interface.

  • Need to comment out M83 in config.g + Use M82 in cura startgcode.

Adding Diamond hotend and we need more changes:

Firmware Retract and Volumetric

Now, in order to use Firmware Retract in Cura we need to use either the Ulticode or RepRap (Volumetric) Gcode Flavor in Machine settings.
We can’t use the Ulticode one, as it removes the startup.gcode option and the second one requires Duet to use Volumetric.

Duet only just supported Volumetric extrusion in 1.19RC/Beta, so you need to upgrade firmware if you havn’t allready.

Extra special important note: Be sure to read upgrade instructions if using 1.18 or earlier as you can not do it through web interface!

To use Volumetric:
We need to use Firmware 1.19 or newer + use the this in config.g

M200 D1.75

To use Firmware retract
Enabled using through config.g

M207 S1.5 F3000

Now it all works but Extruding manually using web interface after enabling Volumetric extrusion via M200 now extrudes only 4/10 though.. guess it’s to consider a firmware bug.

Summary

  • Need to uncomment M83 in config.g + Use M82 in cura startgcode. (This is always the case when using Duet with Cura)
  • Use Duet Firmware 1.19 or newer – Be sure to read upgrade instructions
  • Cura – Use RepRap (Volumetric) Gcode Flavor in machine settings – to support Firmware Retract.
  • Duet Config.g – Enable Firmware Retract using M207 S1.5 F3000   – Diamond hotend retract at 1.5mm is good.
  • Duet Config.g – Enable Volumetric printign using M200 D1.75
Posted on Leave a comment

BeTrue3D Printer – Setting up 5-way Diamond firmware

Wow, been a while since I last wrote… seems like I always start by writing that, hehe.

As always I’ve been through a lot of iterations of various brackets and other mechanics, but this post is going to be about setting up the RepRapFirmware for use with the 5-way Diamond Fullcolor Hotend.

I’ve been building 3D Printers some years, but this is actually my first venture into multi-color printing, which has proven a rather steep learning curve for me.

Luckily for me, I’ve had help and inspiration from the great blogpost Using the Diamond Hotend with DuetWifi found on Think3DPrint3D.

Drives

First I need to setup my Drives and axes, which includes X, Y, Z and all my extruders. There’s not much to this really, once you get to know what’s going on.

The first 3 lines configures X, Y and Z, while the next 5 defines my extruder motors.

Next two lines defines microstepping and steps/mm.

; Drives
M569 P0 S1 ; Drive 0 goes forwards A
M569 P1 S1 ; Drive 1 goes forwards B
M569 P2 S0 ; Drive 2 goes forwards Z-both motor on 1 driver for now.
M569 P3 S0 ; Tool 0
M569 P4 S0 ; Tool 1
M569 P5 S0 ; Tool 2
M569 P6 S0 ; Tool 3
M569 P7 S0 ; Tool 4
M350 X16 Y16 Z16 E16:16:16:16:16 I1 ; Configure microstepping with interpolation
M92 X160 Y160 Z800 E1025:1025:1025:1025:1025 ; Set steps per mm

Heaters

While this section isn’t unique to the Diamond hotend I’m still including it, as it’s really crucial to have done the PID tuning.

As you can see, I like to comment in my config.g file in order to figure out what and how I did what I did.

Notice how the Heated Bed is using a Thermistor, where I needed to include the parameters for it, along with the PID parameters I got from the PID Tuning.

The Diamond Hotend also has PID parameters but is using a Thermocoupler instead of Thermistor, so here I’ve defined the use of the first channel on my Daughterboard.

; Heaters
; M305 Sensor P0 Bed. P1 Hotend
; M307 Heater
; Test Hotend: M303 H1 P0.3 S200
; Test Bed M303 H0 P0.1 S100
; BED
M143 H0 S140 ; set the maximum bed temperature to 140C
M307 H0 A44.1 C127.7 D3.0 S1 B0 ; Heated Bed Pid settings
M305 P0 T100000 B3950 C0 R4700 ; BED Thermistor
; Hotend
M143 S260 ; Set maximum hotend temperature to 240C
M307 H1 A1073.8 C407.8 D3.5 S1 B0 ; PID Heater - 5-way Diamond
M305 P1 X100 ; Use thermocoupler for heater P1/H1 on first channel

BLTouch

Just as a sidenote: I’ve prepared the use of BLTouch Sensor, which I wrote a seperate blogpost about.

In order to free up a PWM channel to controll it, I disabled the last heater as follows:

; Disabled heaters
M307 H7 A-1 C-1 D-1 ; Disable heater 7 for BLTouch

Tools

Now we get down to it; defining all the tools we need.

In a nutshell we need to define each Extruder + an extra, which amounts to 6 in all.

Remember the first tool is Tool 0 so we go from Tool 0-4 for the physical extruders.

What is going on here is that we define each Tool to include all 5 extruders, enable mixing and use 1 extruder as the primary extruder and the other 4 as slight additions.

It really seems odd at first, to mix everything a bit all the time, but unless the colors are moving forward some the same filament end up being retracted back and forth a lot and risk degrading and ultimately clogging up the nozzle, or at least the unused channels.

You can read a larger explanation at the blogpost I mentioned previously. For me it’s just theory so far.

The final Tool has an even mixration which we can override by editing the Gcode files, to create a large variety of colors.

Note: The mixing ratios should be changed – I’m still working on perfect ratio, but the secondary should be down to like 0.005 instead of 0.025 – change primary accordingly.

; Tools
; P tool number
; D Extruder drive
; H Heater
M563 P0 D0:1:2:3:4 H1 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M568 P0 S1 ; Enable mixing for tool 0
M567 P0 E0.9:0.025:0.025:0.025:0.025 ; Set mixing ratios for tool 0

M563 P1 D0:1:2:3:4 H1 ; Define tool 1
G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M568 P1 S1 ; Enable mixing for tool 1
M567 P1 E0.025:0.9:0.025:0.025:0.025 ; Set mixing ratios for tool 1

M563 P2 D0:1:2:3:4 H1 ; Define tool 2
G10 P2 X0 Y0 Z0 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M568 P2 S1 ; Enable mixing for tool 2
M567 P2 E0.025:0.025:0.9:0.025:0.025 ; Set mixing ratios for tool 2

M563 P3 D0:1:2:3:4 H1 ; Define tool 3
G10 P3 X0 Y0 Z0 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3
M567 P3 E0.025:0.025:0.025:0.9:0.025 ; Set mixing ratios for tool 3

M563 P4 D0:1:2:3:4 H1 ; Define tool 4
G10 P4 X0 Y0 Z0 ; Set tool 4 axis offsets
G10 P4 R0 S0 ; Set initial tool 4 active and standby temperatures to 0C
M568 P4 S1 ; Enable mixing for tool 4
M567 P4 E0.025:0.025:0.025:0.025:0.9 ; Set mixing ratios for tool 4

M563 P5 D0:1:2:3:4 H1 ; Define tool 5
G10 P5 X0 Y0 Z0 ; Set tool 5 axis offsets
G10 P5 R0 S0 ; Set initial tool 5 active and standby temperatures to 0C
M568 P5 S1 ; Enable mixing for tool 5
M567 P5 E0.20:0.20:0.20:0.20:0.20 ; Set mixing ratios for tool 5

Firmware Retraction

To make it work at all, we need to enable firmware retraction in our firmware and enable it in our Slizer.

I’ve put in a lot of notes here, but I’ve really only setup length and speed and of course enabled it by issuing the M207 Gcode command.

We need to enable firmware retract as all our extruders must retract at the same time instead of just the active one. If only one of the extruders are extracting, it will just suck up the filament in the melting chamber/from the other colors, but not the filament at the tip of the nozzle.

By enabling firmware retracting in firmware and in slizer, the Slizer is going to insert G10 to retract and G11 to unretract, which triggers the firmware retract option.

; Enable Firmware retraction
; https://duet3d.com/wiki/G-code#M207:_Set_retract_length
; Snnn positive length to retract, in mm
; Rnnn positive or negative additional length to un-retract, in mm
; Znnn additional zlift/hop
M207 S1.5 F3000 ;set firmware retraction

Heating and Standby temperature

Aside from the firmware settings we need to do a large deal of changes in our Slizer profile. I can’t go into all of them obviously, but one of the universal ones are defining Standby temperature in the startup gcode file using the G10 G-command.

G10 P0 S205 R205     ; Set tool 0 Active and standby temperatures
G10 P1 S205 R205     ; Set tool 1 Active and standby temperatures
G10 P2 S205 R205     ; Set tool 2 Active and standby temperatures
G10 P3 S205 R205     ; Set tool 3 Active and standby temperatures
G10 P4 S205 R205     ; Set tool 4 Active and standby temperatures
G10 P5 S205 R205     ; Set tool 5 Active and standby temperatures

Setup up Cura

Be sure to read my new blog-post to correctly setup Cura for this.