Posted on 4 Comments

xBot Medium – Look at materials (custom BOM)

In this post I’ll start describing what is needed to actually build the xBot-Medium printer.

I’ve set up a xBot-Medium Github Repository where the files can be found for this project. As I havn’t finished it yet, all the files aren’t there, but they will be! Only the .STP files for the Dibond frame pieces and some a few for printed parts are missing, so it’s pretty much complete allready.

This post is going to be about the custom parts we need for the xBot-Medium 3D Printer. I’ll list the Electronics and Electrical and Mechanical parts in a later post.

xBot Medium materials can be categorized like this:

    1. Parts for Dibond frame
    2. Custom lengths of quality steel rods
    3. Custom metal/steel parts
    4. Custom aluminium parts

1) Parts for Dibond frame

The frame for the xBot Medium is made out of 6 pieces of Dibond pieces. We actually have 8 pieces when counting the Front Door and the Rear Z-Rod Cover, but these two are part of the Top and Front Dibond pieces respectively, as you’ll see here.

Note: Parts might deviate from designs on this page. Always refer to the xBot-Medium Github Repository for the current version

Back

Most items of interested are noted on the piece.

I’ve intended one the two GX16 to the left to be for the Wire harness for the Carriage. The other one for BLTouch or other sensor.

The four GX12 4-pin, two to either side, are meant for Belted Extruder v4.

Above the GX12 holes to the right are cut outs meant for a Titan Extruder or similar, which people can finish on their own if needed.

USB cutout is meant for a Panel Mount USB B Female socket to USB Micro B 5 pin male cable. Ie, giving you USB access to the board from the rear of the printer.

 Bottom

The bottom accomodates a host of cutouts to accomadte our various pieces of machinery and electrical stuff to make our printer.

The mountholes for powersupply is based on Meanwell HPR-450-24 which is a quality 18.8a low profile supply with temperature controlled fans, so it shouldn’t make unduly noise.

Aside from this, you’ll find cutout for 14×3.2cm Chamber heater and mountholes for SSR for the heated bed and of course for our Duet WiFi and Duex expansionboard.

I’ve designed special 3D printable mount parts for the controllers, which incorporates fixpoints for box/shield/fans or similar for the controller.

Lastly we have room for our 3x Z 280mm motors various Z rods and the Optional 3x Z-Max endstops.

Front

The front piece contains the Rear Z-rod Cover and the various mountpoints for the door.

At the lower part there are optional cutouts for a front facing USB for power, but an adapter for the rear USB panel mount could also be mounted here.

We also have room for a manual rocker switch to turn LED on/off.

Finally there are 2 holes for m3 screws placed 80mm apart to facilitate mounting of an LCD panel if you use one.

Left

Left panel contains mount points for the Y-Max endstop and a groove for wires from both the Y and X endstop.

We also have mount holes for our Left Motorshield and holes for the optional front left Z-max endstop.

And of course the motor driving the Y axis.

Right

Right panel is the most simple panel of all.

It contains the mountholes for the optional front right Z-Max limit stop and holes to fix the Right Motor Shield in place as well.

Top

The top piece has the Door inserted into the empty space.

I’ll strongly encourage to have the door made as it greatly improves all prints you make regardless of material. Even PLA benefits a lot from an enclosed room with a steady slightly raised temperature.

Aside from the Door, the Top contains mount holes for the X-Min endstop and holes for both the 2x 12mm Z rods and the 2x 8mm Z rods.

2) Custom lengths of quality steel rods

Next up is our list of 6, 8 and 12mm steel rods.

I know it’s tempting to buy some cheap chinese bundle of “chromed steel rods”, but please don’t. They are most often not straight and the tolerance is also off by default.

My impression: it seems they take normal 8mm steel rods and do a put a “coat” of chrome on it, making it neither precise nor particularily durable. My description on how they do it, might be totally wrong, but it’s the impression I have from many bad purchases for rods.

So, go shop at a place where they guarantee a certain qiality standard, namely h6. It’s a standard for tolerances and deviations allowed and such.

It’s especially important with tight tolerances as we are using bushings for our X and Y rods and sometimes the cheap chinese rods are simply “too fat” for the bushings to pass over.. conversely it’s no good if the rods are too thin either, or not straight.

I’ve allmost always had problems getting the cheap rods through the flanged bearings we use at the XY ends as well.

I’ve ordered all my rods from Dold-Mechatronik this time around and I must say the quality is truely impressive!

The tolerance is 9um (micrometer) which means accuracy within 0.009mm. In other words these rods are high quality steel rods, ground and polished with a superb finish!

# Pieces

Drawings

 x2

 2x X-rods 8mm in diameter. Each of them 367mm long. They run from side to side.

x2

 2x Y-rods 8mm in diameter and 358mm long. They run front to back in both sides

 x2

 The two front 8mm rods for Z axis. 339mm long. Runs near each front z motor.

x2

 The two 12mm diameter and 339mm long rear Z-rods. Placed on either side of the center rear Z-motor.

 x1

 
 A single 6mm diameter 327mm long rod running left to right for our Carriage (thing that carries the hotend and fans etc)

 x1

 
 A single 6mm diameter 301mm long rod running from front to back for our carriage.

3) Custom metal/steel parts

Next up is a few pieces we need to have custom made as well. The most important parts are the 4x steel pieces used to keep the four Z rods in place.

The Motorshields are not just for show though, but are intended to partially keep out the heat from the heated chamber while keeping the XY motors cooler using a temperature controlled 40mm fan under each motor. Doing this as the motors performs best and last longer if we can keep their temperature under 40c.

I’ll most likely design some printed versions of these.

# Pieces

Drawing

x1

Left motorshield. There is room for 48mm long motors making it possible to use quality 0.9 steps Nema 17 motors!
2 m3 threaded holes in each side of the shield for fastening onto the frame in addition to two spuds at the bottom for fastening onto the Bottom frame part.

x1

Right motorshield. There is room for 48mm long motors making it possible to use quality 0.9 steps Nema 17 motors!
2 m3 threaded holes in each side of the shield for fastening onto the frame in addition to two spuds at the bottom for fastening onto the Bottom frame part.

x2

2 pieces of 2mm thick steel plates to hold the 8mm Z-rods in place. There is a m3 threaded hole in each end of the plates to keep them in place.

Note: If you can’t have some made in 2mm steel, then have them made in 4mm thick aluminium. The files for these are located in the xBot-Medium Github Repository

x2

2 pieces of 2mm thick steel plates to hold the 12mm Z-rods in place. There is a m3 threaded hole in each end of the plates to keep them in place.

Note: If you can’t have some made in 2mm steel, then have them made in 4mm thick aluminium. The files for these are located in the xBot-Medium Github Repository

4) Custom aluminium parts

We have 2 custom aluminium parts we need to make for the Z-stage. The Heated bed and the Z-liftplate.

You can use a heated bed from Ultimaker 2 if you choose, but I personally strongly prefer the option with 4-5mm aluminiumplate and an AC under it.

# Pieces

Drawing

#1

I’m using a PEI-coated 5mm thick aluminium plate from clever3d.de with a 500W AC Keenovo silicone heater under.
I’m recommending using an AC/mains heater, as you remove the stress from your PSU and electronics, meaning it’s easier to cool and you can do with a smaller PSU than you’d otherwise need or run your existing PSU without noisy fans. Note the temperature sensor sits in the middle of the pad and in my experience it shows about 10c more than the actual surface of the bed. At least for a good while.I havn’t shopped at Aluminiumwarehouse.co.uk but they have nice prices on their parts and their Ecocast plates would do perfectly for this as well. (choose CAST from dropdown menu.

#1

The Z-liftplate is a bit complicated due to the 3 motors, 4 support rods, 3 holes for screws to hit the Z-end stops and the 3 point Finger Screws to adjust the bed.
I’ve not made cutouts to make it lighter or similar, as it’s mostly for show anyway, but also because the extra cutting takes more time and so costs more money to make.

That’s it untill next time

You can find all the source files in the xBot-Medium Github Repository.
In the next post we will take a look at the Electronics and Electrical and Mechanical parts.

Posted on 15 Comments

xBot Medium – A new printer is baking!

Wow, been quiet for a while, and guess what, I’ve been busy working on completely new printer build, using the best I could find from the Open Source world and added on features I’ve been missing, like true autolevel and front hinged printbed in addition to the back mounted Z-stage on the Ultimaker machines.

  1. Ultimaker as primary source
  2. Design goals and specifications
  3. What can be improved on this package
  4. Dimensions of the xBot Medium next to Ultimaker 2+
    1. Dimensions
    2. Build Volume
    3. Printer and Printing Properties
    4. Materials
    5. Requirments
    6. Print Surface
    7. Controller Type
    8. Motor
    9. Firmware
    10. Powersupply
    11. Chamber
    12. LCD and SD
  5. Compatibility
  6. Fine Touches
  7. What’s next?

Note: Please note that some details has been changed during the design and buildphase. 

Ultimaker as primary inspiration

There, I said it. Ultimaker machines. This means I’ve been inspired by the Ultimaker 2 Open Source panels and did a complete workover to make it all match my needs. In all honesty it looks like a normal Ultimaker frame at first look, but when digging in the main left-over features are the hidden nuts and slot in system by the individual plates. Even those are placed totally different, so it’s only really the concept used. And of course the material used; 6mm Dibond.

Of course; the construction method is one of two things making the Ultimakers what they are, so it would be silly to change these for something else!

Design goals and specifications

The second thing making Ultimakers the best, is how they have, in my opinion, the best XY design of all Open Source printers on the market. They do not risk skewing the axes when changing direction and have build in self-adjustments.

In my optics it’s the best as it’s rock solid, simple to design and setup and requires next to no calibration or maintenance. You can move the printers around all day long, hook it up and print without any adjustments.

I even shipped one of my Ultimaker 2+ machines (clones) across the country. The buyer opened the box, hooked it up and printed right away. No calibration or adjustments needed! Even did the same trick a few weeks later, so yea, they really are rock solid and requires next to no calibration. Except for bed level!

The way the XY is incorporated into the very sleek case with hidden nuts, makes all axes very sturdy, which contributes to the unmatches printing quality of these printers.

During the designface I managed to make room for 48mm deep Nema 17 motors, which meant we can use high quality 0.9 degree steppers (17HM19-2004S) now! Previously we could only get 40mm motors where all 0.9 degree motors (I have ever seen) has very high Inductance mH, which really must be under 4mH to get acceptable performances.

All in all it just makes for an incredible appetizing package with both functionality and visual design at the fore.

What can be improved on this package?

There’s not much to change on the physical level, but the Z axis has always been the achilleius heel of the Ultimaker printers. It’s only fixed at the rear side and while the the Z rods has moved up in size from 8mm to 12mm, which improved a lot, the stability is just not as good as it could be.

I’ve previously fixed the Lead-screw at the top, which helped stabilize the Z some, but the leadscrew is not meant for this kind of usage. Especially bad if using a poor quality lead-screw which isn’t all straight.

I also created a method of using an Anti-backlash nut. Later on in the UM2+ and UM3 machines something similar appeared in the form of the T8*8 Delrim nut.

The Brass version of Anti-Backlash nut has become very cheap and more popular as it’s a drop in replacement to the normal Brass nut.

I’m a big fan of these Brass Anti-backlash nuts as they are cheap, drop in replacements and they compensate for both bad quality you might have in your lead-screws (and backlash nuts) and for the wear the nuts especially are going to be subjected to over time. Using regular nuts the gaps between the ridges steadily increase with wear and tear, leading to inaccuracies, especially when using z-hop, but the spring compensates for this kind of wearing down.


I’ll be using 3 of these Brass Anti-backlash nuts for the xBot Medium

To truly overcome this challenge I wanted to add 2 extra Z motors with additional z rods at each front corner, for a total of 3 Z-motors and 4 Z-rods, to make it more stable and also to build in the option for true auto-level function.

All without making the machine huge and bulky!

Some challenge, uhh?

Dimensions of the xBot Medium next to Ultimaker 2+

Note/Disclaimer: All info and images of/about the Ultimaker is from Ultimaker 2+ specificatiosn page and the Printer Comparison Page. They belong to Ultimaker and all credits goes to them. I am in no way affiliated with Ultimaker and I solely show the info here to show where I came from.

I have tried making the below table to illustrate and explain the changes and differences between the super nice Ultimaker 2+ and the xBot Medium I’m building.

Specifications

Ultimaker 2+

xBot Medium

Dimensions

Dimensions with bowden tube
and spool holder:
34,2cm (width) x 49,3cm (depth) x 58,8 cm (height)
(13.5 x 19.4 x 23.1 inches)
Weight:
11.3 kg (399 ounces)

Dimensions with extruder, bowden tube and spool holder
36,8cm (width) x 50,3cm (depth) x 42,8cm (height with 1,75mm)
Note: Height is up to 20cm more if using 3mm filament

Build Volume


Dimensions:
223 x 223 x 205 mm
(8.8 x 8.8 x 8.1 inches)

Dimensions:
223 x 223 x 205 mm
(8.8 x 8.8 x 8.1 inches)

Printer and Printing Properties

1x 2.85mm Geared Feeder

Open filament system

180 °C to 260 °C
Olsson’s Block
Up to 4x Belted Extruders v4 and 1x Titan or similar in any combination of 1.75 and 2.85mm

Open filament system

180 °C to 500 °C

E3Dv6 Full-MetalHeated Chamber

Materials

PLA, ABS, CPE, CPE+, PC, Nylon, TPU 95A, and PP  PLA, ABS, CPE, CPE+, PC, Nylon, TPU 95A, PP and Breakaway (all materials)

Requirments

Ultimaker Cura or other Slizer

File transfer: Standalone 3D printing from SD card (included) or USB

Ultimaker Cura or other Slizer

File Transfer: WiFi drag and drop for standalone 3D printing.

Optional printing from SD card if the optional PanelDue is in use.

Print Surface

Heated Bed: 100w (24v 5a) 2mm aluminium heater.

Print Surface: 4mm Borosilicat/Tempered Glass. Optional Fiberplate FlexiPlate etc

Guided leveling of buildplate

Heated Bed: 500w (240hz AC (Mains) via SSR) Silicone Keenovo heater under 5mm milled Aluminium plate.

Print Surface: PEI-Coated Aluminium plate. Optional 4mm Borosilicate glass or Fiber plate etc.

You can use Ultimaker 2 heated bed if you so choose. Same mountpoints.

Full true automatic autolevel.

Controller type

Ulticontroller – 8bit

5x a4988 drivers and 3x PT100 amplifiers.

Controller Duet WiFi – 32 bit

5x TMC2660 drivers.

Thermocoupler Daughterboard for 2 Thermocouplers.

Using Duex2 or Duex5 for full use of autolevel and multiple extruders.

Motors

1.8 degree motors for XY.
Single linear motor for Z
1x 0.9 degree motor for Extruder
High quality 0.9 degree motors (17HM19-2004S) for XY from OMC-Stepperonline.com
3x linear motors for Z for true autolevel function
1-5x motors for extruders.
For 1.75mm filament: 17HM08-1204S
For 2,85/3mm filament: 17HM19-2004S

Powersupply:

 External Meanwell 24v 15.8 (black brick type) Internal Meanwell 25v 18.9a with temperature controlled cooling.

Firmware

 Ultigcode/Marlin firmware  RepRapFirmware

Powersupply:

 External Meanwell 24v 15.8 (black brick type) Internal Meanwell 25v 18.9a with temperature controlled cooling.

Chamber

100w Temperature controlled Heated Chamber
Door in Dibond with acrylic window

LCD and SD

 Small LCD control panel with SD card  Optional PanelDue color touch display with SD card.
options: 4,3″, 5″ or 7″

Compatibility

To the best of my abilities I’ve kept it as close to the Ultimaker 2 as I could. This means most things can be directly reused, if you have build a previous UM2 clone, like belts, pulleys, heated bed, finger screws, screws/nuts , XY endstops, all the bearings and the thick 12mm Z rods.

Also using same Z motors, although the xBot is using 3 of those.

You can even reuse your extruder if you have a Titan or UM2 extruder, allthough I do recommend using my Belted Extruder v4 as it’s way more quiet and performance just as well.

Fine Touches

In the back plate there are holes if you want to use an extruder as in the normal Ultimaker machines. I havn’t sunk the holes all the way through for Titan extruder, but they are marked up on the files, so it’s easy to remidy it.

Same goes for the various Optional settings in other plates like front USB plug, manual LED on/off switch and the two optional mount holes for PanelDue, if you choose to use one.

Instead of full wire draws I’ve opted to use the Aviation plugs in sizes GX16 for the wireharness up to the Carriage for Heater Cartridge, Temperature sensor, heatsink fan and printed object fans. A second GX16 for the BLTouch or some other sensor as well.

I’ve used 4x GX12 4pin Aviation plugs for the 4x top mounted Extruders on the rear side, and also a single GX12 4pin connector, installed in the bottom part of the frame, next to the Chamber heater vent, for the 4 wires up to the heated bed.

Here are 2 photos from a different machine to illustrate how the GX12 plugs will be placed on the rear side. All the wires going through on the photos here, will be replaced with the larger GX16 Aviation connectors.

What’s next?

I have ordered linear motors and parts from Robotdigg, quality steel rods from Dold Mechatronic and have put in an order for the Dibond plates here in Denmark with a private person, so can’t link to him… so now it’s just waiting time for me over Christmas.

The X and Y motors are high quality 0.9 degree motors (17HM19-2004S) from OMC-Stepperonline which can fit in there due to room for 48mm motors compared to Ultimaker’s room for 40mm motors only.

.. or.. Actually I’m busy working on creating documentation for a Github page for this project where alle the relevant files will be publicly available.

I have in fact allready created a Repository for the xBot Medium on Github and started putting various files and info in it, so please stay tuned.

The STEP files for the side panels will not be made publicly available untill I’ve tested them.

Stay tuned, here, maybe on my Facebook channel and on the Github repository as well 🙂

Merry Christmas to everyone 🙂

 

Posted on Leave a comment

Duet WiFi – Activate and connect the WiFi… when it doesn’t work!

Guess we’ve all tried it.. just can’t get the WiFi to connect to our home network. Especially after a firmware upgrade.

For some reason the non-macro manual method doesn’t always work, and I’ve learned that the most simple solution then, is to create a macro file with the needed info and execute the macro.

This post is a boiled down version of my Duet WiFi/Eth – Recover from Erase + basic setup post.

Macrofile for networksetup

  • We need to create a small macrofile to make it connect to our WiFi.
    I tried doing this manually without the Macro, but I simply just could not get it to connect..
  • So, go to your Macros folder on your SD card and create a new file named SetNetwork containing the following commands (without spaces before or after the commands on each line):
    M552 S0
    G4 P1000
    M587 S"your-network-ssid" P"your-network-password"


    Source info
  • Now eject the card from your computer and insert it into your Duet WiFi and connect it to your computer using the USB cable

Activate WiFi

  • Connect to your Duet WiFi using Pronterface and type M552 S0 to start the WiFi module
    M552 S0
    SENDING:M552 S0
    WiFi module started
  • Type in M98 P/macros/SetNetwork to execute the macro we created
    >>> M98 P/macros/SetNetwork
    SENDING:M98 P/MACROS/SETNETWORK
    WiFi module started
  • Send M587 and check that your network is listed
  • Send M552 S1.
    After a few seconds you should see a message that it has connected to your access point and display the IP it has recieved.
  • Connect via the web interface
  • Enable the M552 S1 command in config.g – if it’s not in there, then just make a new line and type it in.
  • For security reasons you might want to delete the SetNetwork macro file

SD Card Folder Structure

It’s usefull to know how the structure is supposed to be on the SD-card and also to know the function of each of the files and more info.

All this is shown on the SD Card folder structure wiki page

Posted on Leave a comment

Ultimaker – Fintuning nozzle distance from bed

This small blog-post guide can be used with any printer using the standard Gcode system.

I’m simply writing it in regards to Ultimaker as the issue has arisen from using these machines and their special kind of bed adjustment, which doesn’t provide any tools to do fine final adjustments.

Tools needed:

Pronterface/Printrun

Go to their website and download the program for your system. File downloads for Windows, Linux and MAC.

You can also go and visit their Github repository if you want to.

After installation you select proper Com port and Baud if/as needed and hit Connect.

Z-offset

When you connect you automatically get a detailed readout of current settings.

I’ve noted the Extruder steps/mm as many would like to adjust these some.

The current Z-offset as defined during setup of myUltimaker is Z-12.45. The nozzle needs to be a tad closer to the bed, so I’ll change the Z-offset to Z-12.40 as raising number is closing in the distance, while lowering the number increase the distance.

Adjust Z-offset

We are using M206: Offset Axes to change the Z-offset.

We simply type M206 followed by the new value of Z-12.40
M206 Z-12.40

Save changes

Now use M500 to save the new settings to Eeprom in order for the changes to be in place after poweroff.
M500
It will all look like this in Pronterface serial window:
>>>M206 Z-12.40
SENDING:M206 Z-12.40
SENDING_M500
echo:Settings Stored

Reconnect to verify changes are now changed. Might want to unplug USB and power the printer on and off to verify the changes are stored correctly as well.

Posted on 2 Comments

Duet WiFi/Eth – Use M584 to autolevel or sync Z-axis using 2 or more motors

I originally planned to use 3 seperate Z-motors for my BeTrue3D Printer project back last christmas, but since I’m using some special hollow Nema 17 and bespoke 1204 Ballscrews + top-fixing blocks the price would be like $100 for one extra motor on the Z-axis.

The money was just one concern. One which I could have overcome (by waiting some) if I wanted to, but it would also cause the printer to be much deeper without giving me larger printing area, and so it wouldn’t fit on my desk.. which was a primary requirment!

A rather big issue was how the RepRapFirmware at the time did not support this form for autolevel and there was no date for when it might be available.

Anyway, here’s a blog-post about it. I’ll at some later date make some youtube video to show how it works, so stay tuned! 🙂

  1. Independent Z-Motors
  2. Is this autolevel?
    1. Autocompensation
    2. Autolevel
  3. My usage of 2x Z-motors
    1. What am I going to do here exactly?
    2. Why? Is it even needed?
    3. How is this going to work in practice?
  4. Motor remapping for dual Z
    1. Physical Drive Connection
    2. Use M584 to remap the drives
    3. Configure Drives
    4. Endstop setup
  5. Example setup for non-duex user
  6. New Homing files

1) Independent Z Motors

It all ended up with me using 2 independent Z-motors.

I started out driving both from the same Z-driver but installed a limit-switch at each motor, which would be at Z-max, and planned how to trigger them using identical screws on both sides, mounted down through a threadded m3 hole in the Z-gantry for just this purpose.

The screws can of course be turned some, if fineadjustment is needed. I used some Loctite Threadlocker (open UK Ebay) to make sure it didn’t rattle loose.

2) Is this autolevel?

You might ask if this is autolevel by now, as it looks completely different than what you are used to see with a probe or sensor or similar..

Autocompensation

We normally see some sort of sensor near the hotend, which probes places around the bed and then compensate according to how uneven the printbed is.

This sort of automation is more correctly called autocompensation as it can compensate for various erros, most often just for a non-flat printbed though.

The compensation for non-flat surface is achieved by compensating for these errors by gradually, over the first xx layers flattening out the area on which it is printing. Ie, some areas are printed with a thicker layer than on others. After xx layers it can start printing normally

There are more to this, and different methods to compensate for non-square frame and axes etc, but this is beyond this blog-post

Autolevel

Autolevel on the other hand is when one or more sensors determine the posistion of the printbed and by using 2 or more motors makes it completely level compared to the XY axes.

You would want to use 3 or more motors to make most out of this Autolevel function.

A short note on using Autolevel: functions with RepRapFirmware: The M320 autolevel gcode is not currently implemented in the firmware, and seems it’s not going to be either, as the current functions G29-G32 is fullfilling the same functions more or less. Currently only Repetier firmware is making use of the M320-322 gcodes.

3) My usage of 2x Z-motors

As I talked about previously I selected to only use 2 Z-motors and the function to use these for Autolevelfunctions were recently made available in the RepRapFirmware via the M584: Set drive mapping, so now I’m in business!

In all fairness, the M584 has been around for some time, but I’ve been waiting for a finished sort of system for autolevel, which, as it turns out (see note above) is not going to be implemented, so here I am!

What am I going to do here exactly?

I’m going to home my Z-axis to Z-max and make each motor make use of it’s own endstop in order to make sure each end of the Z-axis is synchronized.

Why? Is it even needed?

In my optics, yes! Asolutely. Any machine using more than 1 z-screw should have this implemented.

Problem with multiple independent z-motors, yes, and even multiple axes driven by a single belt, is that one or more of the axes might get turned a bit. It can happen if you accidentially push on the plate or turn the screw, if you happens to move the z faster than it likes and one motor or screw skips a step or belt etc.

It might also be that your axes aren’t 100% to begin with, so you need to synch them up before each print, which you can do with this method.

How is this going to work in practice?

I’m going to use 2 different drivers for my Z-motors and use the associated Endstop connectors for these drivers as well. This is accomplished by using the M584 to define virtual axes.

It means we include both Z-motors in the original Z and then make a virtual axis for one of these motors in order for them to be able to move as one, but also make use of each motors’ own limit switch in order to make sure they are synchronized.

Motor remapping for dual Z

Before we get down to using M854, we need to use the M569 to define/check our physical setup.

Physical Drive Connection

My setup/explanation:
  • Drive 0-1 as X and Y, which are standard.
  • Drive 2 as left motor, which is normal Z
  • Drive 3 as Right Z-motor, which is normal Extruder0
  • Drive 4 – Standard Extruder1 – I am not using this, as all my extruders are on Duex5
  • Drive 5-9 – My extruders on Duex5


; Define Drives
; Physical Drive connection
M569 P0 S1 ; Drive 0 X
M569 P1 S0 ; Drive 1 Y
M569 P2 S0 ; Left z-motor (original Z)
M569 P3 S0 ; Right z-motor (Ex0)
; M569 P4 S0 ; EX1 - unused
M569 P5 S1 ; Extruder0 - Physical Tool 0
M569 P6 S1 ; Extruder1 - Physical Tool 1
M569 P7 S1 ; Extruder2 - Physical Tool 2
M569 P8 S1 ; Extruder3 - Physical Tool 3
M569 P9 S1 ; Extruder4 - Physical Tool 4

Use M584 to remap the drives

To make this all work, we need to tell the controller how we have conencted our physical connectors:

How to do this:
  • We are starting the new line, which we place under our M569 section above, by issuing the M584 gcode.
  • Then simply go through and use the definitions we made above.
  • X0 – Using Driver 0 as X
  • Y1 – Using Driver 1 as Y
  • Z2:3 – This is the new part, where we define that we are using both Driver 2 and 3 for our Z. This means both are used when hitting the move Z buttons.
  • U3 – We assign driveletter U to our second Z motor, using Drive 3.
    • When using virtual drivenumbers we can’t just come up with some random letters.
    • As of firmware 1.19, we can use UVWABC letters – in that order!
  • E5:6:7:8:9 – Defines how all drivers on the Duex5 are Extruders.
  • P3 – This defines the number of visible axes in our GUI, starting from the first, meaning the visible ones are: XYZ, while the 4th axis U is not shown up in the GUI.
    • You might want to have U visible at first in order to verify your new setup.

; Motor remapping for dual Z
M584 X0 Y1 Z2:3 U3 E5:6:7:8:9 P3 ; Driver 0 For X, 1 for Y, Z=2:3 U=3, Extruder 5-9

Configure Drives

Next step is to configure our machine to use 2 drivers instead of just 1 and to add the new U drive to our Drives configurations.

What you need to do now, is setup microstepping, steps/mm and all other such settings as if you have 2x Z-drives and 1x U-drive

Endstop Setup

Last item in our config.g we need to change is the Endstop configuration. Contrary to above, we do not define a second Z here (As we only have 1 z endstop), but instead just add the U endstop. It’s important that Z and U homes to same end; in this case at Z-max.

Example configuration for non-duex users

This section is a cleaned up section for all the non-duex owners, so you don’t have to sit and sort out my Duex5 config.

Just use the explanations for the Configure Drivers and Endstop Setup just above here.

Explanation:
  • Drive 0-1 as X and Y, which are standard.
  • Drive 2 as 1st Z-motor, which is normal Z
  • Drive 3 as Extruder0
  • Drive 4 as 2nd Z-motor – this is normally Extruder1


; Define Drives
; Physical Drive connection
M569 P0 S1 ; Drive 0 X
M569 P1 S0 ; Drive 1 Y
M569 P2 S0 ; 1st z-motor (original Z)
M569 P3 S0 ; Extruder0
M569 P4 S0 ; 2nd Z-motor - Normally used as Extruder 1

 

  • X0 – Using Driver 0 as X
  • Y1 – Using Driver 1 as Y
  • Z2:4 – This is the new part, where we define that we are using both Driver 2 and 4 for our Z.
    • This means both are used when hitting the move Z buttons.
  • U4 – We assign driveletter U to our second Z motor, using Drive 4.
    • When using virtual drivenumbers we can’t just come up with some random letters.
    • As of firmware 1.19, we can use UVWABC letters – in that order!
  • E3 – Defines Extruder0 as our extruder.
  • P3 – This defines the number of visible axes in our GUI, starting from the first, meaning the visible ones are: XYZ, while the 4th axis U is not shown up in the GUI.
    • You might want to have U visible at first in order to verify your new setup.

And the code to copy/paste:

; Motor remapping for dual Z
M584 X0 Y1 Z2:4 U4 E3 P3 ; Driver 0 For X, 1 for Y, Z=2:4 U=4, Extruder 3

New Homing files

It’s important we remember to create new/modify our homing files to match our new setup.

In particular we need a new Homez.g and a modified Homeall.g.


And the code for easy copy/paste:

G91 ; Relative mode
M584 Z2 ; Split Z into 2 (Z+U)
G1 Z250 U250 F2000 S1 ; Move up to 250mm in the +Z direction. S1 to stop if endstop is triggered
G1 Z-2 U-2 F600 S2 ; Move 2mm in the -Z direction - (I'm not sure what S2 is for?)
G1 Z3 U3 F100 S1 ; Move slowly 3mm in the +Z direction, stopping at the homing switch
M584 Z2:4 ; Join U to Z again (pay attention to drive numbers used)
G1 Z-5 F3000 ; Move back again 5mm in the -Z direction
G90 ; Back to absolute mode

You need to update your Homeall.g files accordingly as well.

Posted on 2 Comments

Duet WiFi/Eth – PID tuning hotend

Since I just changed my old cartridge for a 24v 80w heater on my 5way Diamond hotend and used High Temperature Liquid Gasket Silicone as a sealant on the heatsinks and the Diamond nozzle itself, as is clearly evident on the photo, I need to do a new PID tuning, which is a good starting point for writing a short blog-post on doing just that.

  1. Gcodes used
  2. Prepare for PID tuning
  3. PID-tune hotend heater
    1. Parameters
    2. Heater to tune
    3. Power
    4. Target Temperature
  4. Parameters to use and store in config.g
    1. New PID-Tuning
    2. I’ll add this in my Heaters/Hotend section
  5. Debug – Failing to tune?
    1. Temperature was not reached
    2. Starting temperature is not stable
    3. Over-powered and a fire risk

1) Gcodes used

  • For the actual PID tuning, we are going to use M303
  • M307 H1 to display the parameters we garnered from the PID tuning.
  • Finally you could use M500 to store the parameters in a config-override.g file, which matches the old school Eeprom M500, and overrule the settings in config.g file.
    • I personally have an aversion to this sort of having configurations stored in different places. Especailly for core parameters that shouldn’t change.
    • In my opinion it just leads to confusion as people tends to forget they have anything stored in the override file and can’t figure out why the printer doesn’t accept the new parameters written in the config.g file.

2) Prepare for PID tuning

I prefer to put my hotend close to the heated bed, heat the bed to my most used temperature and then turn on the object-cooling fans at maximum before doing a hotend PID-tuning.

Why you might ask?

I prefer to similuate actual printing situation to get a PID tuning that most closely matches the actual usage scenarios of my printer.

3) PID-tune hotend heater

Parameters

Hnnn heater number
Pnnn PWM to use, 0 to 1 (you should normally use 1 i.e. full power)
Snnn target temperature

Heater to tune
To actually do a PID tuning we need to use the M303 command followed by H1 to denote the heater used, which is the first heater.

If you PID tune your bed, it is H0 by default.

Power
Next we need to define the amount of power we feed our heater cartridge. This is denoted by P followed by a number like P1 for 100% power and P0.5 for 50% power.

RepRapFirmware used to be very, very restrictive regarding power setting. I had to put it at P0.1 (10%) to do a succesfull tuning in january, but His time I could run it at P1 (100%).

Target temperature
Finally we need to define target temperature using S followed by temperatures in celcius like S220 for 220c. Target the temperature you use the most. So 200ish for PLA if that is what you print, or 240 or something like that, if you mostly print ABS.

It means I’ll tune my to 200c at full power like this (mine failed when target was 220):
M303 H1 P1 S200

Sequence is from the bottom and upwards

4) Parameters to use and store in config.g

As mentioned above I’m not a fan of using the M500 to store in config-override.g method, so I’ll get the result from the PID tuning using M307 H1 and put it into my config.g file.

It all seems a bit confusing to be sure

Lets look at the top line, which is the one we are going to be using:
Heater 1 model: gain 188.4, time constant 121.7, dead time 1.4, max PWM 0.50, mode: PID

This translates into:

  • M307 H1 for Heater 1
  • A188,4 for Again
  • C121.7 for Constant
  • D1.4 for Dead time
  • and S0.5 for max PWM

* Default is PID for hotend, so we don’t need to write parameter for this.
* Default for BED is Bang-Bang method, so you’d have to add B0 in the end, to force it to use PID.

M307 H1 A188.4, C121.7, D1.4 S0.5

I honestly do not know why it puts max power at 50%, so i’ll put it at S1 (100%) and use the new parameters to do a new PID tuning like this:

M307 H1 A188.4, C121.7, D1.4 S1

4.1) New PID-Tuning

Saving config.g with the above parameters I’ll run a new PID-tuning target at 220c like so:

M303 H1 P1 S220

I ended up with new parameters with full power on my heater:
Heater 1 model: gain 375.3, time constant 125.9, dead time 3.8, max PWM 1.00, mode: PID

This translates into:

  • M375.3 H1 for Heater 1
  • A125.9 for Again
  • C125.9 for Constant
  • D3.8for Dead time
  • and S0.5 for max PWM

Which means we are going to add this line to our config.g file.

M307 H1 A375.3, C125.9, D3.8 S1

4.2) I’ll add this in my Heaters/Hotend section.

So, this is ho my Hotend section turned out looking 🙂

5) Debug – Failing to tune?

There are different reasons why it migh fail to tune.

Temperature was not reached

Auto tune cancelled because target temperature was not reached Heater 1 switched off

Solution: Try using a lower temperature. It might fail if it took too long to reach the target temperature.

Starting temperature is not stable

Auto tune cancelled because starting temperature is not stable

Solution: You need to wait for temperature to get almost back to room temperature before trying again.

Over-powered and a fire risk

Warning: Heater 1 appears to be over-powered and a fire risk if left on at full power, its temperature is predicted to reach XXXc

Solution: Lower the value of the P parameter, which is the current you feed your heater during testing

Posted on Leave a comment

Duet WiFi/Eth – Recover from Erase + basic setup

I accidentially hit the Erase button on the edge of my Duet WiFi card, which means it wiped my firmware from the controller! Luckily it didn’t wipe my SD card, so my config files didn’t go missing on me.

I still need to setup my controller again though, and while I previously did write a blog-post on doing that, it was a long time ago and a lot has happened since then on how things are done, so I decided to do a new writeup on it.

Also, since it wiped the firmware from the controller, I am now unable to connect to it the regular way, which we need to solve.

Contents

  1. Download firmware and drivers
    1. Install drivers
    2. Rename firmware files
  2. Download relevant programs
    1. Pronterface/Printrun
    2. SDFormatter
    3. SAM-BA v2.17
  3. Write new firmware using SAM-BA
  4. Getting SD-Card Ready
    1. Format SD-card
    2. Copy over SD-Image files
      1. Rename printerfolder
    3. Put firmware files on the SD-card
    4. Make ready for Duet Web Interface
    5. Macrofile for networksetup
  5. Install WiFiserver and activate WiFi
  6. SD Card Folder Structure

1) Download firmware and drivers

  • In order for your computer to communicate with the controller using USB, we need to get the drivers from DC42s Github driver folder.We also need to download the newest firmware and it’s a good idea to download the SD-Image folder to give us a new set of files for our now defunct printer.All in all, it is easiest to just click the Clone or download on the main RepRapFirmware Github page and select Download Zip, which you extract somewhere easy to find and use.
  • In the directories you just unzipped go into RepRapFirmware-dev/Driver folder and right-click on duet.inf and select install to install the drivers.
  • Browse down through RepRapFirmware-dev/Release/Duet-WiFi/Stable and rename the files:
    • DuetWiFiFirmware-1.19.bin to DuetWiFiFirmware.bin
    • DuetWiFiServer-1.19.bin to DuetWiFiServer.bin

2) Download relevant programs

  • Pronterface/Printrun

    In the Getting connected to the Duet WiFi they suggest using a dedicated terminal program to setup the controller/firmware, but I really much prefer using Pronterface/Printrun, as it also has pure terminal function and in my world is essential to configuring and checking any 3D Printer.

    I vastly prefer it over any form of terminal function in all slizers as the slizers comes with some configured settings which can screw up the result you get when moving and axis or sending a command to check a function.

    So, go to the download page for Pronterface/Printrun 3D Printing Host Suite and select the version fitting for your type of computer.

    To use Pronterface/Printrun you just need to extract/unzip the file and run the pronterface.exe file

  • SD Formatter 4

    Note: The program is named SD Formatter 4, but they have a version 5, which is a bit strange.

    Some of you  are going to wonder about why we need a dedicated program to format the SD card, and the answer is quiet simple: To avoid/minimize the risk of the SD card turning bad, either turning completely unuseable untill reformatted, or just performs really bad, with slow speeds.
    The program simply just does a much better job of preparing SD cards correctly and it can even fix many annoying problems many people experience now and then on their printers.

    Go to the SD Formatter (4/5) Download page, scroll down and download and install the version for your system.

  • SAM-BA 2.17

    Since I hit the erase button on the Duet WiFi I can no longer talk to it using Pronterface, as we first need to burn the firmware onto the controller using SAM-BA 2.17. I don’t know why it has to be 2.17, but the specific version is listed on the Fallback description on the Duet wiki. Install it after downloading and leave it open.

3) Write new firmware using SAM-BA

Note: This step is only necessary if you cannot connect to your controller after having hit Erase

  • Connect the Duet WiFi to your PC via USB.
  • Press the Erase button on the Duet WiFi, then the Reset button.
  • Load SAM-BA. It usually detects the correct COM port automatically. Select board at91sam4e8-ek. Press Connect.
  • In the Send File Name box enter or browse to the DuetWiFiFirmware.bin file to be loaded, then press Send File (leave the Address at the default of 0x400000).
  • On completion it will invite you to lock the region; press Yes.
  • To verify the writeprocess press Compare sent file with memory.
  • Press the Execute button next to the Boot from Flash option in the Scripts box. Then exit SAM-BA.
  • Press Reset on the board.
  • You should now be able to connect via USB/Pronterface.
    Try sending the M115 command to check firmware version

Source for this section was found on the Duet Wiki.

4) Getting SD-card ready

  • Format your SD card using SD-formatter – remember to copy out any config-files you might want to save.
  • Now navigate to the folder RepRapFirmware-dev\SD-image you downloaded in Step 1.
    • Copy the entire content to your SD-Card
  • My printer is a CoreXY, so I’ll rename the sys-CoreXY folder on the SD-card to plain sys

 

Put firmware files on the SD-card

  • Copy over the 3 .bin files from RepRapFirmware-dev/Release/Duet-WiFi/Stable we renamed in Step 1.2 and put them into the newly named sys folder

Make ready for Duet Web Interface

  • Turns out the www folder is rather deprecated and didn’t work at all, at my place, so delete the www folder on the SD-Card
  • Now go to RepRapFirmware-dev\Release\Duet-WiFi\Stable and unzip the DuetWebControl-1.19.zip file
  • Rename ths folder to www and copy it onto your SD-Card

Macrofile for networksetup

  • We need to create a small macrofile to make it connect to our WiFi.
    I tried doing this manually without the Macro, but I simply just could not get it to connect..
  • So, go to your Macros folder on your SD card and create a new file named SetNetwork containing the following commands:
    M552 S0
    G4 P1000
    M587 S"your-network-ssid" P"your-network-password"


    Source info
  • Now eject the card from your computer and insert it into your Duet WiFi and connect it to your computer using the USB cable

Install WiFiserver and activate WiFi

Now it’s time to install the DuetWiFiServer onto our board to enable the usage of WiFi

  • Connect to the DuetWiFi using Pronterface and issue the command M997 S0:1 which is going to install/update both firmwares.

Note: I know we allready have the newest DuetWiFiFirmware on it, but easier to remember just one command.

  • Wait for it to finish and disconnect as it’s restarting.
  • Disconnect and Connect again using Pronterface and type M552 S0 to start the WiFi module
    M552 S0
    SENDING:M552 S0
    WiFi module started
  • Type in M98 P/macros/SetNetwork to execute the macro we created
    >>> M98 P/macros/SetNetwork
    SENDING:M98 P/MACROS/SETNETWORK
    WiFi module started
  • Send M587 and check that your network is listed
  • Send M552 S1.
    After a few seconds you should see a message that it has connected to your access point and display the IP it has recieved.
  • Connect via the web interface
  • Enable the M552 S1 command in config.g – if it’s not in there, then just make a new line and type it in.
  • For security, delete the SetNetwork macro file

SD Card Folder Structure

It’s usefull to know how the structure is supposed to be on the SD-card and also to know the function of each of the files and more info.

All this is shown on the SD Card folder structure wiki page

Posted on Leave a comment

PanelDue – Update firmware

In this post I’ll go through updating firmware on the PanelDue.

It’s really not that difficult, but as always, it can be a bit of a chore figuring out the location of and type of files we need to use.

What we need/in this post

You can check your current version by clicking Setup on your display. Mine was version 1.14 – This is in itself not important for this post, but just nice to know.

Know your PanelDue version

In order to figure out the version of PanelDue we own, we need to look at the back side of the PanelDue PCB.

Mine is V2 as can be seen here.

Get the latest correct firmware

Now we know the hardware version of our PanelDue, so lets go get the newest firmware for it from the PanelDueFirmware page

My screen is 4.3″ inches, so combine that with the version 2 and I need to get the file PanelDue-v2-4.3.bin

Program to update firmware

In order to update our firmware, we need to get a program called “Bossa”.

Go to their Github page and download the file fitting for your system and install it.

Erase and Reset PanelDue

Next step is to Erase and Reset the device to make ready for new firmware.
Some of these steps are taken from the official page.

  • Press and hold the Erase button of the PanelDue for at least one second.
  • Release the Erase button, then press and release the Reset button.
    • If you have a version 2.0 board then the backlight will turn off.

  • Identify the COM port number or port name of the PanelDue board on your PC.
    If you use Windows, you can do this by pressing CTRL+Pause/Break or via Start->Control Panel->System->Device Manager.

    • Then expand Ports (COM and LPT), and look for Bossa port.
    • If you can’t find the port, try repeating the Erase and Reset sequence, or disconnecting and reconnecting the USB cable, or try a different USB port on your computer.

Write new firmware to PanelDue

We are going to use the program Bossa we downloaded and installed previously, but you can also use the command prompt.

I’ll list the command for the commandline option, but I have not tested it.

Command Prompt

Under Windows, open a command prompt and use this command:

Taken from the official page.

bossac.exe --port=COM4 -e -w -v -b PanelDueFirmware.bin

Options:

  • -e, –erase erase the entire flash
  • -w, –write write FILE to the flash; accelerated when
    combined with erase option
  • -v, –verify verify FILE matches flash contents
  • -b, –boot[=BOOL] boot from ROM if BOOL is 0;
    boot from FLASH if BOOL is 1 [default];
    option is ignored on unsupported devices

Using GUI

Run Bossa as Administrator and select the Serial Port we verified above.

  • You must put a mark in Erase all, Boot to flash and Lock.
  • Hit Write and wait for it to finish and click OK.
  • Click the Verify button.

PanelDue up and running

Now hit the Reset button on the PanelDue PCB and display should come back online.

Remember to adjust baud to match your settings in your controllers firmware.

Sources

For full read on the Panel Due https://miscsolutions.wordpress.com/paneldue/
Bossa product page: http://www.shumatech.com/web/products/bossa

Posted on Leave a comment

Duet WiFi – Adding a second extruder

As some might know, I’ve been working on a version 4 of my Belted Extruder and am now ready to put it to use on my primary printer, which has been using a single extruder so far.

Drives section

In the Drives section of our config.g file we need to add 7 changes:

Changes in Drives section described:

  1. Add the drive – Using M569
    We allready have X,Y,Z,E0 which are labeled 0-3 so our new drive is nr. 4.
    My V4 Belted Extruder Design is running in reverse, so we set it to S1
    M569 P4 S1 ; Drive 4 in reverse - E1
  2. Microstepping used – Using M350
    I’m using 1/32 microstepping for both extruders, so just adding :32 to the existing line.
    M350 E32:32 ; Extruder0 microstep
  3. Steps/mm for our new extruder. Using M92
    I have not yet calibrated it, so inputting 2050 to go from, after steps defined for our first extruder.
    M92 E2057:2050 ; Steps/mm for Extruders
  4. Speed change – Using M566
    M566 X1800 Y1800 Z12 E120:120 ; Set maximum instantaneous speed changes (mm/min)
  5. Maximum speed – Using M203
    M203 X18000 Y18000 Z2500 E1200:1200 ; Set maximum speeds (mm/min)
  6. Accelleration – Using M201
    M201 X500 Y500 Z250 E250:250 ; Set accelerations (mm/s^2)
  7. Current – Using M906
    M906 X800 Y800 E700:700 Z1200 I0 ; Set motor currents (mA) and motor idle factor in per cent

Tools section

For now, I only have 1 hotend on this printer, but 2 extruders. I’m using a normal E3Dv6 1.75mm bowden, so I’ll just swap over the bowden tube to the extruder I’m going to be using.

It all means I’m not adding any new heaters for now.

To setup our new Tool, we need to add 3 lines to our config.g file:

  1. Add new tool by defining it. Using M563
    P is the Tool Number, D is Extruder drive, which is not to be confused with machine Drive number we defined above. H is the Heater we use with our new tool.
    ; Pnnn Tool number
    ; Dnnn Extruder drive(s)
    ; Hnnn Heater(s)
    M563 P1 D1 H1; Define tool 1
  2. Tool offset – Using G10
    G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
  3. Initial active tool – Using G10
    G10 P1 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

Note: You can combine the #2-3 G10 commands if you like.

That’s it.

You can now go and see the extra Tool in your Settings – Tools section. Yes, you can add Tools in here, but I rather like doing it the other way, to make sure I have everything how I like it 🙂

Just need to add an extra Extruder to your favorite Slizer 🙂

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