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.

Month: January 2010

  • Rudy Sunglasses: Back From the Dead

    Clear lens installed
    Clear lens installed

    As expected, the uni-lens on Mary’s Rudy Project sunglasses cracked right up the middle as that stress crack above the nosepiece opened up. The sunglasses came with interchangeable lenses, so I swapped in the clear lens.

    Having used urethane adhesive to mechanically lock the defunct gray lens in place, the broken bits were pretty firmly bonded. I applied a brass hammer and small drift punch to the remaining tabs, pried the debris out of the temples, cleaned the adhesive from the recesses, and snapped the new lens in place. Surprisingly, it popped in and locked securely.

    The nosepiece has never worked satisfactorily: there’s nothing locking the flexible blue-silicone pad to the straight-sided posts that are supposed to hold it. As a result, it tends to pop off at the most inopportune moments.

    Rudy nosepiece
    Rudy nosepiece

    I dotted the posts on one side with cyanoacrylate and the other pair with epoxy to see if either will bond well enough to make a difference. If those fail, I’ll try urethane, although I’m not sure what will happen as the urethane expands in the sockets.

    Anyhow, she now has glasses suitable for biking on cloudy and rainy days… which is much better than a sharp stick (or a bug) in the eye, as we see it.

  • Extracting Text from PDF Documents

    Mary had to extract an extensive table from a PDF (think financial statements) and found that a simple cut-and-paste failed with mysterious symptoms. I’ve had that happen, too, as PDF documents sometimes have a complete disconnect between the rendered page and the original text; sometimes you can’t even select the text block you want without copying huge chunks of the surrounding document or pasting meaningless junk.

    Easy solution: feed the PDF into pdftotext and extract the table from the ensuing flat text file.

    It’s a command-line thing:

    
    pdftotext -layout whatever.pdf
    
    

    That produces whatever.txt with the ASCII characters bearing more-or-less the same spatial arrangement as the original PDF, minus all the font and graphic frippery. It tends to insert a ton of blanks in an attempt to make the formatting come out right, which may not be quite what you want.

    Omitting the -layout option gives you something vaguely resembling the PDF, although precisely arranged tables tend to fare poorly.

    If you have a bazillion-page PDF document and need the text from just a page or two, feed it into the pdftk brush chipper, extract the appropriate pages, and then run those files through pdftotext. You can probably get similar results using just pdftk, but pdftotext seems to work better on the files I’ve had to deal with.

    This is a GNU/Linux thing; the programs are likely part of your favorite distribution; follow the links if not. If you’re still using Windows, maybe they’ll work for you, but maybe it’d be easier to just go buy something similar.

  • Chili Powder Beetles

    Mary cleaned out the kitchen cabinets, which entailed sorting out all the various spice jars. She thought the Chili Powder looked a bit odd and, indeed, it did: a whole colony of beetles and their larvae was a-squirm in there!

    The label states:

    All Natural

    non irradiated — no preservatives

    Frankly, I don’t see any particular problem with food irradiation.

    If you’re the sort of person who cooks your meals, as we are, then you’re eating plenty of denatured proteins and broken DNA anyway. In this case, snuggling that jar up to a nice warm Cobalt-60 slug for a few minutes would have been a great improvement.

    The main ingredient, of course, is “chili peppers”. The remainder doesn’t sound particularly life-sustaining, though: oregano, cumin, garlic, sea salt, and spices. Anything that can live off that brew must have a bad attitude, the way I see it.

    Being that sort of bear, I’d written the date on the label: 19 Aug 08. So, in round numbers, we use two ounces of Chili Powder a year. Obviously, we shouldn’t buy that stuff in bulk…

    Those are millimeters on the scale it’s crawling on, so these are little bitty bugs.

    [Update: Useful advice from the UC IPM folks.]

  • WWVB Reception Quality: Time From Last Synch

    It occurred to me that a better measure of the WWVB reception quality is the time since the last synch, because that measures the number of consecutive glitch-free minutes, which is a number that’s very difficult to pick out of the Glitchiness vs Time plots.

    A synch occurs only after four consecutive glitch-free frames, with the last three differing only by having properly incrementing minutes based on the first synch. That eliminates successive frames that span hours, as the minutes don’t increment properly from 59 to 00.

    This is the number of minutes since the most recent synch, versus the number of elapsed minutes, for a 24-hour period starting at UTC 0257 on 25 Dec 2009 (9:57 EST Christmas Eve 2009).

    Synch Age - 24 hrs - 2009-12-24
    Synch Age – 24 hrs – 2009-12-24

    Here’s the spline-smoothed Glitchiness graph I put up yesterday for comparison:

    Glitchiness - splines - 24 hrs - 2009-12-24
    Glitchiness – splines – 24 hrs – 2009-12-24

    An eyeballometric comparison shows my conclusion that synchs happen at the downward spikes in that plot is totally bogus.

    Memo to Self: If you haven’t graphed it, it’s not science yet.

    Useful Bash command:

    grep Age WWVB_2009-12-24a.log | cut -d '=' -f 3 > Age.txt
  • WWVB Reception Quality

    Here on the East Coast of the US, WWVB reception is iffy during the day, due to low signal strength and high ambient noise. Actual data seems hard to come by, so here’s a small contribution.

    This is a plot of the number of glitches per minute, where a glitch is any pulse that’s not within ±60 ms of the expected pulse durations (200, 500, and 800 ms), for a 24-hour period starting at UTC 0257 on 25 Dec 2009 (9:57 EST Christmas Eve 2009). There are 1448 data points, each representing the glitches during the previous minute; each minute starts within 2 seconds of the WWVB on-time frame marker.

    Here’s the raw data, log-scaled on the Y axis to cover the dynamic range. Log scaling can’t handle 0-valued points, so I forced counts of 0 to 0.1 to make them visible.

    Glitchiness - raw - 24 hrs - 2009-12-24
    Glitchiness – raw – 24 hrs – 2009-12-24

    Here’s the same data, Bezier smoothed to make the trends more obvious;  all the points below 1.0 are approximations of a trend toward counts of 0.

    Glitchiness - smoothed - 24 hrs - 2009-12-24
    Glitchiness – smoothed – 24 hrs – 2009-12-24

    Even better, splines show the glitch-free minutes without forcing the data points.

    Glitchiness - splines - 24 hrs - 2009-12-24
    Glitchiness – splines – 24 hrs – 2009-12-24

    My firmware requires four successive glitch-free minutes of reception (plus some additional verification) before synching its local time to WWVB, so it’s exceedingly fussy. Despite that, it still synched 17 times during those 24 hours. The longest free-running time between synchs was 6.8 hours.

    Note that there are 17 downward peaks below 1.0 in that last graph.

    Winter is, of course, the time of best ground-wave propagation from WWVB, so this is about as good as it’s ever going to get.

    Memo to Self: useful Bash and Gnuplot commands…

    
    grep Glitch WWVB_2009-12-24a.log | cut -d H -f 1 > Glitches.txt
    
    set logscale y
    
    set samples 250
    
    plot 'Glitches.txt' using ($2<1?0.1:$2) with points lt 3 pt 2
    
    plot 'Glitches.txt' using 2 smooth csplines with linespoints lt 3 pt 0
    
    
    log-scaled on the Y axis to cover the dynamic range. Log scaling can’t handle 0-valued points, so I forced them to 0.1;
  • Waterless Urinal

    Waterless urinal
    Waterless urinal

    Our travels took us past a mall, in which I discovered another generation of waterless urinals. The general notion is that the cartridge contains a light oil that allows urine through to the drain, while blocking sewer gases just like an ordinary pipe trap.

    These Falcon urinals smell not at all like the Eau de Outhouse I found in Boston’s Hynes Convention Center some years ago; I suppose there was some pushback from the end-user community…

    IIRC, the Hynes restroom retrofit installed waterless drain cartridges in a standard urinal. Unfortunately, with no flush water to rinse the bowl, the urine simply dried in place with exactly the olfactory effect you’d expect.

    This urinal is obviously a custom-designed hunk of ceramic technology and, according to their copious literature, whizz just slides right off and runs through the Sloan cartridges on its way to the drain. I’m not sure how all that works, but things have certainly improved… or, perhaps, the mall does maintenance much more frequently than Hynes.

    Waterless urinal target
    Waterless urinal target

    Anyhow, that small dot a few inches above the cartridge seems like an aiming target. Speaking strictly as an amateur apiarist, the notion of “pee on the bee” isn’t all that attractive, but I suppose they needed some way to direct the stream away from the inlets …

    Urinal target
    Urinal target detail
  • Micropositioner Rehabilitation: Z-axis Slide

    With the planetary reducer off, I could remove all the bits and pieces holding the Z-axis slide to the rest of the positioner.

    Rack drive casing
    Rack drive casing

    Note carefully the three spacing washers near each mounting screw. They hold the slide off the casting body by a very precise amount: they’re each 4 mils thick and prone to vanish in a light breeze. I discovered that each screw had three washers when I flicked one off the workbench and discovered two on the floor.

    The metal plate holding the pinion in place has two flat-head screws to the left and two ramps to the right. The conical points of the two long setscrews on the right bear on the ramps, providing a convenient, if obscure from the outside, way to adjust the slide friction by clamping the pinion shaft. One of the setscrews was partially removed, so a previous owner had evidently tried to reduce the overwhelming stickiness.

    With the washers in a safe place, the pinion cover comes off with only slight encouragement.

    Pinion parts
    Pinion parts

    Plenty of congealed lubricating oil to be found.

    Even without the pinion gear, it was exceedingly difficult to urge the two parts of the slide apart: more congealed oil. Much to my surprise, the slide does not have adjustable gibs: it’s one of those precision-ground gadgets that Just Works. This picture shows all the parts in their gunky glory. Note the random dirt in the rack teeth, along with the goo on the pinion shaft.

    Rack and pinion - disassembled
    Rack and pinion – disassembled

    With everything apart, removing the gunk was a simple matter of toxic solvents and mechanical poking with wood picks and splints

    I filed off the burrs on the shafts, thought briefly about grinding some flats for the setscrews, and decided to leave well enough alone.

    A few dabs of clock oil here & there, reassemble everything in reverse order, and the Z-axis moves gracefully with minimal knob torque. It’s very sensitive to the clamping force of those pointed setscrews, though.

    It’s now easy to discover that the planetary reducer has a 5:1 ratio and the Z-axis moves about 6 mm per turn. Because the reducer uses balls, it slips when the slide jams against something, rather than strip its gears.

    I should clean the other two slides, but a dot of clock oil on each cheered them up enough to let me punt that for a while…

    I like it!

    Micropositioner
    Micropositioner