Wednesday, July 4, 2018

PT100 sensors for 3D printing

I've been wanting to try polycarbonate filament for a while, but didn't have any means of reading the high hot-end temperatures required, so when I got my Duet Ethernet board from Tony at Duet3D.com, he was kind enough to supply a PT100 interface board to go with it.

I ordered some cheapo PT100 sensors from China (when will I ever learn?) via ebay and hooked it all up.  These were supposed to be good up to 450C.  Things were fine for a little while, but after about 2 weeks of use, printing mostly ABS, I started having weird temperature behavior in the hot-end.  First it was just some small, random temperature fluctuations, and then jumps to 2000C, and finally it started throwing heater faults.

I checked the connectors, the cables, the connections to the board, and everything looked fine.  Then I noticed a message on the Panel Due console (or was it the DWC?) that said there was a short between the temperature sensor and other electronics.  Hmmm.  I pulled the PT100 sensor out of the heater block and checked its resistance between the leads and between the leads and the metal casing.  I found a short between the one of the leads and the metal casing.  The printer's frame is grounded, which means the heater block is also grounded, hence the error message about a short.

The type of cheesy PT100 sensors I bought have teflon leads that go into the steel housing.  They are completely useless for printing ABS or any material that requires much more than about 230C because the teflon breaks down when you get much higher than that.






I did some shopping on Ali-express and found that many of the PT100 suppliers will say that the sensors are good to 400C or 450C, but they don't tell you that the wires are teflon insulated, so while the sensor itself may be fine at 400C, the wires connected to it will not be.  The only insulation I know of that is reliable at 400C is glass fibers.

E3D sells a PT100 sensor for about $20 that has glass fiber insulation on the leads.  This should be good for printing ABS, PC and other high temperature filaments.  The only other PT100 sensors I could find with glass fiber lead insulation were industrial parts that cost about $80-100.

TLDR: cheap PT100 sensors with Teflon insulated leads will self-destruct when used at high temperatures, so don't try to use them for hot-end temperature readings.

UMMD: A Better Way to Set Up the Origin and RepRapFirmware Manual Bed Leveling Assist

Setting Up the Printer's Origin


In a previous post I explained how to set up the endstops and origin of a 3D printer.  In the method I outlined, slic3r is easy to set up, but Cura required some custom gcode to get prints dropped on the center of the bed.  It turn out that it's easier to set up the slicers to drop prints on the center of the bed if the printer's origin is at the printable center of the bed.

This post describes how I put UMMD's origin at the printable center of the bed with the new Duet Ethernet controller board, and how you can do the same for your printer.

First, you have to know the dimensions of the printable area of your printer's bed.  It may sound strange, but some machines can't print on the entire bed surface.  So, move your printer through it's motion limits and watch the nozzle relative to the bed.  If it is unable to print on part of the bed, mark a line (or lines) on the bed where the nozzle can't go any further.  Now mark the center point of the printable area of the bed (you can find the center by drawing diagonals between opposite corners of the printable area).

Next, move the extruder to the "home" position (where the X and Y end stop switches are both triggered). Use a ruler to measure the distance from the printable center of the bed to the nozzle in X and Y and write the numbers down.  Now move the extruder carriage to the diagonally opposite corner of the motion limits and measure again, and write down the numbers.

Make a sketch of the top view of the printer, showing the limits of nozzle travel and the outline of the printable area within those limits, like this one that I made for UMMD:
Top view of UMMD's XY stage.  The outer rectangle represents the limits of XY motion of the extruder nozzle.  The  printable area of the bed is a 300x300 mm square that fits within those limits.  The leveling screws are shown for reference (we'll use those later).  The home position is in the right rear corner of the machine because that's where the end stop switches are located.

The origin is set to the dead center of the bed's printable area.  Notice that the bed is not centered within the range of motion.  That's OK.

In the Duet config.g file, the following statements define the origin as the center of the bed's printable area:

M208 X-151 Y-185 Z0 S1 ;  sets the minimum values for all axes
M208 X150 Y153 Z680 S0  ; sets the maximum values for all axes

With the Duet (RepRapFirmware), the fact that the upper right corner is the home position is a function of where the endstop switches are positioned on the X and Y axes and the motor rotation directions.  In SmoothieWare, there are explicit statements that the X and Y axis home to max or min, and then the ordinate values to assign to each.

Now mark the coordinates of the corners of the printable area of the bed:
When you set up Cura you tell it the dimensions of the printable area of the bed (in this case, 300x300 mm), and check the "origin at center" box:

Cura custom machine setup.  There's no need to make changes to the start gcode to position the origin.
Plater view in Cura, origin at center of bed.

When you set up Slic3r, you enter the dimensions of the printable area of the bed and then enter offsets that put the origin at the center:

Slic3r bed set-up.  You enter dimensions of the printable bed area and offset values that put the origin at the center of that printable area.



And this is what you see in the Plater view- origin at center- it matches the diagram perfectly.




Why is this better?  Besides the easier setup in the slicers, it makes the gcode a little more portable between different printers, assuming they use origin at center.  Of course, you still need other things to be right for gcode to be moved from one machine to another.  You won't be able to use gcode for a 300x400x200mm print in a machine with print capacity that's 200x200x200, for example.

Manual Bed Leveling Assistant


The Duet has been working fine for a few weeks now and I am still exploring some of the options in the firmware.  One of the really great ones for people with printers like UMMD that have flat, stable beds that don't require frequent releveling, is called the "manual bed leveling assistant".  The assistant "probes" (actually, you do the "probing" with a piece of paper placed under the extruder nozzle) the bed at a few locations then does a least-squares fit and tells you how much to adjust each leveling screw up or down to minimize leveling error .  It's a quick process that works extremely well.  In order to use it, you'll need to add the coordinates and pitch of the leveling screws in a config file statement, so start by adding the coordinates to the diagram we drew above by measuring the distance from the bed center to each of the screws:

Leveling screw coordinates added.  These coordinates will be used in the M671 statement in the config.g file.


There's going to be some gcode presented below.  You can find definitions of all the gcode supported by RepRapFirmware at this site.

You'll also need to select probing points, at least one for each leveling screw.  If you have 3 leveling screws, you might choose to use just 3 probing points.  You must use at least as many probing points as there are leveling screws, so if you have 4 screws, you need at least 4 probing points.  I chose to use five points, one near each corner of the bed and one at the center:
Probing point coordinates added.  P0-P4 designators are used in G30 statements in the bed.g file.

The config.g file has to contain a few specific lines to enable use of the manual bed leveling assistant.  First, there's and M667 statement that tells the firmware the architecture of the printer you're setting up (coreXY, delta, etc.).  Then you need a couple statements that set up the origin of the printer because everything to come will depend on the coordinates.  You need an M558 statement to tell the assistant how the probing is to be done, and an M671 statement to tell the assistant where the leveling screws are located.  In the M671 statement, list the screw coordinates reference first, then pitch, then roll.  UMMD's config.g file will contain:

M667  S1  ;  set coreXY architecture
.
.
.
M208 X-151 Y-185 Z0 S1 ;  set minimum travel limits (front left corner) for X, Y, and Z
M208 X150 Y153 Z680 S0;  set maximum travel limits for X, Y, and Z
.
.
.
M558 P0 F180 H5 T6000  ; no probe, probe at 180mm/min, start 5 mm above the bed, travel between probing points at 6000 mm/min
.
.
.
M671 X-161:161:0 Y0:0:-161 P0.7  ; defines leveling screw locations and thread pitch

Finally, you need to have a bed.g file that specifies the coordinates of the probing points.:

bed.g file:

G28 ;  home
G30 P0 X-140 Y-140 Z-99999  ; first probe point coordinates
G30 P1 X140 Y-140 Z-99999  ; second probe point coordinates
G30 P2 X140 Y140 Z-99999  ; third probe point coordinates
G30 P3 X-140 Y140 Z-99999  ; fourth probe point coordinates
G30 P4 X0 Y0 Z-99999 S3  ; fifth probe point coordinates, 3 leveling screws

Once all this stuff is in place, you can start the manual bed leveling assistant from the Panel Due by first preheating the bed and nozzle to print temperatures, homing all the axes, then touching the wavy looking icon under "P0" on the right side of the control screen.

Heat up the bed and nozzle, home all axes, then touch the sine wave looking icon on the right side to start the manual bed leveling assistant. Note: I did not heat the bed and nozzle for this photo...
Then you'll see a screen like this for each of the probing points:

The manual leveling assistant at work.  The nozzle will start at the height set by the H parameter in the M558 statement in the config.g file, in UMMD, that will be 5 mm above the bed.
Put a piece of paper between the bed and the nozzle and lower the nozzle using the buttons on the screen until the nozzle just grabs the paper.  After the last point has been probed, the assistant stops. and you go back to the ordinary control screen.  What happened?!!

Fear not!  Switch to the console screen and you will see a message telling you how far off the leveling is at each leveling screw, and how much to rotate it to correct the error:

The message at the bottom tells you the result of the manual leveling assist process.  The first leveling screw is considered the reference and the error and correction are always zero there.  
The example above shows that there is no error or adjustment required at the reference screw (it will always show that, and that's why you put the reference screw coordinates first in the M671 statement on config.g), the bed is low by 20 um at the pitch adjust screw, and the bed is low by 60 um at the roll adjust screw.  Since I told it the pitch of the screws are 0.7mm (the P parameter in the M671 statement in config.g), the bed Pitch adjust screw needs to be turned 0.03 of one rotation (that's not much!) in the direction that raises the bed to correct the leveling error, and the bed Roll adjust screw needs to be turned 0.08 of one turn in the direction that raises the bed to correct the leveling error.

You twist the leveling screws by the stated amounts to bring the bed into "level" (true meaning is parallel to the XY plane of the printer defined by the X and Y guide rails).  If you are full-on OCD or just borderline like me, you repeat the process as many times as it takes to satisfy you that the bed is as level as it can possibly be.

Finally, it's a good idea to readjust the Z=0 position after you're satisfied that the bed is level.

You can find info on using the manual bed leveling assistant here, and definitions of all the gcode that RepRapFirmware supports here.




Saturday, June 30, 2018

UMMD STEP and Fusion360 Files

Someone (I'm afraid I can't locate his name, sorry!) on Google groups was able to convert the .rsdoc CAD file for UMMD to a STEP file that could be imported to Fusion360 and other CAD packages.

I imported it into Fusion360 and you can download that file here.

I put the STEP file on google drive and you can download it here.

The files have not been updated with the latest electronics enclosure and layout- they still show the original configuration.



Here's what the top of the machine looks like with the Duet Ethernet controller board installation complete:

A big improvement over the original build!

Monday, June 18, 2018

Aluminum Titan Extruder from China

The original Titan extruder from E3D works pretty reliably, but has a few issues.

It's made of flexible plastic, the V6 hot-end fits a little bit loosely inside the extruder body, and the way it mounts on the printer is not very user friendly.

The flexibility of the plastic cover is a problem.  It is easy to over-tighten the screw that passes through the drive gear, which bends the cover and causes misalignment of the bearing.  The bearings used are very small and can't withstand much side-loading.  Unfortunately, that screw is one of the screws that mounts the whole assembly on the motor, and you really want it to be tight.

The V6 hot-end, also a reliable performer, is not optimal when paired with the Titan.  One of the design problems with the V6 hot end is that it has no anti-rotation features.  When you put it into a Titan extruder, it can rotate easily, even from the small force produced by the heater cartridge wires. More on the shortcomings of the V6 hot-end, here.

You can either use E3D's plastic mount, or print your own - flexible- or you can mount the extruder to a metal plate, as I have done in UMMD.  If you opt for the more secure mounting to a metal plate, when you remove the cover from the extruder, there is only one screw holding the entire extruder on the printer.  Three of the cover screws go all the way through the extruder body to the motor, so if you just want to take off the cover so you can take out the hot-end to clear a jam or to change the nozzle, you have to trust the one screw to keep the extruder in place.  That remaining screw is located behind the hot-end, so if you want to remove the extruder from the printer, you have to disassemble it completely.

The good things about the Titan include high pushing force on the filament due to the gear reduction and small diameter drive gear.

I saw an aluminum version of the Titan in a forum post and ordered one from a Chinese supplier.  It has a couple flaws that are obvious from the start, but I thought maybe those can be fixed.

Here's the aluminum Titan assembled with a V6 hot-end.  The unit I ordered came with a metal mounting bracket that should make it possible to swap extruders without taking it apart.  One nice feature that the original doesn't have is the small lock screw that grips the hot-end to keep it from rotating.



Just like the original, there's one screw located behind the hot-end that holds the extruder body onto the motor.  Three of the cover screws pass through the extruder body and into the motor.

Cover off, hot-end in place, and filament inserted.  Notice the large gap between the bottom of the drive gear and the top of the tube that guides the filament into the hot-end.  That's very bad.





This is what can happen when there's a gap between the drive gear and the filament guide tube. This is a BullDog XL extruder on SoM, and the filament is PLA or ABS.



This is that BullDog XL extruder with the front cover off.  The arrow points to the gap that allowed that mess to occur.  All they had to do to prevent the problem was make the brass tube a bit longer.  Doh! 





One more problem- the filament doesn't ride on the center of the drive gear concavity.  That means that it may tend to wander back and forth on the gear teeth, especially with the wide gap between the feed tube and the drive gear.  The result may be inconsistent extrusion because the diameter of the drive gear changes with the filament's position on it.

Extend the Filament Guide Tube


I found a piece of 1/8" OD aluminum tubing at the makerspace and used a belt sander to put a couple 45 degree chamfers on the end of the tube, then cut the tube with a jeweler's saw to about 15 mm long and deburred the ends with some jeweler's files.  Next, I drilled out the feed tube hole with a #30 drill (0.1285") and the aluminum tube fit loosely inside it.  I mixed some epoxy, put a drop on the aluminum tube, and inserted it into the feed tube on the extruder body.  I pushed it up to the drive gear and inserted a piece of filament to help hold the tube in position while the epoxy set.

Side view of the extruder with the aluminum tube installed (inside red square) and filament inserted to hold tube in position while epoxy set.  The ID of the tube is about 2 mm.




Extruder with cover off showing aluminum tube in place.



Pinch roller removed. 




The addition of the tube has made it easier to load filament, and should help control the position of the filament on the drive gear teeth.

Tests


I was curious to see if the E3D parts were compatible with the Chinese parts.  In particular I wanted to see if the Chinese Titan mount would work with the E3D Titan extruder, and if the E3D drive gear would work, too.  I am pleased to report yes to both!

I swapped the E3D drive gear into the Chinese extruder and it fit perfectly.  The aluminum extruder uses the same bearings for the drive gear, and careful measurement of the two gears finds them essentially identical except that the original drive gear diameter (the steel part that grips the filament), measured at the deepest concavity of the teeth is 7.78 mm and the Chinese drive gear is 7.39 mm in diameter.  That difference means that the steps/mm settings for the two should be slightly different.  I also noticed that there are fewer teeth in the filament drive part and they are cut deeper in the original E3D part compared to the Chinese part.  The best thing is that the filament path in the aluminum Titan seems to have been designed around the original E3D part - the concavity in the filament gripper teeth lines up perfectly with the holes that guide the filament in the aluminum extruder.

Here's the Chinese drive gear in the extruder body.  You can clearly see that the filament will be off center in the gripper teeth.

Here's an E3D drive gear mounted in the aluminum Titan.  Notice that the teeth of the filament gripper line up perfectly with the filament guide tube.
I had to take the E3D Titan off UMMD before I could mount the aluminum Titan, so I checked to see if the original E3D Titan will fit on the Chinese mount.  I am pleased to report that it fits perfectly.

Here's the E3D Titan mounted on the aluminum mount that I got with the aluminum Titan.  A perfect fit!

The other side of the E3D Titan mounted on the Chinese aluminum mount.  

Print Testing


I mounted the aluminum Titan on UMMD, rezeroed the Z axis, and ran a test print.  No problems were encountered.  After calibration I found that 443 step/mm was a good number for the extruder with the Chinese filament drive gear.

Chinese aluminum Titan extruder mounted on UMMD with an XCR3D hot end.

Aluminum Titan mounted on UMMD.



UMMD Printing With Aluminum Titan Extruder from Mark Rehorst on Vimeo.

The real test of anything like this is how it holds up with use.  I'll be using it a lot in the coming months and will do more blog posts if I encounter any problems.




Saturday, June 16, 2018

Configuring the Duet Board

Once all the wiring was done, it was time to get everything hooked up and running.  I found some things a little confusing, made a couple errors, but in the end it wasn't too difficult to switch from the SmoothieBoard to the Duet Ethernet controller.

First things first: Configure


I used the on-line configurator to generate the config files and uploaded them to the Duet board via the web interface (DWC).  I ran into a few issues with the configurator, some of which was confusing labeling and other things which were just not right.  It seems the configurator has not quite kept up with firmware advances.  More on this later...

Next up: Motion Testing


I checked the motor connections and found they were essentially the same between the two controller boards, so all I had to do was plug the motor cables into the appropriate connectors.  UMMD had both a Z=0 and Zmax endstop switches but the Duet board doesn't have maximum and minimum endstop inputs, so I used the Z=0 switch and left the Zmax switch unconnected for now.

I used NC snap action switches for all the endstops in UMMD.  Both SmoothieBoard and Duet use 3 pin connections for the end stop switches, but be careful!  On the SmoothieBoard, the NC switch connections are made between adjacent pins in the connectors and on the Duet board, the NC connections are made using the two outside pins.  After moving the wires within the endstop connectors, I plugged them in and verified operation by watching the readout on the web interface.

With motors and endstops connected, I moved the A and B motors individually to see which way the extruder carriage moved and found that I needed to reverse the direction on the B motor which was a simple change in the config.g file.

The Z axis set up was one of the confusing points in the online configurator.  I use a simple Z=0 switch to zero the bed, which is apparently not very common in machines that use the Duet boards.  In the configurator there are multiple options for "Z probe", including "none" and "switch".  I looked at switch and there were a couple offset values and a threshold value listed, which didn't seem appropriate for a simple Z=0 switch, so I figured it must be for some sort of extruder carriage mounted switch that is used to probe the bed.  So I selected "none" and kept going.

When I tried to get the Z axis working, since I had selected "none" in the Z probe section of the configurator, it assumed there was no switch, and the DWC and the touch panel both wanted me to manually zero the bed.  The problem was I couldn't get the bed to move because the Z axis had not been homed (it nicely displayed an error message to that effect).

That's what we call a "catch-22" situation.  I was trying to home the bed but I couldn't move it because it hadn't been homed.  I later found out there had been a firmware update a few days before I tried to configure that fixed that problem, but I had not updated the firmware since the update I did the day after I received the board.

So since I couldn't get it working that way, I reconfigured for Z using the "switch" option, assuming that the default 2.5mm offset was going to put the nozzle 2.5 mm above the bed after homing.  Big mistake!  2.5 mm offset meant that the nozzle was going to be 2.5 mm below the bed surface.  At some point after it was all moving I loaded a gcode file and hit go and it slammed the bed into the nozzle and then dragged the nozzle across the PEI surface, leaving a deep gouge about 100mm long before I hit the stop button.  When using the "switch" option, the offsets should be set to "0" or negative values.  I reconfigured using the "switch" option again and set the offsets to "0" and it worked fine after that.

The "switch" option is selected and offsets default to 2.5 mm, which means if you don't change the value to "0" it will drive the bed into the extruder nozzle.  I learned that the hard way.

I used the 256:1 microstepping interpolation for all the motors, and copied the accelerations and steps/mm from the Smoothieboard configuration to the Duet config.g file.  Everything worked fine, and the machine is much quieter now that it used to be.  SmoothieWare uses something called "junction deviation" instead of the "jerk" that is used in RRF, so I started with the default jerk value and will tune for acceptable performance, a trade between print speed and ringing in the print surface.

Configuring Heaters


UMMD has three heaters, one each for the extruder, bed, and chamber.  The chamber and bed heaters are both line powered and use SSRs to switch power.  The Duet board has three heater connections, all screw terminals.  There's a "bed heater" connection that uses very large screw terminals so it can switch a lot of current for a DC powered heater.  The other two heater outputs use smaller screw terminal connections, labeled E0 and E1.  This is where things start to get confusing.

When you use the online configurator, it is difficult to understand when the configurator is referring to a device, or the connection on the circuit board, and when you look at the config.g file, it gets worse.  The E0 and E1 motor and heater connections are normally used for the first and second extruders, though reassignment is possible.  Here's a breakdown of the default connections:


Physical DeviceConnections on Duet boardFirmware
first extruderE0 motor, E0 heaterT0 (tool), H1 (heater), E0 (motor)
second extruder (or chamber heater)E1 motor, E1 heaterT1 (tool), H2 (heater), E1 (motor)
bed heaterbed heaterH0

Once I had sorted all this out and mentally translated the connections on the configurator to the physical devices and the board connections, I was able to get everything working, but I ran into some problems with PID tuning and ended up on the forum looking for some help.  The configurator was inserting M301 commands in the config.g file which have been superceeded by M307 commands.  I made the recommended changes and was able to get the heaters working.  I believe they'll be updating the configurator soon.

Even more confusing than I thought- if you check the "chamber heater present" box, the first extruder heater gets assigned to the E1 screw terminals and the chamber heater gets assigned to the E0 heater terminals.  Ugh!

Along the way I tried swapping the bed and extruder heater connections, an option in the configurator.  That didn't work out for me because the Panel Due does not understand the swapped connections.  I wanted full control using the Panel Due so I swapped back to the default connections and it is all working as expected.

Finally, I was ready to make a test print!  I sliced a simple file for some Maker Faire give-aways (left hand threaded nuts and bolts, just to mess with peoples' minds), then uploaded the gcode to the Duet board and started the print.  Results were excellent and the machine was very quiet.  Here's a short video snippet:

UMMD: First test print with Duet controller from Mark Rehorst on Vimeo.


Compare the sound level in the video above, with the Duet board, to the sound level in this video, made using the SmoothieBoard:

UMMD ringing test #1 from Mark Rehorst on Vimeo.

UMMD: Migrating from SmoothieBoard to Duet Ethernet, Part 3

Electronics Enclosure

The Duet board and Panel Due have updated firmware, the Duet is mostly configured, it talks via a direct ethernet connection to my netbook computer, so it's time to install the Duet and Panel Due into my printer.

The cover of the printer is designed so it keeps the slots in the upper front of the machine open so I can slide the top front cover in and out of them.  That means the Panel Due has to provide the same clearance, and means I can't put switches or jacks on the front panel unless I set them back to provide clearance for that cover.

The existing electronics are screwed to the top of the printer and covered with a clear plastic basket - ugly!  I decided to mount the Panel Due standing vertically at the front of the machine and designed a mount/bezel for it, then made standoffs of equal height to support a new top cover.

I decided to use more of the 8mm thick dual layer PC for the walls of the enclosure, so I designed the standoffs with 8mm wide slots to hold the PC.

Side panels of the electronics enclosure use the same 8 mm dual layer PC as the printer enclosure.  The power switch and LCD screen are set back to protect them during transport and prevent them from scratching the upper front cover of the printer.
Once the standoffs were made, I started rearranging the electronics.  I decided to keep all the electronics on top of the machine- there's plenty of room up there, and that would minimize the number of cables running up and down the machine's frame.

The switch immediately above the main power switch is used to turn the lights on and off in the printer.  The other switch is there for future assignment.  The fan is a 120mm 220V unit that runs very quietly on 117V.  The cone in the center is there to support the center of the board (also foamed PVC) that will cover the top of the enclosure.  There are 3 fuses on the rear panel- one each for the bed and chamber heaters which are both line powered, and an extra for future expansion.
The Duet board will go where the SmoothieBoard is, minimizing additional wiring that has to be done.  I added a panel mount network extension jack to the back/side of the machine (if I put it on the front panel, I wouldn't be able to slide the top-front cover in and out of the frame with the cable plugged in).

Wiring


A few weeks ago, fellow Milwaukee Makerspace member and all-around cool guy that you should know, Jim Rawson, showed me some connectors that he was going to use for making bus-type connections to power supplies for a model train layout he is working on.  The things he showed me were Wago 221 type "lever nuts".  They are intended to be substitutes for twist-on wire nuts used in electrical boxes, but they make great substitutes for screw terminal blocks.  They have nice levers that flip up to open the connector, then snap back down to make a solid electrical connection with either stranded or solid wire.  They're good for 24 to 12 gauge, solid or stranded wire and can handle at least 20A at 300V.  The only tool you need with them is a wire stripper.  These things hold on tightly- I tried pulling a wire out while the lever was down and couldn't do it.  I don't think I'll ever use screw terminal strips again.

The WAGOs are high quality German made parts with a bunch of safety certifications.  The 5 position WAGOs cost about $1 each, but you can buy no-cert Chinese knock-offs for much less, if you don't mind taking a gamble.

Wago 221-415 in a printed holder.  All you have to do is strip 11 mm of insulation off the wire, insert the end into the hole, and snap the lever down.

Yes, these things are pretty small.

After designing and printing the WAGO holders I realized that they can probably just be hot-melt glued to the baseboard of the enclosure.  I tested it and it seems to work fine.  Oh well.  To a hammer, everything looks like a nail!  If you want to print some of the WAGO mounts:

The STL file for the Wago lever nut holder is here.

The Fusion360 CAD file is here.

Power wiring diagram - most of this junk is there to enable lots of white and UV LED lighting.  The connections at A and B are for the bed heater, and connections at C and D are for the chamber heater.  There are WAGOs at A and C that I neglected to include in the diagram.  The LEDs connected at the SW GND WAGO are the white LEDs that light up the build chamber.  SWA and SWB are a single DPDT, center-off toggle switch.

I laid out the wires for the AC power first, since those are the least likely to require any changes in the future.

Lighting


There were two, 24V white LED strips in the top of the enclosure, and two 12V white LED bars on either side of the front opening of the printer.  Since I had the whole top off the machine I decided to add two more of the 24V LED strips to the top cover.

The 12V white LEDs are powered by a DC-DC converter and since the 12V may be useful for other things, I decided to power that converter all the time and have a 12V source readily available for future use.  The UV LEDs are powered by another DC-DC converter that outputs about 19V to power the LEDs.  19V is not very useful for anything else, so the light switch on the front panel switches the ground on the input side of the DC-DC converter that powers the UV LEDs.

Connections


I wanted to be able to remove the entire electronics enclosure from the printer, so I thought about how to make that as easy as possible.  The connections to the controller board are all connectorized, so they're easy to deal with.  I labeled all the plugs that go into the board with their functions so it will be easy to plug them back in.  But there are a few things that will need connectors to make it easy to remove and reconnect everything.

Connections to the bed and enclosure heaters are needed, as well as connections to the LED light bars at the front of the enclosure.  Each of the heater connections involves only two wires, so I went with Anderson Power Pole connectors for those.  Since there are multiple connections needed for the LED bars, and I might want to add more lighting in the future, I decided to put some extra WAGOs in the electronics enclosure on top of the machine.  The extra connections available on the WAGOs will be useful to add fans, lighting, etc., in the future.


Top view of the printer.  I know, not too pretty...  The connections to the Duet board come up from the bottom of the enclosure to the left of the board.  In the upper left corner the connections for the bed and chamber heaters come up to WAGOs.  On the lower left the wires for the LEDs located on either side of the front of the machine come up to WAGOs.  There's a 220VAC fan in the UL corner that is powered via 117VAC, so it turns slowly and quietly.  It is positioned to blow air over the Duet board to ensure that it stays cool.  There's a vent in the UR corner to allow air flow when the top cover is in place.



24V supply and 24-12V DC-DC converter.  There are 24V, GND and 12V WAGO's to make current and future connections.



Duet board, 24V-19V DC-DC converter to run UV LEDs, 19V, 24V, 12V, and switched GND WAGOs for current and future connections.


Network connector (left), power input panel (center), bed heater SSR (orange), and line, neutral, and GND WAGOs for current and future connections.   The GND WAGO, upper right will have a connection to the printer's frame.  There is a spare fuse holder for future use, and plenty of room above the network connector to add switches, or whatever.


Next up:  Tweaking the firmware

Saturday, May 26, 2018

UMMD Gets an XCR3D Hot-End

During some recent hunting for the source of a print quality problem with UMMD, someone posted something about a new hot-end on the Rep-Rap forums.  It looked interesting, and I've started seeing problems with the E3D V6 that was on UMMD, so I decided to check it out.

I ordered an XCR3D hot-end via Ali-express for a whopping $16 shipped and installed it in UMMD and found a few interesting things.

XCR3D Hot-End mounted on the Titan extruder in UMMD.  The heater block started out the same black color as the heatsink.

First, the Good:


It fits tightly into the Titan extruder, much tighter than the E3D V6 did, so it's very secure, no wobble, and no unwanted rotation caused by the heater cartridge wires pulling on it.  It doesn't feel over-sized - it feels like it fits properly.

The fan is absolutely silent- I put my ear within a few cm of it and couldn't hear it running.  We'll see if it lasts...

The fan bracket is metal and screws securely to the heatsink.  No more melted plastic, no more rotating fan.

The stainless steel heat-break is a bit more robust than the E3D part and the Teflon tubing doesn't go as deep into it.

The heatsink end of the heat-break is not threaded- it is held into the heatsink using set screws.  I like that!  I've had the heat-break come loose in the E3D V6 a few times.  Also, if you were setting up a multiple extruder machine, having the heat-breaks held in with set screws would allow you to set the nozzles at exactly the same height.  It also means you can take a jammed heat-break/nozzle assembly out without having to take apart the whole extruder- two thumbs way up!  It also means you can swap in a different heat-break/nozzle assembly without taking the extruder apart.

It comes with a 50 W heater cartridge that heats up quickly- it gets to 240°C in 60 seconds!

It has options for temperature sensors- I got the cartridge thermistor and it seems to be a direct and accurate replacement for the E3D part.

The heater block, heatsink, and fan bracket all have a black coating (anodized?) that looks nice.

You can order the kit with 1 m or 2 m long leads.  I just cut them off and put connectors on to fit UMMD's extruder carriage cable.

The brass 0.4 mm nozzle that comes on the unit appears to be well machined.

It comes with some little, stiff wire tools to clear a jammed nozzle.  I have not tried to use them.

There is a standard lock ring to hold the tubing into the hot-end for Bowden set-up, and inside the heatsink there's a phosphor-bronze (?) part with fingers that are angled downward.  You can slide in the Teflon tube and the fingers grab it and won't let it slide upward.

Now the Less Good:


The black coating on the heater block quickly burns and turns brown.  It doesn't seem to affect operation, just appearance.

The overall length is a few mm longer than the E3DV6 so you lose a little of your Z axis print capacity.  It is actually about the same length as a V6 with a volcano heater block.

The heater and temperature sensor cartridges are held into the heater block with set screws.  E3D's split block and clamp design holds the cartridges without crushing them.  You can always change the heater block.  One concern is that the set screws will fill up with plastic and I won't be able to get a wrench into them if I need to replace either of the cartridges.  We'll see...

Even though photos on the manufacturer's page at Ali-Express show Teflon tubing, none is supplied with the hot-end.  For direct extrusion you need 65-75 mm of tubing (I didn't measure it).  For Bowden you need whatever length your printer needs.

Installation:


It was pretty easy.

I took the heat-break and nozzle out of the heater block, applied anti-seize compound to their threads, and screwed them back into the heater block.

I put a little thermal compound on the heat-break and slid it into the heatsink and tightened the set screws.

Next I pried the black plastic Bowden tube lock ring out of the top of the heatsink,  pushed a piece of Teflon tubing into the heatsink until it stopped at the bottom of the heat-break, then cut it so there were 16 mm of tubing standing above the top of the heatsink.  That extra tubing fits up inside the Titan extruder's guide piece.

I applied anti-seize compound to the heater and thermistor cartridges and their set screws and mounted them in the heater block.

I cut the cables to appropriate lengths and installed connectors to mate with the extruder carriage cable.

I heated it up to print temperature and tightened the extruder nozzle against the heat-break with two wrenches, one on the heater block and one on the nozzle, then let it all cool back to room temperature.

Finally I ran a PID auto-tune on the hot-end and updated the firmware configuration with the constants returned by the controller.  When I heat it up to print it overshoots the set temperature by about 5°C then quickly settles to the set temperature and doesn't move after that.  It gets to 240°C in 60 seconds flat.

Printing:


I have printed both ABS and PLA with it and it seems to work fine.  At some point I may try the volcano hot-end again.