The Smell of Molten Projects in the Morning

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

  • 60 kHz Preamp: Power LED Resistor Oops

    I eventually noticed the yellow LED indicating +24 V input from the power supply (previously, a noisy wall wart) was dark. Poking around revealed I’d inadvertently installed a 1 kΩ ballast resistor:

    LF Preamp - burned power-on LED resistor
    LF Preamp – burned power-on LED resistor

    A 1/4 W resistor can’t dissipate half a watt for very long, as shown by the discolored circuit board around the leads and the faint smell of electrical death in the area.

    I swapped in a 3.3 kΩ resistor, the yellow LED lit up for a few seconds, then went dark again. This time, the LED was dead; apparently, it’d been overstressed for long enough to fail. I can’t be too annoyed.

    Unfortunately, replacing the LED required removing the entire housing with all three LEDs, chopping off the defunct block, reinstalling the attenuated block with the two green LEDs, installing a similar red LED, and finally installing a nice 3.3 kΩ half-watt resistor:

    Power LED - Red with 0.5 W resistor
    Power LED – Red with 0.5 W resistor

    So it goes …

  • 60 kHz Preamp: Tuning Fork Resonator Protection

    Limiting the resonator drive to about 1 μW in the face of wildly varying RF from the antenna (or the occasional finger fumble) requires brute force. A nose-to-tail pair of Schottky diodes seems to do the trick:

    Tuning Fork Resonator Filter - protection and biasing
    Tuning Fork Resonator Filter – protection and biasing

    The 100 Ω resistor blunts the drive from the LM353 op amp (implementing a bandpass filter) when the signal peaks exceed 200-ish mV in either direction from the Vcc/2 bias stored in the 10 μF cap.

    The 11.5 kΩ resistor downstream of the resonator isolates it from the Vcc/2 bias, with the 100 nF cap sinkholing the signal and the 4.7 kΩ resistor preventing feedback into the bias supply. The cap looks like 26 Ω at 60 kHz, so the feedback runs -52 dB from the output and the bias supply knocks it down a bit more. The preceding amps apply 40-ish dB of gain from the antenna terminals, so the loop gain looks OK.

    It’s another few components on the board:

    LF Crystal Tester - resonator protection
    LF Crystal Tester – resonator protection

    The blue twiddlecap should allow pulling the tuning fork’s series resonance upward to exactly 60 kHz.

    Applying way too much signal to the antenna terminals in order to get 1 Vpp from the LM353 shows the limiter in action:

    BP and Xtal filter out - 10.0 v sine 10 Meg xfmr
    BP and Xtal filter out – 10.0 v sine 10 Meg xfmr

    The resonator sees no more than 200 mV in either direction from the bias level, so it’s all good.

    On the low end, the diodes have no effect:

    BP and Xtal filter out - 1.1 v sine 10 Meg xfmr
    BP and Xtal filter out – 1.1 v sine 10 Meg xfmr

    Pay no attention to all that noise.

    My first thought was to put the diodes across the resonator, a Bad Idea: straight up, doesn’t work. The 1N5819 datasheet shows they have about 300 pF of junction capacitance at zero bias and a pair of ’em will swamp the resonator’s internal 0.8 pF parallel capacitance and punch it out of the circuit.

  • Tour Easy Headset Wrench

    The headset on my Tour Easy ‘bent worked its way loose, which led to a disturbing discovery: the headset wrench I made from a discarded flat wrench vanished with the shop tools donated to MakerSmiths.

    Fortunately, we live in the future:

    Tour Easy Headset Wrench - Slic3r preview
    Tour Easy Headset Wrench – Slic3r preview

    A thin plastic wrench is absolutely no good for torquing down the locknut, but that’s not what it’s for. Adjust the bearing race to the proper preload with this wrench, hold it in place, then torque the locknut with the BFW.

    The OpenSCAD source code as a GitHub Gist:

    // Tour Easy Headset Wrench
    // Ed Nisley KE4ZNU – September 2017
    /* [Extrusion] */
    ThreadThick = 0.25; // [0.20, 0.25]
    ThreadWidth = 0.40; // [0.40]
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    Protrusion = 0.01; // [0.01, 0.1]
    HoleWindage = 0.2;
    //- Sizes
    /* [Dimensions] */
    WrenchSize = 32.0; // headset race across-the-flats size
    NumFlats = 8;
    JawWidth = 10.0;
    JawOD = 2*JawWidth + WrenchSize;
    echo(str("Jaw OD: ",JawOD));
    StemOD = 23.0;
    WrenchThick = 5.0;
    HandleLength = 2*JawOD;
    HandleWidth = 25.0;
    //- Build things
    difference() {
    linear_extrude(height=WrenchThick,convexity=4) {
    hull() { // taper wrench body to handle
    circle(d=JawOD);
    translate([0.75*JawOD,0,0])
    circle(d=HandleWidth);
    }
    hull() { // handle
    translate([0.75*JawOD,0,0])
    circle(d=HandleWidth);
    translate([HandleLength,0,0])
    circle(d=HandleWidth);
    }
    }
    translate([0,0,-Protrusion])
    rotate(1*180/NumFlats) { // cosine converts across-flats to circle dia
    cylinder(d=WrenchSize/cos(180/NumFlats),h=(WrenchThick + 2*Protrusion),$fn=NumFlats);
    }
    translate([-StemOD,0,WrenchThick/2])
    cube([2*StemOD,StemOD,(WrenchThick + 2*Protrusion)],center=true);
    translate([WrenchSize,0,WrenchThick – 3*ThreadThick])
    linear_extrude(3*ThreadThick + Protrusion,convexity=10)
    text(text=str("TE Headset"),size=8,spacing=1.20,font="Arial",halign="left",valign="center");
    }

    Now, I’d like to say that was easy, but in actual point of fact …

    First, I forgot to divide by cos(180/6) to convert the across-the-flats size to the diameter of OpenSCAD’s circumscribed hexagon-as-circle, which made the wrench uselessly small:

    Tour Easy Headset Wrench - v1
    Tour Easy Headset Wrench – v1

    If you have a 28 mm nut with low torque requirements, though, I’ve got your back.

    While I had the hood up, I slenderized the handle into a much shapelier figure:

    Tour Easy Headset Wrench
    Tour Easy Headset Wrench

    Trotting off to the garage with a warm plastic wrench in hand, I discovered the blindingly obvious fact that the headset nuts have eight sides. On the upside, the number of sides became a parameter, so, should you happen to need a five-sided wrench (perhaps on Mars), you can have one.

    So, yeah, it’s rapid prototyping in full effect:

    Tour Easy Headset Wrench Iterations
    Tour Easy Headset Wrench Iterations

    Remember, kids, never design while distracted …

  • American Standard Kitchen Faucet: Cleaning and O-Rings

    The O-rings on the spout of our American Standard kitchen faucet wore out again; having described that repair many times, there’s no need to say much more about it. I didn’t want to get into this repair while thinking about the hot limit problem, but I did check to make sure the box under the sink had some O-ring replacement kits.

    A bench vise with soft jaws holds the spout while you remove the escutcheon ring retainer:

    Kitchen faucet spout - in vise
    Kitchen faucet spout – in vise

    Basically, just tap around the ring with a long drift punch and it’ll eventually fall out onto the reasonably clean rag below it.

    The interior of the spout before cleaning shows why you should never look into your plumbing:

    Kitchen faucet spout interior - before
    Kitchen faucet spout interior – before

    After a few hours in a white vinegar bath and a few minutes of scrubbing with a ScotchBrite pad:

    Kitchen faucet spout interior - after - 1
    Kitchen faucet spout interior – after – 1

    Another view:

    Kitchen faucet spout interior - after - 2
    Kitchen faucet spout interior – after – 2

    Obviously, you could do better, but it’s hard to get excited about the last few nodules. For whatever it’s worth, the nodules grow despite our water softener; I have no clue what’s going on in there.

    A few wipes of silicone grease, reassemble in reverse order, apply a firm shove, and it’s leakless again. For a while, anyhow.

  • LF Crystal Tester: Variable CX

    Replacing the 22 pF series capacitor with a variable cap went smoothly after I got over having to rip-and-replace the adjacent socket and header, too:

    LF Crystal Tester - variable CX
    LF Crystal Tester – variable CX

    The circuit remains the same, plus a test point to simplify measuring the actual capacitance:

    Test Fixture - variable CX
    Test Fixture – variable CX

    I didn’t add a jumper to disconnect the crystal fixture, because (I think) it would add too much uncontrolled stray capacitance: removing the header would disconnect the socket / header wires.

    The little red cap adjusts from (nominally) 3 pF to 28 pF over half a turn, without a stop. The rotor does have a marked side, but basically you’re supposed to tune for best picture and leave it at that.

    The AADE L/C meter works fine, but in the low pF range everything affects the reading. The only way to measure the actual capacitance seems to be:

    • Clip one lead to the top of the 24 Ω terminating resistor
    • Hold the other within a millimeter of the test point pin
    • Zero the meter, note any residual offset
    • Touch clip lead to test pin
    • Note reading, mentally subtract residual offset

    The as-installed range spans 6.5 pF to 28 pF. I think I can measure it to within ±0.05 pF, with a considerable dependence on maintaining the same pressure on the clip lead.

    I suppose if you were doing this for real, you’d throw another Teledyne relay at the problem.

     

  • RAMPS 1.4 Heatsinking

    The knockoff Arduino Mega board actually has eight thermal vias on the copper pour around the regulator:

    RAMPS Mega - regulator - thermal vias
    RAMPS Mega – regulator – thermal vias

    I sawed up a clip-on heatsink originally intended for a 14 pin DIP, bent it a bit, and epoxied it atop the regulator with enough of a blob to contact the copper pour:

    RAMPS Mega - regulator heatsink - clamping
    RAMPS Mega – regulator heatsink – clamping

    That’s metal-filled JB Weld for good thermal conductivity and electrical insulation:

    RAMPS Mega - regulator heatsink
    RAMPS Mega – regulator heatsink

    The blob affixing the heatsink to the crystal can was an oopsie, but won’t do any harm. It’s not clear the heatsink will do any good in that confined space, but those regulators lead a rough life and need all the help they can get.

    The five stepper drivers sport HR4988SQ chips, rather than Allegro A4988 chips:

    RAMPS - stepper driver - HR4988 chip
    RAMPS – stepper driver – HR4988 chip

    I’d rather see a knockoff than a counterfeit, although by now there’s really no way to tell if it’s a counterfeit knockoff. The Kynix datasheet looks like a direct rip from Allegro.

    They now sport cute little heatsinks, which, for all I know, might help a bit:

    RAMPS shield - stepper heatsinks
    RAMPS shield – stepper heatsinks

    The driver boards are slightly longer than the spacing mandated by the continuous socket strips under the three-in-a-row layout:

    RAMPS - stepper driver board fit
    RAMPS – stepper driver board fit

    Introducing them to Mr Disk Sander (turned by hand) knocked off just enough to make ’em fit.

  • Knockoff RAMPS 1.4 Printer Controller Hardware Kit

    For 36 bucks delivered halfway around the planet, you can get a remarkable pile of gadgetry:

    RAMPS 1.4 - eBay parts
    RAMPS 1.4 – eBay parts

    With a bit of persuasion, it can become a 3D printer controller based on a RepRap RAMPS 1.4 shield or serve as a generic stepper / servo motor driver with three honkin’ MOSFET power switches, two thermistor inputs, a variety of I/O bits from the Arduino Mega PCB, and a monochrome LCD with a knob.

    The persuasion includes un-bending various header pins:

    RAMPS shield - bent pin
    RAMPS shield – bent pin

    Correcting bowlegged pin strips:

    And clipping offending pins:

    The interference between the bottom of the RAMPS power connector pin and the top of the Arduino Mega coaxial power jack seems baked right into the original PCB layout, which is puzzling. If you don’t trim the pins, this is as close as the boards will get:

    Well, of course, you could just jam all those headers together and bend the RAMPS PCB.

    The bent pin near the Reset button connects to the PS_ON output used to enable ATX-style power supplies. You connect the supply’s 5V_SBY always-on output to the VCC pin, which powers the Mega and most of the logic, but not the stepper motor outputs or the heaters.

    To make that work, remove D1 from the board where it’s snuggled along the header strip:

     RAMPS shield - D1 D2 locations
    RAMPS shield – D1 D2 locations

    D2, next to the fuse near the bottom of the picture, provides reverse-polarity protection for the RAMPS board.

    The servo motor power comes from the 5V pin. If you don’t need the PS_ON output and 5V_SBY input, then jumper the VCC and 5V pins together. Otherwise, you could solder-blob those pins on the bottom of the board, which means the servos are always powered.

    Configuring the latest 1.1.x version of Marlin should be straightforward …