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.


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


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.


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.


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