Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
The power + thermistor cable for the M2 Heated Build Platform attaches to the Z axis stage at the Y axis motor, with the conductors encased in a fairly stiff braided loom. The cable flexes from fully retracted to fully extended as the HBP moves along the Y axis. Here’s a view at about mid-travel:
M2 HBP cables – wire loom
Unfortunately, there’s no provision for strain relief at the HBP or around the connectors. The silicone heating pad firmly anchors the two pairs of power wires to the aluminum plate, but that simply means they flex sharply at the edge of the pad:
M2 HBP connections
I removed the loom between the motor mount and the connectors, but that still doesn’t provide nearly enough flexibility:
M2 HBP cables – loom removed
The wires still flex sharply at the outboard side of the connector and at the HBP pad; this can’t possibly survive more than a few thousand long cycles before something expensive breaks. The Thing-O-Matic HBP connector debacle suggests that I may need to attach a strut to the Y axis stage that rigidly supports the connectors, with a much longer loop of wire soaking up the strain to the fixed end.
The 18 AWG wires carrying the 10+ A of HBP current get unpleasantly warm, suggesting that new loop will require heavier wire. In round numbers from that table, 18 AWG stranded wire runs 6.5 mΩ/ft, so the (roughly) four feet of wire pair between the electronics case and the HBP will drop 250+ mV and dissipate 2.5 W. I suspect it’s worse than that, but haven’t made any measurements to back up that suspicion.
Enthusiasm may get a product out, but engineering makes it work
Plywood and plastic do not produce a stable 3D printer
Measurements matter
8-bit microcontrollers belong in the dustbin of history
With that in mind, I’ve long thought that LinuxCNC (formerly EMC2) would provide a much better basis for the control software required for a 3D printer than the current crop of Arduino-based microcontrollers. LinuxCNC provides:
Hard real time motion control with proven performance
A robust, well-defined hardware interface layer
Ladder-logic machine control
Isolated userspace programming
Access to a complete Linux distro’s wealth of programs / utilities
Access to an x86 PC’s wealth of hardware gadgetry
Rather than (try to) force-fit new functions in an Arduino microcontroller, I decided it would be interesting to retrofit a DIY 3D printer with a LinuxCNC controller, improve the basic hardware control and sensing, instrument the extruder, then take measurements that might shed some light on DIY 3D printing’s current shortcomings.
Rebuild the extruder with temperature and force sensors
Start taking measurements!
My reasons for choosing the Makergear M2 as the basis for this project should be obvious:
All metal: no plywood, no acrylic (albeit a plastic filament drive)
Decent stepper motors (with one notable exception)
Reasonable hot end design
Good reputation
The first step of the overall plan included a meticulously documented M2 build that I figured would take a month or two, what with the usual snafus and gotchas that accompany building any complex mechanism. Quite by coincidence, a huge box arrived on my birthday (the Thing-O-Matic arrived on Christmas Eve, so perhaps this is a tradition), the day when I learned that Mad Phil had entered his final weeks of life.
As the Yiddish proverb puts it: If you wish to hear G*d laugh, tell him of your plans.
So I converted a box of parts into a functional M2 3D printer over the course of four intense days, alternating between our living room floor and a card table in Phil’s home office, showing him how things worked, getting his advice & suggestions, and swapping “Do you remember when?” stories. Another few days sufficed for software installation, configuration, and basic tuneup; I managed to show him some shiny plastic doodads just before he departed consensus reality; as nearly as I can tell, we both benefited from the distractions.
Which means I don’t have many pictures or much documentation of the in-process tweakage that produced a functional printer. The next week or so of posts should cover the key points in enough detail to be useful.
Not to spoil the plot or anything: a stock M2 works wonderfully well.
Owl – half size – left
For example, a half-scale cushwa owl printed in PLA at 165 °C with no bed cooling and these Slic3r parameters:
500 mm/s move
300 mm/s infill
200 mm/s solid infill
100 mm/s internal perimeter
50 mm/s bottom layer
30 mm/s external perimeter
1 mm retract @ 300 mm/s
The beak came out slightly droopy and each downward-pointing feather dangles a glittery drop. There’s room for improvement, but that’s pretty good a week after opening a box o’ parts…
Running a random set of colored LEDs from the Basement Laboratory Parts Warehouse Wing through the LED Curve Tracer produced this pleasant plot:
The white LED doesn’t match up with either the blue or the UV LED. Perhaps the blue LED uses a completely different chemistry that shoves further to the right than seems proper? I suppose I should run a handful of white, blue, and UV LEDs through the thing just to see what’s going on…
The Bash / Gnuplot source code:
#!/bin/sh
numLEDs=8
#-- overhead
export GDFONTPATH="/usr/share/fonts/truetype/"
base="${1%.*}"
echo Base name: ${base}
ofile=${base}.png
echo Input file: $1
echo Output file: ${ofile}
#-- do it
gnuplot << EOF
#set term x11
set term png font "arialbd.ttf" 18 size 950,600
set output "${ofile}"
set title "${base}"
set key noautotitles
unset mouse
set bmargin 4
set grid xtics ytics
set xlabel "Forward Voltage - V"
set format x "%4.1f"
set xrange [0.5:4.5]
#set xtics 0,5
set mxtics 2
#set logscale y
#set ytics nomirror autofreq
set ylabel "Current - mA"
set format y "%3.0f"
set yrange [0:35]
set mytics 2
#set y2label "right side variable"
#set y2tics nomirror autofreq 2
#set format y2 "%3.0f"
#set y2range [0:200]
#set y2tics 32
#set rmargin 9
set datafile separator whitespace
set label 1 "IR" at 1.32,32 center
set label 2 "R" at 1.79,32 center
set label 3 "O" at 2.10,32 center
set label 4 "Y" at 2.65,32 center
set label 5 "G" at 2.42,32 center
set label 6 "B" at 4.05,32 center
set label 7 "UV" at 3.90,32 center
set label 8 "W" at 3.25,32 center
#set arrow from 2.100,32 to 2.125,31 lt 1 lw 2 lc 0
plot \
"$1" index 0 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "red" ,\
"$1" index 1 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "orange" ,\
"$1" index 2 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "dark-yellow" ,\
"$1" index 3 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "green" ,\
"$1" index 4 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "blue" ,\
"$1" index 5 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "purple" ,\
"$1" index 6 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "magenta" ,\
"$1" index 7 using (\$5/1000):(\$2/1000) with linespoints pt 1 lw 2 lc rgb "dark-gray"
EOF
This receipt from a recent trip to the scrap metal dealer explains everything I’ve read about what happens when “cheap commodities” become “precious metals”…
That having been the case for some years, the weighman now scans your (well, my) drivers license to establish traceability in the event the metal turns out to be stolen, with your ID printed on the receipt. The receipt turns into cash at a fortress-like ATM structure out front, far from the actual metal-handling operation.
Despite having a computerized metal scale below what looks to be a cable modem bolted to the wall of the small-lot bay, EMR has no web presence whatsoever. That’s not yet a crime, but …
Some explanations:
B241 = brass plumbing fittings, chrome OK
CABL1 = house wiring and other copper-heavy cable
CABL2 = electronic gadget cables & connectors
C273 = pure copper with no fittings or solder, no enameled wire
C275 = copper bonded to any other metal or coated with insulation
We immediately converted those two Grants into a tank of gas and two bags of groceries, so the day came out about even.
Judging from the much-folded Dayton 4X221 Snap-Around Ammeter Operating Instructions (a scanned copy that I folded around the original and tucked inside the case), the ammeter dates back to 1979, which says Mad Phil probably used it in the early 80s, when he was repairing AV equipment. Unlike most vintage clamp-on ammeters, this one can also measure voltage and resistance:
Dayton 4X221 Snap-Around Ammeter – Specifications
The resistance function requires a single AAA alkaline cell in the bulky probe, so this should come as no surprise:
The probe housing contains a 1 A fast-blow fuse, which blocked the corrosion from getting deeper into the probe tip:
Dayton 4X221 Resistance Probe – battery and fuse
The AAA cell was “Best if installed by Jan 1999”, which I’m sure was true. Somehow, you never recognize the last time you use something; I suppose old instruments get used to not seeing the light over the workbench after a while.
Anyhow.
Douse the corrosion with vinegar to neutralize the potassium hydroxide, rinse out the probe body, polish the top of the fuse, buff up the battery contact on the test lead, and it’s all good again.
Aitch bestowed this gem on me while cleaning out his collection:
6C21 Triode
It’s a 6C21 triode, originally used as a radar modulator, atop a letter-size sheet of graph paper. The plate terminal is on top, the grid sticks out to the side, and the filament is common with the cathode through the base pins.
The gray film inside the bulb shows that it’s been used, but the filament still has continuity. Ordinarily, you could turn something like this into a night light by running the filament at a voltage somewhat under its rating, but my bench supply maxed out at @ 3 A without even warming it up; a dim orange night light that burns maybe 75 W is Not A Good Idea.
The base has some intriguing holes, originally used for forced-air cooling, that lead directly to the glass envelope:
6C21 Triode – base
One could mount discrete LEDs in those holes, maybe a slightly turned-down 10 mm cool-white LED in the middle flanked by red and blue, and run a low-power Arduino-based mood light; by some cosmic coincidence, the hole spacing matches up almost perfectly with those LED strips. Or one could go full analog with three red LEDs driven by the WWVB signal.
I’m thinking a plain black acrylic case, with the tube base sunk into the middle, would be about right. No readouts, no dials, no buttons, just a gently glowing tube.
Maybe a 3D printed socket holding everything in place?
That comment suggested scroll ring failures on a Kensington Expert Mouse (it’s a trackball) might occur when the apertures become misaligned from the IR emitter-detector pair, although later results were equivocal. I tore apart a failed unit to see what the alignment looked like for a known-bad scroll ring.
The right side view shows the receiver roughly centered in an aperture:
Kensington Expert Mouse – Scroll Ring aperture – right
The left side view shows that the ring is almost flush against the circuit board, with the isolating cutout just in front, and it’s not obvious how to lower it any further:
Kensington Expert Mouse – Scroll Ring aperture – left
So I think there’s no way to realign this one, other than to raise the aperture ring a bit, but that doesn’t seem like it would make any difference: the detector already has a good view of the emitter.
If your trackball has a failed scroll ring, tweaking the aperture ring’s alignment certainly can’t hurt: try it and report back.
If you don’t expect a miracle, you probably won’t be disappointed, alas.
Hi, I wanted to leave a comment for your page here: [this url]
I’ve got an expert mouse trackball that was having intermittent scroll ring problems, then finally quit working altogether. Dismantled it easily using the instructions on this site.
Cleaned it and it still wasn’t working. Tried changing the alignment of the IR emitter/detectors and it still wasn’t working. Then we kept on fiddling with the alignment and voilà.
Like others have said, the alignment seems to be SUPER sensitive. So if any others are reading this with the same problem, keep persevering.
Thanks to everyone who has posted to help find solutions!