Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
After a year of fairly light use, the lens holder (and “attack ring”) of my J5-V2 flashlight worked loose and began to rattle. The ring holding the lens in place turned out to be finger-loose, but that wasn’t the entire problem, so I removed it and looked inside:
The aluminum ring holding the LED assembly in place was also finger-loose, so I unwound it to take the whole front end apart:
J5-V2 Flashlight – front parts
Reassembly with a few dabs of Loctite in appropriate places should prevent future rattles.
Given the number of … issues … accompanying this thing, I’d say it’s not been a good cost performer. The Anker LC40 and LC90 flashlights work much better.
So I intended to shrink the Autolevel probe with 1/8 inch drill rod and a tactile membrane switch:
MPCNC – Simple Z probe – pogo tactile switch
Unfortunately, it didn’t work nearly as well as I expected, because the switch membrane requires slightly less than the 180 g of pressure that pushes the P100 pogo pin entirely into its housing, leaving no overtravel worth mentioning. The membrane switch mechanism itself has much less than 1 mm of overtravel after the dome snaps, which left me with an uncomfortable feeling of impending doom.
I managed to figure that out before completely assembling the thing, saving me a bit of time.
The end of the pogo pin initially sported a dot of epoxy to spread the load over the switch dome:
Pogo pin with epoxy switch-pusher drop
I dismantled the pogo pin to see whether I could substitute a more forceful spring how it worked. As expected, a teeny spring drives the probe up against a trio of indentations in the brass housing. I didn’t expect the probe to have such an intricate shape, but it’s obvious in retrospect.
The OpenSCAD code for the housing required minimal tweakage from the larger version, so it’s not worth immortalizing.
The bCNC doc shows how to use a USB camera for XY alignment and I want to try it out. The Box o’ USB Cameras emitted a likely candidate with a focusing lens, six (!) white LEDs, and a ball mount attached to an aggressive spring clip, but its thick USB cable included a lumpy brightness pot for the LEDs and sprouted a mic plug (apparently, it predated cheap USB audio):
USB Camera – OEM wiring
The Box o’ USB Cables emitted a surprisingly long cable amputated from some random hunk of consumer electronics.
The LED brightness won’t need much adjustment after the first few minutes. I found a little 2 kΩ trimpot to fit the PCB holes:
USB Camera – inside – brightness pot
Miracle of miracles, the dial ended up almost centered behind the original mic pore. A few minutes of gentle filing embiggened the pore and moved it over the trimpot:
USB Camera – front with brightness pot
Yeah, the hole may need a plug or tape to keep the dust out, but there’s an even bigger gap around the lens.
It produces a 640×480 picture with pretty much the expected quality, which should suffice for its intended purpose.
The display started up fine, became encrypted during the next few hours, and remained garbled as the track information changed. This is almost certainly a bad SPI transfer trashing the OLED module’s control registers.
Dropping the clock to the absolute minimum of 0.5 MHz didn’t help, either:
serial = spi(device=0,port=0,bus_speed_hz=500000)
device = sh1106(serial)
This particular display woke up blank after loading the new code, then worked OK after another reset. The other streamers lit up as expected on the first try, so the slower SPI isn’t making the situation instantly worse.
Running the clock at 1 MHz definitely reduced the failure rate, which suggests it’s a glitchy thing.
Good embedded systems practice suggests resetting the entire display from scratch every now and again, but my streamer code has no concept of elapsed time. Opening that particular can o’ worms would almost certainly result in an on-screen clock and I do not want to go there.
I suppose I must get a new oscilloscope with SPI bus decoding to verify all the SPI setup and hold times …
The hulking pistol is a Tektronix A6203 100 A probe, the little black pencil is a Tek A6302 20 A probe:
MPCNC Z Axis AB current probe – detail
The absurdity of measuring a 600 mA (peak!) current with a 100 A probe isn’t lost on me, but those things have become genuine eBay collectibles over the last few years.
All of the (surviving) battery packs produce 9.0 to 9.2 V, a bit hotter than the pair of fully charged lithium cells the radio expects to see, but the first two radios lasted for six years under that abuse.
This one failed after a few hours. It’s a new radio, but I’m willing to assume I killed the thing and will just eat the cost.
I have no theories about what’s going on, but I must tweak my APRS interface to work with a Baofeng radio I have on the shelf.
From now on, though, both radios will run from their stock battery packs.
The MAXTEMP error killing the M2 while printing the bar clamp mounts (probably) came from a short in the thermistor pellet that lowered the thermistor resistance and raised the calculated temperature. I manually heated the extruder and, although the temperature stabilized at 250 °C, the history plot showed irregular downward jogs from increasing resistance. Whenever this constellation of symptoms appears on the M2 forums, I always recommend ordering another thermistor or two, so …
Start by turning a 1/8 inch OD brass tube down to 3.00 mm, parting off a suitable length, facing the ends:
M2 – thermistor brass tube turning
Countersink the ends just for pretty.
The tube should be a slip fit in the hot end:
M2 – hot end thermistor – turned brass tube
While I had the hot end on the bench, I scuffed the nozzle to remove (most of) the baked-on crud:
M2 – nozzle silicone – cleaned nozzle
The plan is to seal the thermistor bead inside the tube with JB Weld epoxy, which I’ve verified (!) to work at extrusion temperatures, depending on the epoxy to insulate the wiring and immobilize all the pieces.
Harvest the original wire harness from the defunct thermistor, solder to the bead, lay out guide lines:
M2 – thermistor – assembly 1 layout
Slobber epoxy over everytyhing, fill the tube, insert bead into tube, stabilize with tape:
M2 – thermistor – assembly 1 curing
Verify connectivity through the thermistor and isolation from the brass tube, then return upstairs to warm up thaw out while the epoxy cures.
At this point, the observant reader should be thinking “Uh, Ed, that bead looked a tad large. Are you absolutely sure … ?”
Halfway up the basement stairs I realized I’d meticulously entombed a 10 kΩ thermistor, not the 100 kΩ thermistor used in the M2’s hot end. You can easily verify the resistance, as I did, with a quick web search; I have hella-good SEO for some specific topics.
Back to the lab …
Fortunately, JB Weld has a pot life over an hour, so extract the wrong bead, unsolder, install the right thermistor using snippets of insulation harvested from the original wiring, realign components:
M2 – thermistor – assembly 2 layout
Reapply epoxy:
M2 – thermistor – assembly 2
Re-verify resistances, return upstairs, fast-forward through the night, have another good idea …