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: Repairs

If it used to work, it can work again

  • Snowblower Muffler Bracket

    After three years, the bracket locking the snowblower’s muffler bolts broke, but this time I saw the bolt pop out of the muffler, fall to the driveway, and lie there sizzling in the slush. I tightened the remaining bolt and completed the mission.

    The OEM bracket was thin sheet metal and broke across one bolt hole under the head. I sawed a rectangle out of a defunct PC case, then drilled clearance holes:

    Snowblower muffler - drilling bracket
    Snowblower muffler – drilling bracket

    Bending two corners upward locks the bolt heads in position. I started the bends by clamping the bracket in the bench vise and whacking the corners, then finishing the job with a drift punch after installing it:

    Snowblower muffler installed
    Snowblower muffler installed

    Of course, I renewed the Never-Seez on the bolt threads; they obviously weren’t corroded in place!

    For whatever it’s worth, the many spot welds joining the top bracket to the muffler are doing just fine.

  • Baofeng BL-5 Pack Rebuild

    The 18650 cell protection PCBs with 8205 ICs arrived and seemed small enough to simply tuck into the gap between the rounded cells in the second Baofeng BL-5 pack:

    Baofeng BL-5 - new protection PCB - wiring 1
    Baofeng BL-5 – new protection PCB – wiring 1

    For whatever it might be worth, you’re looking at the only Baofeng battery pack containing an actual 10 kΩ thermistor, harvested from the benchtop Tray of Doom:

    Baofeng BL-5 pack - thermistor
    Baofeng BL-5 pack – thermistor

    Unfortunately, the components on the PCB stuck up a bit too far from the cell surface and held the lid just slightly proud of the case. Applying pressure to lithium cells being a Bad Idea, I rearranged the layout by flipping the cells over, tucking the PCB components between the cells, and connecting everything with nickel tape instead of insulated wires:

    Baofeng BL-5 - new protection PCB - wiring 2
    Baofeng BL-5 – new protection PCB – wiring 2

    The snippets of manila paper and Kapton tape hold things apart and together, as needed. Looks ugly, fits better.

    Pop it in the charger to reset the protection PCB lockout and it’s all good again.

  • Bench Leg Repair

    A long long time ago, I conjured a short bench for our Larval Engineer from a pair of junked folding-table legs and a truly hideous mid-50s Genuine Formica countertop salvaged from the kitchen refurbishment:

    Bench Leg - overview
    Bench Leg – overview

    Most recently, it held a pile of test equipment and random stuff next to the MPCNC, whereupon the welds holding the tube with the feet to one of the vertical tubes on the far end failed. It wasn’t in the critical path, so I broke the welds on the other tube, propped the vertical tubes on wood blocks, and continued the mission. Having finally finished those measurements, I could clear off the bench and repair the legs.

    I no longer have my welding gear and, in any event, it’s still winter outside, so a low-excitement repair seemed in order: drill suitable holes into the leg crosspiece, make threaded inserts for the tubes, and join them with 3/8-16 bolts.

    So, we begin.

    File the broken welds off the foot tube, align it in the drill press vice (where it barely fits!), center drill to make a pilot hole, then poke a 3/8 inch drill completely through to line up both holes:

    Bench Leg - through drilling
    Bench Leg – through drilling

    By the Universal Law of the Conservation of Perversity, a 3/8 inch bolt didn’t quite fit the 3/8 inch hole, so I embiggened the holes with a step drill:

    Bench Leg - step-drilling to size
    Bench Leg – step-drilling to size

    The step drill obviously has hard metric diameters labeled as weird inch sizes:

    Quasi-inch step drill
    Quasi-inch step drill

    I can’t read the second step, either, but it’s apparently 25/64 inch = 9.8 mm, which is just enough over 3/8 inch = 9.5 mm to be useful. The next step is 14 mm = 35/64 inch, so the drill is a bit of a lump.

    The leg tubes were a hair over 0.9 inch ID and not particularly round. Tolerances being slack, slice a bit more than two inches off a 1 inch OD aluminum rod:

    Bench Leg - sawing rod stock
    Bench Leg – sawing rod stock

    I wanted more than one diameter in the tubes, but the bolts in my stash topped out at 2 inches and, really, an inch of aluminum won’t go anywhere.

    Clean up one end of the rod to 0.9 inch OD, flip, and center drill:

    Bench Leg - center drilling insert
    Bench Leg – center drilling insert

    Obviously, surface finish and concentricity aren’t critical, but the cleaned-up OD of the left end lined up at  barely perceptible mismatch with the (yet to be done) right end.

    Sunder in twain:

    Bench Leg - sawing leg inserts
    Bench Leg – sawing leg inserts

    Betcha you can’t spot the junction between the two ODs, either.

    Drill 3/8 inch through, then discover you (well, I) have neither a drill big enough nor a boring bar small enough to embiggen one end of the hole for a nasty interference fit against the tips of a 3/8 inch hex nut.

    Once again, a step drill to the rescue:

    Bench Leg - step-drilling insert
    Bench Leg – step-drilling insert

    Because it’s a step drill, the counterbore isn’t quite deep enough for the whole nut, so turn the nut to fit the recess left by the drill:

    Bench Leg - nut shaping
    Bench Leg – nut shaping

    Put a bolt through the insert as a guide, spin the nut on, backstop the insert with a machinist’s parallel jaw clamp (loose, just to give the head somewhere to go), line ’em up, and mash the nut into place with the bench vise:

    Bench Leg - nut pressed in place
    Bench Leg – nut pressed in place

    Clean up the broken welds with a rat tail file, hammer the inserts into the tubes:

    Bench Leg - insert installed
    Bench Leg – insert installed

    Which, as I expected, rounded them nicely while producing an absolutely solid, ain’t gonna work loose, dry joint.

    Add threadlocker to the bolts and it’s all good:

    Bench Leg - repaired
    Bench Leg – repaired

    Stipulated: butt-ugly.

    Tell me you’d have fish-mouthed those inserts just for pretty, after noting the factory didn’t bother fishmouthing the vertical tubes before welding them in place.

    But it was good for generous dose of Quality Shop Time!

  • Streaming Radio Player: Timing Tweaks

    Slowing the SPI clock and updating the drivers having had no noticeable effect on the OLED display corruption, I once again pondered the SH1106 controller timing specs.

    The chip reset seems remarkably slow, even at maximum VCC:

    SH1106 - Reset Timing Specs
    SH1106 – Reset Timing Specs

    I think the relevant code is in the luma.core driver’s serial.py file. On the RPi, it resides in /usr/local/lib/python2.7/dist-packages/luma/core/interface/.

    As far as I can tell, the bitbang class handles all the setup and teardown around the actual data transfers, but it’s not clear (to me, anyway) how it interacts with the underlying hardware SPI machinery.

    So, let’s add some sleepiness to the Reset code:

            if self._RST is not None:
                self._gpio.output(self._RST, self._gpio.LOW)  # Reset device
                time.sleep(1.0e-3)
                self._gpio.output(self._RST, self._gpio.HIGH)  # Keep RESET pulled high
                time.sleep(1.0e-3)
    

    A few milliseconds, rather than a few (hundred) microseconds, won’t make any perceptible difference.

    Similarly, the Chip Select and Address (Command/Data) signals require more delay than might occur between successive Python statements:

    SH1106 - SPI Address and Select Timing Specs
    SH1106 – SPI Address and Select Timing Specs

    This should do the trick, again with excessive delay:

            if self._DC:
                self._gpio.output(self._DC, self._cmd_mode)
                time.sleep(1.0e-3)
    
    ... snippage ...
    
            if self._DC:
                self._gpio.output(self._DC, self._data_mode)
                time.sleep(1.0e-3)
    
    ... snippage ...
    
            if self._CE:
                gpio.output(self._CE, gpio.LOW)  # Active low
                time.sleep(1.0e-3)
    
    ... snippage ...
    
            if self._CE:
                gpio.output(self._CE, gpio.HIGH)
                time.sleep(1.0e-3)
    

    Although it shouldn’t be necessary, I blew away the pyc files to prevent future confusion over who’s doing what with which.

    Once again, this will require several weeks to see whether the situation changes for the better.

  • Sena PS410 Serial Server: Burnin’ In

    The USB serial adapters I use to capture HP54602 scope and HP8591 spectrum analyzer screenshots, as well as monitor the HP Z8501 GPS time standard, lack unique identifiers and appear as unpredictable device nodes.

    After putting up with this for far too long, I dropped $15 on a Sena Technologies PS410 serial server:

    Sena PS410 Serial Server - interior
    Sena PS410 Serial Server – interior

    It needed a new lithium coin cell, of course:

    Sena PS410 Serial Server - as-received CR2032
    Sena PS410 Serial Server – as-received CR2032

    The PCB and chip date codes suggest a 2009 build, so “98” might mean August 2009. Whether that’s the manufacturing date or the best used by date, ya never know.

    The eBay deal didn’t include the power supply, so I hacked a coaxial jack on the back:

    Sena PS410 Serial Server - hacked power jack
    Sena PS410 Serial Server – hacked power jack

    A 14 VDC IBM laptop brick from the pile suits the “9 to 36 V” range printed on the case.

    Poking the “factory reset” switch did what you’d expect and the “console” serial port on the front worked fine. I plugged in the scope, the spectrum analyzer, and the GPS receiver, whereupon the bench took on the unmistakable aroma of electronic death:

    Sena PS410 Serial Server - charred ferrite chip
    Sena PS410 Serial Server – charred ferrite chip

    Some probing suggests FB9 used to be a ferrite bead between serial port 2’s ground pin and the frame ground.

    To compress an afternoon of tinkering into one sentence, there seems to be an occasional 35 VAC difference between the spectrum analyzer and the scope, but only when one or the other is plugged into the PS410. Everything is (now!) plugged into the same branch circuit and, in fact, the same outlet via many power strips, but the difference remains. A different power supply makes no difference, either.

    I managed to burn out the ferrite bead on Port 1 with only the scope and the power supply plugged in, by connecting the scope’s ground lead to the shell of Port 2. That makes no sense: there is no voltage difference between the scope’s serial ground and its probe ground.

    Something Is Not Right, but I’m baffled.

    I have established that the server works fine, even with the charred beads, which is a Good Thing.

  • Bottle Cap Rehabilitation

    Mary acquired this bottle a long time ago and has used it forever, so it has Historic Connotations and cannot be discarded. Alas, the cardboard-and-plastic seal in the cap finally disintegrated; I replaced it with various plastic foams and sheets, none of which worked.

    Finally, I found the cork sheet stash while looking for something else and cut out a disk:

    Rehabilitated bottle cap
    Rehabilitated bottle cap

    It works perfectly, of course, because cork.

    That was easy.

  • Baofeng BL-5 Battery Pack: Recharge and Reassembly

    Separately charging all four cells from the Baofeng BL-5 packs covered the Electronics Bench with wires:

    Baofeng BL-5 cell charging
    Baofeng BL-5 cell charging

    The cell sits on a ceramic tile as a nod to fire safety, although I doubt it makes any difference.

    The discharge tests showed two nearly identical pairs:

    Baofeng BL-5 Cells - Separate Charge - 2018-02-24
    Baofeng BL-5 Cells – Separate Charge – 2018-02-24

    Surprisingly, cells A and B (upper traces) were deaders in the original packs. Cells C and D (lower traces) were more-or-less fully charged, but now have a lower terminal voltage and slightly lower capacity. I have no explanation for that, nor for the voltage undulations.

    The rebuilt packs pair up A+B and C+D.

    Reassembling pairs into the pack shell and resoldering all the leads produces a good pack:

    Baofeng BL-5 battery rebuild
    Baofeng BL-5 battery rebuild

    I later added a snippet of heavy manila paper under the nickel tape bent around the edge of the pack as a third level of insulation, in the interest of having the nickel tape not produce a dead short between the isolated – terminal and the + cell case.

    Memo to Self: tape the long wiggly leads from the protection PCB to the radio contacts (at the left side) before soldering the PCB to the cell terminals, because an inadvertent short will convert the 8205A battery protection IC into a Light-Emitting IC, at least for a moment, and subsequently release the Acrid Smell of Electrical Death. A handful of charge PCBs are en route halfway around the planet, from which I intend to liberate one IC for this board; with luck, I didn’t incinerate anything else.

    The pack works fine in the radio, as does the APRS interface:

    APRS Coverage in Poughkeepsie - 2018-03-01
    APRS Coverage in Poughkeepsie – 2018-03-01

    Unfortunately, two APRS iGates vanished in the last year, leaving poor coverage south of Poughkeepsie.