Tuesday, April 30, 2019

More Changes to UMMD's Z Axis

More Z Axis Updates

I "finished" UMMD about 1.5 years ago, but there have been quite a few changes to the machine over that time.  In particular, I have made a lot of changes to the Z axis and related parts that I will summarize in this post.

Pulleys and Belts

The original Z axis used 3 mm pitch steel core belts and 40 tooth pulleys.  I can't recall how I ended up using those parts- maybe I had them on-hand- but that combo led to an unfortunate 18 um/full step in the Z axis.  After a few changes and some careful calculations, I ended up with 60 tooth 2mm pitch drive pulleys and belts, and now have glass core belts on the machine.  That gives a nice, round 20 um/full step.  The glass belts stretch about 3x as much as the steel core belts, but still not enough to matter.

One of the 60 tooth 2mm pitch drive pulleys.  The larger diameter of the pulley necessitated a redesign and fabrication of the Z axis top pulleys to keep the belts parallel to the linear guides.
The Z axis top pulley mounts had to be remade when I changed the drive pulley diameter to keep the belts parallel to the guide rails.  The original mounts had two carriage bolts to hold them in place and prevent the plate from rotating.  The new design has an antirotation tang that fits into the t-slot and uses a single carriage bolt to hold it in place.

Update 1/20/20:  A year or so ago, before I changed from steel core to glass core belts in Z, one of the Z axis drive pulleys came loose and rotated on the drive shaft.  I was recently doing some work on the XY mechanism and decided that it would be a good time to fix that problem.  I pulled the Z axis shaft out of the machine and milled two flats at each end so the drive pulley set screws would prevent rotation on the shaft.

The original pulley mounting bracket at the top of the Z axis used two carriage bolts to hold it in place and prevent it from rotating.  

This is one of the final top-of-the-Z-axis pulley mounts.  It was milled from a piece of 8mm thick tooling plate left over from the bed plate.  There's an anti rotation tang on the back side that fits into the t-slot.

Extruder Carriage

The extruder carriage has undergone more changes than any other part of the printer.  I used different extruders, different hot-ends, and different carriage designs.  The original carriage was made from a single piece of aluminum tubing with the extruder, motor, and hot-end all hanging below the X axis bearing block.  I thought that it looked too much like a pendulum, so I moved the extruder and motor above the bearing block leaving just the hot-end below.  I eventually settled on a two piece design that has the extruder and hot-end mounted on a metal plate with the belt clamps mounted on a smaller piece of tubing.  That allows the extruder and hot end to be removed without taking the belts out of the clamps or even relaxing the tension on the belts.  One thing about the design that has been a constant was the extraordinary length of the carriage.  This was necessary because of the way the bed was lifted on the Z axis.

Eventually, the very long extruder carriage started to bother me.  I can't really say that it was creating any problems in the prints, but it just didn't seem right.  Any minor wiggle in the X axis guide rail would be amplified by the long lever arm that the hot-end was mounted on, so I finally decided to do something about it.

Here's the extra long, almost final extruder mounting system that I wanted to shorten.  The extruder and motor are mounted just above the X axis bearing block and the hot-end is connected by a PTFE tube down below.  The length was needed so the hot end could reach the bed surface.

Bed Lifting Brackets and Z Axis Belt Clamps

If I was going to shorten the extruder carriage, the bed had to go up higher.  The easiest way to make that happen was to swap and flip over the bed lifting brackets that hold the bed assembly on the Z axis.  That raised the bed by about 50 mm, and moved the lever arm from the extruder carriage that whips around at high speed and acceleration, to the bed that only goes up and down a little.  Probably a good trade off.

The new positions of the bed lifting brackets.

While I was doing that, I changed the way that the Z axis belt clamps attach to the bed lifting brackets.  When I first built the machine, I didn't realize how hard it was going to be to release the Z axis belt clamps because of the dual layer PC panels that fit into the printer's frame (I'd have to remove a frame member to move a panel out of the way).  I also didn't anticipate the amount of experimenting I'd be doing with the Z axis.  Releasing the belt clamps from the brackets required a right angle screwdriver to get at the screws that were on the outside of the brackets, with very little room for my fingers to fit in the space.  I needed to flip the screws so that the heads were on the inside of the brackets instead of the outside.

The old way... my knuckles are up against the PC panel on the left.  There are four screws that I have to take out on each side of the Z axis.  The screws goes through a metal plate that holds the yellow belt clamp against the Z lifting bracket.

Much easier access to the Z axis belt clamp screws.  The tapped holes in the bracket were drilled  out to allow the screws to pass through the bracket and belt clamp and thread into a nut-plate on the opposite side of the belt clamp.

I drilled out the threaded holes in the brackets so that I could just push the screws through from the inside, and made two aluminum nut-plates with four tapped holes that the screws now thread into.  The belt clamps get trapped between the brackets and the metal plates just like before, only the screws are now easier to access.  It was so easy- I should have done it years ago!  Now if I want to remove the belt clamps I can just use a screwdriver from the inside of the brackets, under the bed support, where there is plenty of room to work and I can see exactly what I'm doing. Nice!  That will make future changes to the Z axis a lot easier.

Compare the two pictures above to see the differences in the bed lifting brackets.

This is one of two new nut-plates that clamp the Z axis belt clamps to the lifting brackets.  The material is 3 mm thick aluminum and the holes are threaded for 6-32 screws.

Z Axis Belt Clamp Redux

By now you've probably seen that I had a problem with the original belt clamp design that led to a failure of the steel core belts.  I redesigned the belt clamps based on a design I have used in SoM for about 6 years without any problems.

The original clamp design worked like this.

And it failed like this!

New Z axis belt clamp design folds the belt back on itself to lock it in place.  The open side of the clamp (facing the camera in the photo) is closed with a rectangular aluminum nut plate that's held in place with 4 screws.

Extruder Carriage Modifications

Now that the bed lifted higher, I was able to cut the long, 5mm thick aluminum plate that mounts the extruder and hot-end on the carriage about 60mm shorter, allowing the hot-end to mount closer to the extruder.  The PTFE tube that connects the extruder to the hot end is also lot shorter than it was.  I feel better about it now.

The metal plate on the extruder carriage used to bump the X axis endstop, but that part of the plate was cut off (maybe I should have left part of it there to bump the switch).  I printed a new hot-end clamp that includes an extension that bumps the switch.

The old extruder carriage- the metal extension plate used to bump the X axis endstop.

And here's the newly shortened extruder carriage.  There's not much room for bolting on a print cooling fan, but I rarely print PLA anyway.  The black hot-end clamp has a flag (to the right of the cooling fan) that bumps the X=0 switch.

This is the final extruder carriage design.  The extruder and hot-end mounting plate is 5 mm thick aluminum, and the belt clamp mounting tube is 1.5" x 2"x 1/8" aluminum tubing.  The belt clamps and hot-end clamp are printed ABS parts.  The plate holding the hot-end and extruder can be removed without taking off the belt clamps or releasing the belt tension.

Some of you may be thinking that my extruder carriage is ugly as sin, with visible wires, no "professional" looking covers, etc.  There's a reason for that.  The extruder and hot-end are the most unreliable parts of the printer.  Problems with either often require some disassembly.  I prefer to keep everything right where I can see it and easy to get to without having to take off a bunch of covers.

Bed Heater

The 468MP adhesive holding the heater on the bottom of the bed plate started letting go several months ago, so I decided to peel the heater free and reattach it using high temperature silicone.  I made an attempt to remove the heater using the scraper I use to release prints from the bed, but it didn't work- the parts of the heater that were still stuck to the plate were really stuck to the plate.

I contacted Keenovo about it and they pointed me at this site for instructions on how to remove a heater from a plate and this site for instructions of preparing a plate to receive a heater that has 468MP adhesive.  Here's their manual on the heaters (which I had never seen before).

They recommend a few things I was previously unaware of, including sealing the edges of the heater with a bead of high temperature silicone, maybe to keep the adhesive from "drying out" and letting go?  Maybe I should seal the edges of the PEI sheet for the same reason...  They also recommend using a mechanical "sandwich" construction to ensure that the heater stays attached to the bed.

Per Keenovo's instructions, I heated the bed plate (to 100C) and used a scraper to release if from the bed.  I gouged the silicone in a couple spots, but fortunately didn't expose any of the heating wires.  Once I had the heater loose I looked at the underside.  The area that had come off the bed plate had been running very hot and singed the silicone on the underside of the heater.  I flexed the heater in the toasted area and it cracked, so I decided it wouldn't be safe to reuse it and ordered a new one without any adhesive.

The burnt bed heater.  The dark section cracked when I flexed the heater in that area, so I have ordered a new one without adhesive and I will cement it to the plate using high temperature silicone.

I mounted the new, adhesive-free heater on the bed plate using Permatex Red high temperature silicone purchased at a local auto parts store.

The TCO, previously mounted on the edge of the bed plate was moved to the heater and mounted using the same high temperature silicone that was used to mount the heater on the plate.  This was done so that if the heater comes off the plate, the TCO will stay with the heater and hopefully shut down the power before it starts a fire.

The new bed heater mounted on the plate using high temperature silicone.  The TCO is also attached using the same high temperature silicone inside the blob near the center of the heater.

Leveling Screw Block Redesign

Once I had the extruder remounted on the shorter plate and went to relevel the bed, I noticed that when I turned the roll screw, it was causing the bed to shift laterally.  That's shouldn't happen!  I found that the PTFE block holding the pitch screw was tilting/shifting in the t-slot.  The narrow PTFE block was held inside the t-slot by two small screws and they weren't holding fast so the block was wobbling in the slot.  I tried to tighten the screws and they stripped the holes in the PTFE.

Here's the original roll adjuster- the other two are about the same.  The PTFE block fits into the slot and is held in place by two small screws whose heads you can barely see in the bottom t-slot, behind the long roll adjustment screw.  It wasn't a very solid or reliable way to mount the PTFE blocks.

It was time to redesign the leveling screw blocks for more secure attachment to the support frame. I was out of PTFE and the "local" plastics shop is about 40 miles away, and I just need a relatively small amount to use for this and future projects, so I did some shopping on ebay.  The first thing that struck me was how expensive PTFE is, or looks, at first glance.

PTFE is a commodity, and you buy commodities by the price per weight.  The ebay listings usually have dimensions listed in inches, and PTFE has a density of 0.08 lbs/in^3, so I calculated the price/lb including the shipping cost when I compared the different listings.  It didn't really matter what the exact dimensions of the block were because I'm going to cut it up and mill it anyway.  I mostly use small blocks of the stuff, not large sheets, so I looked at bar/block listings at least 3/4" thick.

Here's a typical offering:

This one is a total of 13.125 in^3, which will weigh 1.05 lbs.  At a total cost of $23, that works out to about $22/lb. Ouch!

Here's an example of a pretty good deal:

These blocks of PTFE are 71.25 in^3 and have good dimensions to allow a lot of small parts to be made by cutting it up and milling. 71.25 in^3 will weigh 5.7 lbs.  I've probably used 1/10 that much PTFE in the last 10 years. Total price is $36.80, which works out to $6.45/lb. That seems like a pretty good price for PTFE (and cheaper than filament for the printer).  

I ordered the block in the second photo.

The PTFE arrived in the mail- a literal brick!  I went to the makerspace and went to work on it.  In a couple hours I had three new PTFE blocks finished and ready to go.

The new PTFE leveling screw blocks.  You're looking at the bottom of the block on the left.  The tang just fits into the 8mm wide t-slot to prevent the block from rotating.

The bed support tee with new PTFE leveling screw blocks installed.  Each block is held in place with an M4 screw and t-nut.  The thickness of the blocks matches the length of the threaded part of the leveling screws- 13 mm.

One of the new leveling screw blocks.  The blocks are 30 x 24 x 13 mm.  So much neater than the original!

Here's the reference leveling screw with the new PTFE block in place.  I deliberately set the end of the PTFE block 5mm back from the edge of the t-slot so there would be more room for the spring.

The CAD file for the new design including the bed support and the bed plate itself is located here.

If you just want the CAD model of the sphere-head screws that are used for pitch and reference adjusters, here you go.  You don't have to use the same spherical head screws I used.  In fact, if you'd prefer to make all the leveling adjustments below the bed, you can just drill through the support as I did at the roll screw, use long screws with thumbwheels, and then put acorn nuts on the ends of the reference and pitch screws.  Use appropriate diameter/width of the hole and slot for the acorn nuts on the reference and pitch adjusters.

Update 1/11/22: very important! When you are preparing the PTFE blocks for the ball head screws, do not tap the holes in the PTFE and do not use threaded inserts. Threaded inserts are best used for screws that you're going to drive in and remove frequently. This isn't that. When leveling the bed you're going to be turning these screws maybe 1/4 turn, maybe a few times during the life of your printer. You don't need an insert. Also, threaded holes in inserts and nuts always allow for clearance between the nut and screw threads to ensure that it will be easy to turn the nut/screw. That clearance allows the nut/screw to wobble in the threaded hole. That's the exact opposite of what you want here. If you tap the holes or use threaded inserts, the screws will wobble, and if the screws wobble, the printer's bed will wobble. You should drill tap-size holes (in this case, 4.25 mm for the M5x0.75 threads on the ball head screws) into the PTFE blocks and then just turn the screws into those untapped holes. Steel screws are much harder than PTFE and will happily roll threads into the plastic. Don't worry, the PTFE won't grip the screws so tightly that you can't adjust them (but nylon will, so don't substitute nylon for PTFE! I know this because I tried it). The screws won't wobble in the PTFE so the bed won't wobble on the screws. PTFE is self-lubricating, so you don't need to use any thread cutting oil when you drive the screws in. 

Finally, once in a while I see people suggesting that PTFE is not good for this application because of "creep". Don't worry about it. I've been using PTFE blocks for this purpose in my printers for >5 years and never had any problems.

Electrical Connections

I had great results using Wago 221 lever nuts when I wired the Duet controller, so I decided to use them to make the bed connections.  I designed and printed an ABS housing that is screwed to the support tee.  Another printed ABS part that fits tightly into the t-slot provides strain relief for the cable.  A Fusion360 file for this and other Wago mounts is here.

I used the Wago mount on the left to make connections to the bed heater and thermistor.  It has a tang that fits into the 8mm wide slot on the bed support tee.

I mounted the Wago bracket on the back side of the bed support tee, where the screw terminals had been. That was a mistake. It's hard to see it back there, hard to install and remove it. I tried to move it to the front side where I could inspect it and release wires easily but, alas, I had cut the cables from the bed heater too short to reach the front side of the support tee. I may turn the whole bed support assembly around so the electrical connections will be at the front side of the bed. This is a mistake I won't repeat in my next printer.


I had to make a couple other small changes to accommodate the new configuration.  I printed new bottom-of-the-Z-axis bumpers to keep the bed assembly from going too far down (you can see one of them in the first photo at the top of this post).  Finally, I had to shorten some of the cables that run from the hot-end up to the extruder carriage cable.

Sunday, April 14, 2019

Floor Jack Pads: Pushing The Limits of 3D Printed Parts

My 12 year old Audi TT needs new shocks and I am preparing to do the work myself.  I've changed struts on two other cars, so I have most of the tools and a pretty good idea of what to expect.  Now I'm in the process of researching all the correct part numbers to order.

One tool that's been missing from my ever-growing collection is a floor jack.  I fixed that deficiency yesterday with a trip to Harbor Freight Tools where I bought a 3 ton, low profile, steel jack for $89.  I have no illusions about the quality, but it seems sturdily built (it weighs about 80 lbs) and should be fine for my infrequent uses like replacing the struts in my car and rotating the tires once in a while.

The jack did not come with any sort of pad on the saddle, and I don't want to try using it without one, so I did a little research.  Volkswagen Audi Group vehicles use a common lifting point "socket" that is best used with a jack pad that is made to fit.  I looked up commercial offerings and found some for about $8-10, made of polyurethane.  Polyurethane?  I can print that!

One of the jack pad makers was kind enough to provide dimensions:

Audi jack pad dimensions.

I modeled one of the pads in Fusion360 in about 30 seconds.  The commercial pad was only 69 mm in diameter but the saddle on my jack is 93 mm in diameter, so my model has a 90 mm diameter base.

My print used fluorescent green TPU- I won't have any trouble seeing it in the bottom of a drawer or toolbox.

UMMD has a 0.4 mm nozzle, so I used TPU filament in 0.24 mm layers, 0.5 mm line width, 6 perimeters, 8 top and bottom solid layers, and 40% triangular infill.  It used about 101g of filament and took about 5 hours to print at 40 mm/sec.  The print came out beautiful, and like all TPU prints, it's super tough.

Here's the jack with the naked saddle.  You need some sort of pad to protect the car!

Here's the jack with my custom 3D printed pad in the saddle.  The bump on top of the pad fits into the jacking receptacle on the car's frame.
Let's see if it's tough enough:

Well there you go!  TPU is one of the most amazing filaments you can get for a 3D printer!  It's easy to print (220C extruder, 45C bed, 30-40 mm/sec) and produces incredibly tough prints.

A view of the 40% triangular infill looking through the bottom of the Audi floor jack pad.

I used concentric infill for the bottom and top layers.  Other solid fill layers were set to rectilinear.  This nice Moire pattern appears in the bottom of the pad. The black smudge was acquired when I jacked up the car for the video.  Next time I'll take photos before I test a print under load.

Now I'll have to print a jack pad to fit my wife's car...

BMW jack pad dimensions

BMW jack pad printing with 50% infill in fluorescent green TPU.


The Fusion360 models for Audi and BMW jack pads are here.

Saturday, April 6, 2019

Repairing M-Audio BX5a Studio Monitors

I've had a pair of M-Audio BX5a speakers for use with my computer for a few years and over the last year or so, the gain in one channel, and then the other, has steadily decreased.  They're pretty decent computer speakers and I didn't want to throw them away and get new ones, so I searched the web to find service information but came up with nothing.

These speakers are biamplified and the specs claim 40W for the bass driver and 30 W for the tweeter.  The transformer that powers the speakers is rated at 2 x 16V 1.5A (marked on the transformer).  There is a pretty big heatsink on the two, probably class-AB, amplifier chips, but it's mounted inside the enclosure and the only thermal communication with the outside environment is via the steel back panel of the speakers (that is warm all the time when the speakers are powered) that the heatsink is mounted on and a little air that might make it to into the box via the bass vent. The result is that the speakers run warm.

Heat and electronics is never a good combo and leads to failure of electronic components.  The parts that are most affected are semiconductors that tend to fail catastrophically, and electrolytic capacitors that tend to degrade over time.  The speakers still worked, but gain was dropping, suggesting that the semiconductors were still functioning, and that signal coupling capacitors or power supply electrolytic and bypass capacitors may be failing.

I decided to repair the speakers using a brute-force approach that I used to use when repairing old vacuum tube radios- start by replacing all the electrolytic capacitors.  It's a reasonable approach given the low cost of capacitors and their relatively high probability of failure.  Also, if one has failed, others operating in the same environment may fail soon, too, so replacing all of them is the best way to ensure that the speakers will work for a few more years before they need any more attention.


Whenever I'm going to do something like this, I take lots of photos as I go so that if there's any doubt about what goes where, I can review the pictures and get things back together the right way.  I suggest you do the same.  As I take screws out, I put them in a tray so they don't get lost.  When there are different types/lengths of screws, I will sometimes turn them into their holes so that I will know which ones go where.

The first thing I had to do was get the speakers apart.  I have some M-Audio AV-40 computer speakers which suffered from failed capacitors a while ago.  They were a nightmare to work on because of the way the speakers were built, so I expected the same in the BX5a speakers.  I was pleasantly surprised to find them pretty easy to take apart.

There were only a couple tricky things to deal with.  Once the back panel was open, I had to reach into the speaker and clip a zip tie off the wires that connect to the drivers so that I could get my hand in far enough to disconnect the wires from the drivers.  There's an LED on the front panel and the wires from it go to a connector on the amplifier circuit board.  For some reason they put glue on the connector which made it a PITA to separate.  The wires from the power transformer went to a connector that was also glued.

Clip the zip-tie circled in green to release the LED and speaker wires, then reach in and pull the speaker leads off the drivers.  The LED attaches to the amplifier board with a connector so it gets released there.  There's a drop of glue holding the connector on the PCB for some reason.

Unscrew the two ground wires circled in green, then cut the zip-tie circled in pink to remove the ground plate to gain access to the amplifier PCB.  Unplug the transformer from the amplifier board - the connector is glued.  The final step is to unscrew the input connectors and volume control, then the three screws that hold the heatsink on the rear panel of the speaker.

This is the amplifier PCB and heatsink.  The nonpolar electrolytic caps are all green. There are two on the small PCB behind the volume control pot and one on the main board. The other electrolytic caps are all black.  All are rated for 105C.

After getting those items sorted out it was pretty easy to extract the amplifier assembly from the box and identify all the capacitors.  I drew a picture of the amplifier board and added major landmarks, then marked the values of the capacitors and their approximate locations.  The PCB is marked with component numbers so I made a list of all the numbers and values.  I also measured the diameter of all the caps so that when I ordered replacements I could be sure they'd fit in the same space.  The board is actually pretty generous with space around most of the parts, so matching the component sizes wasn't entirely necessary.

Capacitors and their locations on the PCB.  I just started using the Pilot white board markers and they are fantastic.  The colors are very bright and they erase cleanly and easily.  Highly recommended!

The 1 uF and 0.47 uF non polarized electrolytics were hard to replace.  Non polarized electrolytics are often used for coupling audio which means they may be exactly the caps that need to be replaced to get my speakers working like new again.  I was unable to find electrolytic replacements, so I used film capacitors instead.  Film caps will probably perform better and last longer, so it isn't a problem.  I found suitable parts in my junkbox, and picked out replacements from the DigiKey catalog.  The film caps have wider lead spacing than the original parts and are physically larger, but they fit into the board just fine.

I made a spreadsheet that has all the original capacitor values and designations and a list of DigiKey part number replacements for them.  All the replacements are rated for at least 105C operation, and in a few cases I was able to select parts that were rated for >1000 hrs operation at that temperature. It costs about $11 per speaker for all the capacitors.

Replacing the Caps

The parts are all through-hole type which makes replacing them very easy.  Be sure to pay attention to the polarity of the caps as you remove and install them.  I removed and replaced the old caps one by one.  I grabbed the cap that was coming out with a pair of pliers and heated its leads on the underside of the PCB until the part was loose enough to pull out.  Then I cleaned up the PCB as needed with some desoldering braid, and installed the new cap, matching the polarity of the old cap.  I kept a printout of the spreadsheet on my work table and checked off each capacitor as it was replaced to ensure I wouldn't miss any of them.   It took me about an hour per speaker to replace the old caps.


Reassembling the speakers is the exact opposite sequence of disassembly.  When you put the speakers back together, you have to be careful to reconnect the driver leads the right way.  In the first photo, above, the black lead for the bass driver connects to the terminal nearest the bottom of the photo, and the red lead goes to the other terminal.  The tweeter's black lead goes to the connection nearest the top of the photo and the white lead goe to the other terminal.  Be sure to reattach the ground wires and the metal ground plate that goes under the main PCB.


The speakers sound like new again.  I used to leave them powered up all the time which probably led to the short lifespan of the original capacitors.  In the future I'll power the speakers off when I'm not using them so they don't sit and cook.  Maybe they'll last longer this time...