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

  • GIMP Menu Verbiage

    GIMP seems to set up its menu structure during installation, with sensible, if lengthy, hardcoded addresses and menu names for your remote (network) scanner based on its host and USB port location:

    (proc-def "xsane-net-3a-plex760-2e-local-3a-genesys-3a-libusb-3a-002-3a-002" 2
    … snippage …
    (menu-path "<Image>/File/Create/Acquire/XSane/net:plex760.local:genesys:libusb:002:002")
    

    Should you happen to plug the scanner into a different PC or USB port, perhaps while replacing a failed system, then you must change those hideous strings all by yourself.

    So, for example, plugging the aforementioned scanner into a randomly chosen USB port on a new-to-me Dell Optiplex 9020 showing up as plex9020.local on the network produces this identification string:

    [ed@shiitake ~]$ scanimage -L
    device `net:plex9020.local:genesys:libusb:003:003' is a Canon LiDE 120 flatbed scanner
    

    GIMP’s ~/.gimp-2.8/pluginrc file defines the device address:

    (proc-def "xscanimage-net-3a-plex9020-2e-local-3a-genesys-3a-libusb-3a-003-3a-003" 2
    

    The -3a- string seem to be an escape sequence for the colon symbol separating parts of the address. Why we need so many different escape sequence standards mmm escapes me at the moment.

    The menu-path string defines the text appearing in the GIMP UI, so you can use a somewhat more readable generic name:

    (menu-path "<Image>/File/Create/Acquire/xscanimage/Plex9020-scanner")
    

    The ~/.gimp-2.8/menurc file contains GIMP’s keyboard accelerators, which (apparently) must match the revised proc-def strings:

    ; (gtk_accel_path "<Actions>/plug-in/xscanimage-net-3a-plex9020-2e-local-3a-genesys-3a-libusb-3a-003-3a-003" "")
    

    A keyboard accelerator for the scanner wouldn’t save any appreciable amount of time or effort, so (I think) the semicolon marks it as Disabled in the UI.

    It is remarkably easy to make a one-character typo while doing this, particularly if you’re using sed to change All. The. Strings. at once.

    There is, AFAICT, no documentation, which almost certainly means I don’t know where to look.

  • Amazon Product Puzzlement

    Amazon’s top three offerings for American Standard 023529-0070A:

    Amazon - American Standard Faucet Valves
    Amazon – American Standard Faucet Valves

    They’re all “by American Standard”, but you must check each item to discover where it’s coming from:

    • “Ships from and sold by Amazon.com”
    • “Ships from and sold by Gatzies
    • Ships from and sold by moneyworldstore

    Although I’ve done my fair share of repairs to this faucet, I don’t need a cartridge every month and, in any event, signing up for Subscribe & Save doesn’t promise much in the way of savings.

    The second listing has the best price by a small margin. I’m content to pay half a buck more to have Amazon handle the entire transaction, rather than deal with some random Amazon Marketplace vendor.

    The third listing seems to be a bizarre algorithmically priced corner case, a no-stock placeholder, or a money-laundering scheme. Judging from the pricing of other “moneyworldstore” offerings, their business model doesn’t include retail sales.

    So much weirdness from one simple item …

  • LibreOffice 5.3+ vs. Adobe Type 1 Fonts

    LibreOffice from 5.3 onward (Xubuntu 18.04 uses LO 6.0) no longer supports Adobe Type 1 fonts, which comes as a surprise to those of us who actually bought fonts, back in the day, and have been using them ever since. Apparently, Windows dropped Type 1 font support some time ago.

    Based on some hints, I set up the Adobe Font Development Kit for OpenType. It’s a Python thing, preferably running in a virtual environment to avoid screwing up the rest of one’s system with bizarre dependencies. It seems one (“I”) must not update pip using pip after installing python-pip using apt-get; recovering from that mess was good for another hour of flailing.

    The default AFDKO installation spat out an error message about ufolib (I am not making this up) being at 2.1.1, instead of the required 2.3.1. In for a penny, in for a pound, I updated ADFKO with the “prerelease” option:

    pip install -U afdko --pre
    

    Which fetched ufolib 2.3.1, apparently from wherever Python keeps its prerelease stash. I have NFC what’s going on with any of this.

    An Adobe blog post on the AFDKO tx tool suggested it can convert Type 1 fonts to CFF (a.k.a. Adobe Type 2) fonts and some poking around suggested CFF also figures in OTF fonts.

    tx -cff -n -N -A awb_____.pfb
    --- Filename: awb_____.pfb
    --- FontName: ACaslon-Bold
    tx: --- awb_____.pfb
    tx: (cfw) unhinted
    tx: (cfw) unhinted
    tx: (cfw) unhinted
    tx: (cfw) unhinted
    tx: (cfw) unhinted
    tx: (cfw) There are 222 additional reports of 'unhinted'.
    

    The -A option replaces the bizarre Adobe 8.3 file names with actual font information:

    awrg____.pfb ⇒ ACaslon-Bold.cff
    awbi____.pfb ⇒ ACaslon-BoldItalic.cff
    awi_____.pfb ⇒ ACaslon-Italic.cff
    awrg____.pfb ⇒ ACaslon-Regular.cff
    awsb____.pfb ⇒ ACaslon-Semibold.cff
    awsbi___.pfb ⇒ ACaslon-SemiboldItalic.cff
    

    Regrettably, CFF files don’t actually work as fonts, at least as far as LibreOffice 6.0 (or whatever it uses as a font engine) is concerned.

    Although it’s possible to convert fonts locally with fontforge, doing it one-by-one is tedious and the learning curve for its Python scripting feature seems rather steep. I fired the most vital fonts at Convertio, an online converter running fontforge in the background, got a matching pile of OTF fonts, and installed them in /usr/share/fonts/custom/type1 to indicate their heritage.

    Whereupon LO rammed into a problem I’d had before. The solution this time required sorting the various Caslon and American Typewriter fonts into different “font families” and forcing the TTF names to match their new families. The difference between Medium and Regular seems to have Gone Away.

    I should just use Comic Sans and be done with it …

  • Fireball Island Figures

    A cousin asked if my 3D printer could replace some figures gone missing from their old Fireball Island game board, a classic apparently coming out in a new & improved version.

    Fortunately, solid models exist on Thingiverse:

    Fireball Island figure - Thingiverse 536867
    Fireball Island figure – Thingiverse 536867

    Unfortunately, the left arm requires support, which Slic3r supplies with great exuberance:

    Fireball Island figure - Slic3r support
    Fireball Island figure – Slic3r support

    The vast tower on the figure’s right side (our left) seemed completely unnecessary, not to mention I have no enthusiasm for the peril inherent in chopping away so much plastic, so I replaced it with a simple in-model pillar:

    Figure Support Mods
    Figure Support Mods

    The pillar leans from an adhesion-enhancing lily pad and ends one layer below the left hand, with all dimensions and angles chosen on the fly to make the answer come out right.

    Works like a champ:

    Fireball Island Figures - orange - on platform
    Fireball Island Figures – orange – on platform

    The dark band down the middle comes from the Pixel’s shutter.

    They emerged with some PETG hair, the removal of which I left as an end-user experience.

    I mailed a small box containing figures printed in my (limited!) palette of four colors, some spares Just In Case™, and a few QC rejects showing the necessity of lily pads.

    Game on!

    The OpenSCAD source code as a GitHub Gist:

    // Adding support under Fireball Island figure arm
    import("/mnt/bulkdata/Project Files/Thing-O-Matic/Fireball Island/Fireball Island figure – 100k.stl", convexity=5);
    translate([6.5,-4.0,0]) {
    intersection(){
    translate([-10/2,-10/2,0])
    cube([10,10,11.6],center=false);
    rotate([0,-5.0,0])
    rotate(180/6)
    cylinder(d=4.0,h=30,$fn=6,center=true);
    }
    translate([8/4,0,0])
    rotate(180/6)
    cylinder(d=8,h=0.2,$fn=6);
    }
  • Tektronix AM503 Current Probe Amplifier: Failed Electrolytic Capacitor

    The same Tektronix AM503 current probe amp with the slightly disconnected JFET developed a nasty 120 Hz hum, which can mean only one thing:

    Tek AM503 - corroded capacitor
    Tek AM503 – corroded capacitor

    Dunno how I missed that while I had the cover off, but there it is. For future reference it’s C165, 47 µF 50 V, with an 8709 date code.

    This being a PCB made back in the old days, likely with self-adhesive tape strips, the component pads inside ground and power pours lack thermal isolation decorations.

    The solder joints on the bottom side looks better than these, honest:

    Tek AM503 - replaced capacitor
    Tek AM503 – replaced capacitor

    The new cap is 56 µF 50 F, which seems Close Enough.

    The other caps have reasonable ESRs, but I must lay in a stock of high-voltage ‘lytics, as the “new” one is definitely old enough to know better, too.

    Now that I check, the amp still produces a very low amplitude 2 MHz sine wave on its 1 mA/div and 2 mA/div settings, suggesting Something Is Not Right™ in the front end, but it works well enough to let me defer that fix until later.

     

  • Frayed Power Drop

    The neutral conductor is down to its last three strands:

    Damaged neutral - over Redondo near pole 62859
    Damaged neutral – over Redondo near pole 62859

    Perhaps the power drop got snagged twice, because there’s a splice only a few feet away:

    Damaged neutral and splice - over Redondo near pole 62859
    Damaged neutral and splice – over Redondo near pole 62859

    Spotted overhead on Redondo near Rt 376 during an evening walk. I reported it using Central Hudson’s dead streetlight page, because there seems no other way to get their attention. It may be the homeowner’s responsibility, in which case a second splice will surely appear after the next power outage.

  • New York State Bike Route 9: Maintenance Thereof

    One might expect the NYS Department of Transportation to maintain New York State Bike Route 9, a.k.a. NYS Rt 376 from Poughkeepsie to Red Oaks Mill, in a bicycle-aware manner.

    One would be mistaken.

    The most recent patch strip very carefully avoids the deteriorated shoulder, all the way around the curve:

    Rt 376 SB patch - shoulder deterioration - marker 1111 - 2018-08-23
    Rt 376 SB patch – shoulder deterioration – marker 1111 – 2018-08-23

    The weeds growing in the serrated shoulder add a decorative counterpoint to the black asphalt patch in the travel lane:

    Rt 376 SB patch - shoulder grass - marker 1110 - 2018-08-23
    Rt 376 SB patch – shoulder grass – marker 1110 – 2018-08-23

    It was a rather large repair crew:

    Rt 376 Road Repair Crew - marker 1110 - 2018-08-23
    Rt 376 Road Repair Crew – marker 1110 – 2018-08-23

    The crew chief said they were there because “somebody wrote a letter” describing the conditions. I suppose that would be me, although after half a year it’s hard to establish causation, let alone correlation.

    He also says no details of the letter reached him, which explains why they laid the patches in the travel lane, rather than repairing the conditions I described. He was adamant they were doing the best they could with the inadequate manpower, materials, and time available for the projects.

    There are absolutely no requirements to consider bicyclist safety in their repairs, so laying asphalt over the shoulder never happens.

    NYS DOT’s Bicycling FAQ says I should “take the lane” around that curve, due to the deteriorated shoulder, to ensure motorists pass only when it’s safe.

    Whenever I offer to take a NYS DOT bureaucrat on an inspection ride along their roads, they never have the time. Of course, they don’t “work” on weekends, so they’re unwilling to join me on a pleasant ride around the area some Saturday or Sunday morning.

    Just another day of bicycling along NYS DOT’s “complete streets” …