Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Tag: Improvements
Making the world a better place, one piece at a time
While printing up handouts for my talk at Cabin Fever, I finally tracked down why Adobe Reader was producing such crappy colors.
The left is before and the right is after the fix, scanned at the same time with the same image adjustments:
Oversaturated vs normal printing
All of the print settings appeared correct (plain paper, 720 dpi, normal contrast, etc, etc), but Adobe Reader (and only Adobe Reader) looked like it was trying to print on vastly higher quality paper than I was using. Too much ink, too much contrast, generally useless results.
The solution was, as always, trivial, after far too much fiddling around.
In Reader’s Print dialog, there’s a button in the lower-left corner labeled Advanced. Clicky, then put a checkmark in the box that says Let printer determine colors.
And then It Just Works.
Equally puzzling: ask for 25 copies of a two-page document, check the Collate box, and you get 25 page 1, 25 page 2, then more page 1 starts coming out. I bet I’d get 25 x 25 sheets of paper by the time it gave up.
I have no idea what’s going on, either.
Memo to Self: verify that the box stays checked after updates.
After we rearranged the living room, we had a few floor lights in different locations that called for more X10 Appliance Controllers. I’m not a big fan of automated housing, because X10 communication is unreliable with a bullet, but it’s convenient to turn off all the lamps from the bedroom.
Anyhow, the old RCA HC25 X10 Appliance Modules I pulled out of the Big Box o’ X10 Stuff suffered from the usual conflict between compact fluorescent lamps and the “local control” misfeature that’s supposed to let you turn the appliance on by simply flipping the switch. The problem is that a CFL ballast draws a nonlinear trickle of current that the module misinterprets as a switch flip, thus occasionally turning the lamp on shortly after you turn it off.
This has been true since the first compact fluorescent bulbs appeared. The circuitry inside X10 modules hasn’t changed much, at least up until I bought the last round of switches quite some time ago. That’s either a Bad Thing (still a problem) or a Good Thing (everybody knows about it).
The solution (everybody knows about it, just use the obvious keywords) is to cut a jumper on the module’s circuit board that’s obviously placed there for this very reason. In this view, it’s just below the lower-right corner of the fat blue capacitor. If you need confirmation, it’s connected to pin 7 of the only IC on the board.
Snip the wire, move the cut end a little bit, and button the module up again.
Local control jumper cut
Oh, yeah. No user serviceable parts inside is a challenge around here…
The Thing-O-Matic Motherboard rides atop an Arduino Mega (with the auto-reset option disabled), drawing most of its power from the hulking ATX connector at one end. The Mega draws power from the ATX +12 V supply and produces +5 V through its on-board regulator.
As I noted there, that regulator runs surprisingly hot when fed from +12 V, even without any additional current flowing to the Mega’s pins. The solution here required another search through the parts heap, which eventually disgorged a small heatsink that was, I think, intended for a 16-pin DIP, although I obviously added the hole for some other, long-forgotten purpose.
Motherboard regulator heatsink
A bit of fin-bending to clear the (unused) power entry jack, a dab of JB Kwik epoxy, and a clamp to keep it in place while the epoxy cures:
Clamping the Motherboard regulator heatsink
You won’t have such a heatsink, but any similarly shaped chunk of metal, even without fins, should suffice. Nothing critical about it, as long as it clears the Motherboard that will be plugged atop the Mega; you’re just increasing the surface area for heat dissipation.
The Motherboard and Mega sit in the large opening across the Thing-O-Matic’s baseplate from the ATX supply’s fan intake, where they get plenty of cooling air. Do a before-and-after test with a fingertip on the regulator to feel the improvement for yourself.
This is, admittedly, just a feel-good tweak, but a cool regulator is a happy regulator. Spread the joy…
During the conversation following my original post on the MakerBot support forum, CodeRage suggested using cartridge heaters. I asked Eks about that and he said something along the lines of “Damn straight! We used ’em all over the place! Just do it!”
CodeRage plans to retrofit his MK5 head with a pair of 230 V 150 W heaters running at 120 V to get a total of 75 W. I have qualms about running line voltage around the extruder head, but it’s certainly a better solution than toasting power resistors.
The trouble with 1/2-inch models is that they don’t fit conveniently on the Thermal Core. I’d make an adapter block with a hole for the heater and two holes for the existing cap screws, but the screws don’t quite pass around a half-inch cartridge heater.
He suggested 1/8-inch heaters from Sun Electric Heater Company, which look like just the ticket except that they’re nigh onto 40 bucks a pop. Ouch.
High Temp Industries[Edit: new link 2013-12-27] has 1/4-inch heaters for under $20 that will fit in the space available. If I understand the configuration options, you can even get 12 V 30 W heaters (the same power as the existing resistors) with a 1000 °F (call it 500 °C) temperature rating.
So I think what’s needed is to get some of those heaters, machine blocks to hold them on each side of the Core, and see how that works. The heaters will fit between the resistor screw holes and the Core is just about exactly 1 inch long. What’s not to like?
This might work… except for the fact that HTI has a $150 minimum order, which is somewhat off-putting even for me. Anybody up for a group buy of ten cartridge heaters?
Note that if you swap in some cartridge heaters, you really should do the separate +12 V supply Extruder Controller hack described there.
[Update: Zach @ MBI has ordered a stack of cartridge heaters for their internal testing (he promises to send me some), plans a retrofit kit, and may become a retail source for the heaters. He reports the lead time to get heaters in bulk is something over two weeks, which is a lot longer than I expected.
In light of that, I will hold the “group order” until I have a better handle on what’s needed to retrofit cartridge heaters into the existing MK5 head, how they’ll actually work, and what PID loop retuning may be required. Once I know more about all that, we can proceed.
Having MBI handle the ordering & shipping makes sense to me!]
As nearly as I can tell, using a pair of 10 W power resistors as 30 W heating elements in the Thing-O-Matic’s MK5 Extruder Thermal Core isn’t going to work, at least if you want even minimal reliability.
The fundamental problem is that the resistor specification limits the dissipation to a few watts, tops, near 250 °C, where they must run in order to melt any of the plastic filaments.
The Thermal Core requires 20-30 W to maintain 225 °C, so each resistor must dissipate an average of 10-15 W at that temperature. That’s half of the MK5 extruder’s original design point and still nearly a factor of 10 beyond the resistor rating.
The original design runs at less than 50% duty cycle to maintain 225 °C, which agrees with my measurements:
50% of 60 W = 30 W
33% of 60 W = 20 W
If you want to run at lower power, it’s a drop-in replacement. Change the original 5 Ω resistors to 2.5 Ω resistors (from Digikey / Mouser / wherever), change the wiring to put them in series (not parallel!), and see how long they last. They’ll certainly fare better than at 30 W, but I wouldn’t expect more than a few hours of lifetime. The specs give them 1000 hours at rated power, which this certainly is not.
A series connection means that when one resistor fails, the heat goes off. The original parallel connection left one resistor carrying the load and, at 30 W, it can actually get the Core up to operating temperature and keep it there. Many folks have been baffled by that, but the diagnosis is simple. Measure the resistance of the parallel resistors at the Extruder Controller end of the wires:
5 Ω → one resistor has failed
An open circuit (infinite resistance) → both are dead
The problem with the lower power dissipation, whether from a failed resistor in the original design or my suggested change, is that the extruder head has a thermal time constant of 10-11 minutes. Lower power means a longer cold-start time; 30 W should get it up to 225 °C in about 20-30 minutes depending on the insulation. That’s not really a problem if you’re printing a series of objects, but might be objectionable for quick printing sessions.
However, when a resistor fails, the heat goes off, the plastic stiffens up, the DC extruder motor stalls, and the essentially unlimited motor current kills the A3977 driver on the extruder board. My incandescent lamp workaround may alleviate that problem: when the light goes on, check for a failed resistor.
I picked up a stock of 2-to-3 Ω power resistors and will do some further experimenting with power levels, insulation, and suchlike. This is a short-term fix to get my Thing-O-Matic running, but there’s a better long-term way to go: cartridge heaters on a modified Thermal Core, which I’ll discuss shortly.
If you arrived by search engine, jump there for my earliest guesstimates, go there to the beginning of the Thing-O-Matic hardware hackage posts, then read until you get back here. The story will, perforce, continue…
The DC motor used on the MK5 Extruder head seems unusually prone to sudden death, either by mechanical failure or something electrical. A stalled or shorted DC motor becomes a low resistance that destroys the A3977 H-bridge driver chip on the Extruder Controller board.
The power resistor reduces the voltage available to the motor, which draw something like 40 mA when unloaded and up to maybe 250 mA at full load. I don’t know what load the extruder puts on it, but at 100 mA the resistor drops 1 V, which seems excessive.
The relays seem like a nice solution, but they go clickety-clack and require actually building something, of which I’ve had quite enough lately, thank you very much.
While I was mooching those lugs, my buddy Eks suggested simply putting a low-wattage 12 V incandescent lamp in series with the motor. The cold filament has a very low resistance, but limits the current when if the motor shorts out.
Extruder motor with series #89 bulb
A bit of rummaging in the Lamp Box produced an old automotive #89 lamp that allows 560 mA into a dead short, which works out to 7 W.
If the motor draws 100 mA, it drop only 100 mV: good enough!
Not finding a suitable socket in the heap, I wired it in by soldering the wires directly to the brass shell and central solder tip and taping up the mess. Next time I get near the local AutoZone I’ll pick up a socket.
The Anderson Powerpoles may look like overkill, but they make life a lot easier when you’re fiddling with the machinery all the time.
Now, the lamp won’t prevent inductive transients from blowing away those puny signal-level Zener diodes that should protect the A3977 chip, but it’s exactly what you need for long-term overload prevention.
The Thing-O-Matic touches the plastic filament in three places:
Filament Drive Frame
Extruder Thermal Core
Automated Build Platform Belt
In each case, the plastic filament slides (or oozes) along another plastic surface, which is the classic way to generate a charge of static electricity. Think of a running a comb through your hair, rubbing a cat on a balloon, shuffling across a carpet in your fuzzy slippers, or pulling off an acrylic sweater.
In addition, the X and Y stepper motors each drive a rubber-ish timing belt around a plastic roller. Non-conductive belt on plastic pulley = static charge, with metal motor pulley collecting it on the motor shaft, thence to the motor frame. The motor shafts and frames do not connect to any of the motor conductors, because in most machines the stepper motors mount to a metal chassis. The Thing-O-Matic insulates its motors on plywood or plastic sheets with no conductive path to ground.
None of those metal parts has any provision to control a static charge accumulation, which means the charge will increase until one of two events transpires:
The charge reaches an equilibrium with leakage through the air
The potential reaches air’s breakdown voltage and arcs to an adjoining metal object closer to ground potential
The former situation may be tolerable (and is most likely during the humid summer months), but the latter causes those annoying random crashes and, sometimes, hardware failures. In round numbers, air’s breakdown voltage exceeds 1 kV / mm (25 kV / inch), which explains that blue-hot spark from your fingertip to the screw on the light switch.
I added drain wires to all of those locations, using wire stripped from an old ribbon cable. There’s no particular current involved, so thin wire will work just fine. Double it over a few times to fill the barrel of the solderless connectors, though, and use some heatshrink tubing for strain relief.
The ABP platform heat spreader underneath the belt looks like a huge (and completely isolated) capacitor plate with respect to the plastic accumulating atop the belt. The wire attaches to the far right rear of the spreader and trails off with all the other ABP cabling. Yes, those are the wooden side plates, not the acrylic ones, for a reason I’ll explain when I work through my embarrassment.
ABP Heat Spreader static drain
There’s no good way to attach a wire to the metal foil, so I used a dab of Wire Glue. The cured carbon-rich blob probably isn’t rated for protracted use at 125 °C, though, and perhaps a mechanical flange captured under one of the socket-head cap screws will be a better idea. This is a detail of the contact end; I threaded the wire through the solderless ring terminals for strain relief.
ABP static drain – detail
The Extruder DC motor has bolts passing entirely through the Filament Drive, so I captured a solderless connector under one head. After taking this picture, I realized that the lower motor bolt on the left side is a better location, as that one aims the connector’s open end up and to the right. Make it so.
Extruder motor static drain
The X axis stepper motor drain wire dunks down through a motor mount slot and follows the motor winding conductors out of the housing.
X Axis static drain
The Y axis stepper motor frame serves as the connection point for the Extruder Motor and X-axis drain wires, each secured under a separate motor mounting bolt. The third wire (with black and white heatstink tubing) snakes down through the left-front motor mounting slot in the acrylic sheet above the electronics bay.
Y Axis motor with static drains
The Z axis stepper has only metal-to-metal sliding contact, so it’s presumably free of static buildup. If you’re being fussy, ground that one, too.
The Extruder Thermal Core also requires a drain wire, but that one must also handle the fault current from a resistor failure that shorts the +12 V supply directly to the Thermal Core; I’ll discuss that situation separately in a few days.
The ABP and Y Axis drain wires join a hacked-together ground point secured to the metal case of the ATX power supply metal case. You could, of course, connect these to a DC common supply lead (any Black wire), but these are, by definition, non-current-carrying leads that ought not be mixed with the power distribution. The case is a known-good grounding point that’s bonded to the AC line’s earth-ground conductor, exactly where static charges want to go.
Static drain to ATX supply connector
The connector is obviously from a cut-off Molex-style hard drive power cable with all four sockets wired together; I sacrificed a handful of Y-splitter power cables for another project a while ago. The pins are lengths of 12 AWG copper wire harvested from a length of Romex house wire, with the drain wires soldered to one end, then covered with heatstink tubing. This is a kludge, but a workable solution.
Although I think static discharge is a relatively minor contributor to the random crashes and failures, it’s easy enough to eliminate with no side effects… as long as you leave enough wire to reach the far end of the axis travel range.