Posted on 2 Comments

Send files directly from Cura to print on the Duet card

Heya all.

Since last time:

As my computer had a loose connection in an internal USB connector, which apparantly touched on some 12v source, which in turn ended up frying 2 of my Duet WiFi controllers, a Duex5 and a BLTouch sensor, I went into fetus position and put 3D on pause. Especially as I had no clue as to what had happened, as the only thing I had done to my printer was updating firmware. I only figured it out a couple of weeks later, when my computer refused to start and I dismantled it… found a loose wire in my automatic watercooling system <cry>

I ended up burning not just 1, but 2 Duet WiFi cards, as I supposed it was a faulty card. Yesterday I found my Duex5 and an original BLTouch had also died!

What died on the boards?

A 5v regulator died on both.
VIN leds blew on both.
The micro usb plug fried on one, along with what I believe was an USB controller chip thing (I’m not a component expert).

I’m not sure which parts has died on my Duex5, as I only discovered that one yesterday when installing a Duet WiFi from my CoreXY, to get my xBot up and running again… luckily I had a Duex5 and BLTouch from my CoreXY as well, so now I “just” need to figure out why a few sensors doesn’t work as they should.. hopefully the daughterboard on Duex5 isn’t burned as well, but I fear this is the reason for the unresponsive sensors.

What this post is about

We are going to install the DuetRRFPlugin, which is, as the name implies, a Plugin for Duet RepRapFirmare to use in Cura.

When we have this installed we can get the slized file uploaded and automatically started (or just uploaded to) on any of your Duet printers.


If you don’t have it, or know about it, I’ll recommed you head over to Ultimakers’ Cura download page and get it. I’ve tried pretty much all mainstream slizers, and some obscure ones. I even owned S3D for a while, when tinkering with the 5way full-coler Diamond Hotend, but got my money back, as S3D wasn’t for me at all.

Sorry, but here’s a bit of a rant!

I vastly prefer Cura because of it’s unified 1-window interface, where you control everything from 1 place and don’t have to dig into all sorts of menus and open different windows, to get what you want.

I recognize how It is a subjective thing when picking favorite slizer, as we are all different, but functional wise, Cura has more build in ready to use functions than S3D and you don’t have to code anything in Cura as you do in S3D, to get basic functions running.

I find it especially distatefull when people new to 3D havn’t even tried anything else are “recommended” to buy S3D without even having tried one or some of the free Slizers out there. This is the crux of my rant.

If S3D was free, as Cura is, I could understand how some people would choose it, and recommend it, as the fragmented GUI with different windows for different things appeals more to some people than Cura’s unified GUI does.

So why do I write this thing about how I prefer Cura over S3D?

Because I see a lot of new 3D People “being hoaxed” into using S3D as it surely must be better, since it costs money, right?
No, not really.
It gained a lot of early users and attention as it had build in profiles for lots of low cost printers and support, but by putting in an effort (talking to people online or using Google) most people would be able to setup their own machines in any other free slizer.

The support is for basic stuff only, and can’t help if you face some complex issue (low quality printer), nor help setting up complex stuff like 5 way diamond. They just refer to online written posts, which you have access to in any case, and which most likely isn’t relevant for your particular machine, as they are mostly written by users.

I know several people who started out using a free slizer and ended up favoring S3D, and I’m perfectly fine with that.

I just really dislike how new users are encouraged to cash out a lot of money for something before they at least have had the opportunity to try the free slizers.

Especially since the paid version objectively simply just isn’t better.

I recognize that some people experienced markedly improved results when using S3D and that’s just awesome. Super! But please, try to guide people new to 3D to try Cura or/and some of the other free slizers before asking them to pay almost as much for a slizer as many people pay for their printer.

Ohh, did I forget to mention that Cura is FREE and created and maintained by one of (if not the) leading 3D Printer manufacturers. They also comes with a lot of profiles now, but it really mostly just works without doing much of anything.

Cura theme

Once you have Cura up and running, you might notice my Cura is dark. While it’s not important to installing the plugin, you can change it by going through:

Preferences – Configure Cura – Theme: Ultimaker Dark

Click Close and restart Cura.

Install plugin (DuetRRFPlugin)

You install plugins in Cura by clicking:

  1. Toolbox – Browse packages…
  2. Now scroll down and click: DuetRRFPlugin
  3. Once you click DuetRRFPlugin, the plugin page shows up.
    Just click Install, accept the Plugin License Agreement and restart Cura.

Configure DuetRRFPlugin

  1. When clicking Extensions menu, you will notice we have a new submenu, namely the DuetRRF.
    Open the settings by clicking DuetRRF Connections
  2. In the new window, you click Add, then input the Display Name of your printer and the IP address it has on your network.
    The Display Name is just for your reference and not important. On a standard RRF setup you just ignore the last 3 options.
  3. After clicking OK, you will be presented with your settings.
    Verify you’ve picked the right IP address and close the window by clicking X.

Using the DuetRRF Plugin

  1. You won’t notice any change untill you’ve clicked Prepare to slize a file in Cura
  2. Now you can just hit Print on xBot-Medium to send the slized file directly to the 3D Printer and startup the print
    Click the down arrow for more options, like Simulate Print, Upload without printing or to Save file to local disk.
  3. If you add more 3D Printers, you’ll have the options to pick which printer you want to use

That’s it

That’s it for now. I’m back and you got a guide to install and setup a super plugin for Cura and as a bonus you also got a free rant about freeware and paid slizers 😉

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:


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


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.


  • 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.


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


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
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


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


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
; 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.

Posted on 2 Comments

BeTrue3D Printer build part 8 – Carriage for 5way Diamond Hotend

Putting the 5way Diamond together.

Aside from this one having 5 heatsinks and the previous version had 3 heatsinks, the method of assembly is the same.

I’m using some high temperature paste to coat on the Heater Cartridge, and fill up the hole for the Thermistor (I’m using a Thermocoupler).

The 5way Diamond will ship with a 60w heater cartrdige, but since they havn’t landed in Denmark yet, I’m using a 12v 30w E3D cartridge which will magically turn into a 60w 120w heater as I’m running my BeTrue3D Printer as a 24v system.

I have contacted E3D to hear about quality of their cartridges – wheter it can sustain the increased voltage/current through it. I can limit the voltage in firmware and hit the recommended 60w, but still need to hear from E3D wheter it’s ok or not.

I’m coating the heater cartridge in the paste, and insert it into the middle hole. At first I had no paste coming up, so I applied a good deal more and inserted it once again, while rotating it.


This time I had a deal of excess paste coming up, which I cleaned away using a cotton tip, and then inserted into the hole for thermistor/thermocoupler.

Putting the wires through the heatbarrier and opted to fixate the Thermocoupler wires onto the Heater wires

Screwing on the individual heatsinks, while making sure the Thermocoupler and Heater Cartridge stays in place.


Attaching 5way Diamond to Carriage

I’m first going to put a ø2,5mm drill through the holes I made to mount my 40mm fan. I then tapped the holes with an m5 tap to make it easier to mount the fan later on.


Afterwards I start by inserting a plastic zip-tie to hold the cables in place, once I clip on the entire assembly onto the Carriage.

Carefully putting the wire through the Carriage, without uprooting the Heater and Thermocoupler, and clip on the assembly. Making sure all 5 heatsinks has clipped on.


Securing the cables in place. The insulation is taking too much space, so had to remove some of it.


Once I’ve fixed the cables and made sure the heatsinks are all in place, I use a zip-tie to fasten each heatsink to the Carriage.

Attaching a fan

Normally you might use a 50mm fan, but I had this nice 40mm 20mm thick fan lying around, and made my carriage to fit.



Fasten Carriage to Y Sliders

Finally got the 5way Diamond hotend mounted on my printer and put the bowden tubes in it 🙂

Struds and wirework

I’m printing some struds to fasten the two X sliders on both sides as I write this, which are needed to make it work.

Here’s some images of the struds and some tidying of the wires and bowden tubes.

Future changes

I think I’m going to combine the Carriage with belt fastener. Not entirely sure yet.

My overall plan has always been to make a Carriage system where I can drop in change between the 5way Diamond and and E3D hotend and such, but not entirely decided yet, how it should work.

Regardless though, I need to make some mounting points for fans on either side of the nozzle.