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.

Author: Ed

  • Dell GX270 Burn-in

    After describing the initial failure there, I’ve been having it boot at 6:15 am and shut down at 8:00 am; if it ever fails to shut down, I know it hasn’t started up correctly.

    As you might expect, it’s booted fine every morning for the last week. I think that’s good news…

    The /etc/crontab entry to make that happen is:

    00 08   * * *   root    shutdown -P now

    I suppose I should put a little script in /etc/cron.daily, rather than futzing with the main crontab file, but I’m lazy.

    The /etc/rc.local file starts up a few odds & ends:

    date >> /home/ed/startup.txt
    echo -n "starting rc.local ... " >> /home/ed/startup.txt
    ##-- update dyndns record of our external IP address
    echo -n "ddclient ... " >> /home/ed/startup.txt
    if [ -x /usr/sbin/ddclient ] ; then
             ddclient -force
    fi
    #-- fire off Primenet Mersenne Prime search
    echo -n "mprime ... " >> /home/ed/startup.txt
    /opt/primenet/mprime -t &
    echo -n "scanbuttond ... " >> /home/ed/startup.txt
    scanbuttond
    echo "done" >> /home/ed/startup.txt
    exit 0

    Most of that does some really crude logging to a file in my home directory. If it fails to start up, I’ll at least know when it last worked…

    As I mentioned earlier, I’ve disabled ddclient (to prevent it from snatching Mom’s current IP address out from under dyndns.com) by the simple expedient of renaming the file to ddclient.off. The script actually tests whether /usr/sbin/ddclient is executable, but changing the name makes it obvious why it’s not running.

    Just to keep the CPU heatsink warm, it runs GIMPS: The Great Internet Mersenne Prime Search. Admittedly, a 2.4 GHz Celeron isn’t exactly the ideal CPU for this task, but every little bit helps. Right now it’s running the torture test with all the memory it wants, but I’ll throttle that back when Mom gets it.

    Don’t know what I’ll do if it fails, to tell you the truth.

    Memo to self: remember to switch mprime back to normal mode with less memory.

  • Circuit Board Grounding Point

    Instrument grounding point
    Instrument grounding point

    When you’re bringing up a new circuit board, you need a place to attach test equipment ground clips.

    Take a resistor lead from that pile you’ve been collecting (you do save snipped-off through-hole component leads, don’t you?), bend it into a sort of flattened horseshoe with the ends pointing out, and firmly solder the ends to a convenient point on the board’s ground plane, ideally near the power entry point.

    It helps if you leave a nice spot for the thing; tiny boards with all surface-mount parts pose a problem.

    Long dangly ground leads clipped to a distant part of the board are definitely not adequate for low-level or high-frequency analog probing, but when you’re just trying to figure out if the mumble thing is alive, this hack will do the trick.

    Oscilloscope probe tip ground
    Oscilloscope probe tip ground

    For detailed stuff, get up close & personal with that odd little scope probe nosepiece you’ve been keeping in a bag for some reason.

    The top board is, of course, the one you’ve seen earlier.

  • Making PCBs: Etching and Plating

    PCB Etched and Plated - Front
    PCB Etched and Plated – Front

    Continuing the saga from there, this is the etched and plated board.

    I mask around the edges with ordinary masking tape and cover the back surface with duct tape. Basically, the less copper you remove, the better and faster the job.

    I use ferric chloride etchant, formerly available in nearby Radio Shack stores. These days it’s getting harder to find, so I picked up a few kilos of dry powder on eBay. Most likely that supply will vanish, too.

    The usual directions call for heating the etchant, submerging the board, bubbling or agitating, and so forth and so on. The folks at Pulsar suggest simply rubbing the etchant on the board with a sponge and, perhaps not surprisingly, that works perfectly with boards sealed using their green film.

    I hold the board horizontally in my left hand, pour a dollop of etchant on it, then rub it with a small sponge in my right hand. The etchant gradually turns into a gel as it removes copper from the board; when the gel becomes too stiff, I just wipe it off with the sponge.

    I do this over a small glass tray and scrape the accumulated gunk off the sponge into the tray. Pulsar recommends diluting the residue in a gallon of water, but I’d just as soon not have that much spent solution sitting around.

    PCB Etched and Plated - Rear
    PCB Etched and Plated – Rear

    Wear latex gloves, an apron, and eye protection. Expect that everything within a radius of two meters will accrue small spots of ferric chloride that will instantly produce a vivid, permanent yellow stain. Repeat: everything within two meters will sprout yellow spots.

    You have been warned!

    Even if you pay attention to the board’s edges and corners, those will still be the last areas to finish etching. You’ll also learn to not run fine lines parallel to the edges right next to the masking tape, as the tape protects adjacent areas from the sponge: no contact, no etching!

    Spent ferric chloride (most likely, it’s now copper chloride or some such) disposal occurs on our town’s Household Hazmat collection days, but direct etching leaves very little bulk waste. Although it’s not particularly hazardous, the rituals should be observed.

    After eching, rinse the board, remove all the tape, and rinse the board again.

    Acetone and paper towels remove the green sealant film and the laser toner from the board, an operation best done outdoors. I have yet to find protective gloves that don’t disintegrate in acetone, so I simply try to not soak my hands in the stuff. Remember: leave the mask on the back side of the board to help protect it from the etchant when you do the front side.

    Then I silver-plate the copper with Cool-Amp Silver Plating Powder, which makes the board look and solder better. Looks are important, as the boards sometimes wind up in my Circuit Cellar columns.

    That hasn’t stopped me from hand-soldering SMD parts: the bigger the blob, the better the job.

  • Pocket Camera: Griptivity Thereof

    Casio EX-Z850 and homebrew case
    Casio EX-Z850 and homebrew case

    I carry a small camera with me at all times and find it invaluable for recording details and documenting events; now I never say “I wish I had a camera!”

    This one is a Casio EX-Z850, which trades off nearly everything in favor of compact size. It has great battery life, enough resolution (the optics could be better), and manual controls (so it serves nicely as a microscope camera). It’s obsolete, of course, but you get the idea.

    I have bigger & better cameras, but this one is always with me and that counts for nearly everything. The camera in a cellphone or PDA is not the same as a real camera.

    Unfortunately, the thing has the griptivity of a bar of soap: all stylin’ metal and plastic. The black nubbly surfaces in the photo are my idea of a Good Thing: chunks of stair-tread tape providing enough traction that the camera no longer flies out of my hand with the greatest of ease.

    Despite that, I always slip the lanyard over my wrist when I take it out of my pocket; often I do that before removing it from the case. That nervous tic saves me the cost of a new camera about twice a year.

    If your camera fits into a desktop charging / USB cradle, as this one does, make sure you don’t stick the tape where the cradle fits against the camera. It’s really tough to peel off after the adhesive sets up…

    Mary made that nice packcloth (she says “Cordura“) case, with a fuzzy fleece liner facing the LCD panel. The hook-and-loop closure is a tad noisy in quiet places, but it’s better than buttons or a zipper for this application.

    I’ve learned to not keep tissues in the same pocket as the camera.

  • USB Disconnects: Nobody Moves, Nobody Gets Hurt

    After grounding the obvious metal bits around the desk as shown there and taking some pains to zap the light switch on the wall (rather than the grounded objects) before sitting down and routing the USB cable away from everything else, the mysterious USB disconnects seem to have Gone Away.

    The USB hubs were reporting exactly what happened:

    hub 3-0:1.0: port 1 disabled by hub (EMI?), re-enabling...

    Which wasn’t much help in the beginning, because I couldn’t correlate a static zap with the disconnect. Quite often, it’d be something innocent like plugging a camera into its USB/charging cradle with no obvious discharge.

    The onset of 0 °F weather and the ensuing 0% relative humidity, plus my donning a synthetic fleece jacket while venturing into the rather too-chilly basement laboratory, brought the problem to the fore. An inch-long arc to a light switch gets your attention pretty quick!

    Hint: when you know you’re charged, pull a pen from your pocket, get a good grip on the metal pocket clip, and use that to draw the spark from the light switch. The larger surface area contacting your fingers reduces the current density to the mild tingle level, rather than leaving a charred pit on the end of your finger.

    In round numbers, the dielectric breakdown voltage of air is 1 kV / mm. That inch-long arc required upwards of 20 kV: not bad for an acrylic jacket!

    When we go riding in the winter, we dress in layers of acrylic this and synthetic that, to the extent that simply moving generates a nasty charge. Hence the punchline: nobody moves, nobody gets hurt.

  • Hits from EMC Mailing List

    The number of daily visitors here rounds off to very nearly zero, so this spike from my Cabin Fever trip report stands out like a sore thumb:

    Cabin Fever Trip Report Hits
    Cabin Fever Trip Report Hits

    The numbers are 118, 36, 10, 5, 4, 3. If you’re a geek, you’ll think of an exponential decay and it turns out that’s just about true: the time constant is 2.8 days and the equation pretty much works for the first four days, after which we’re into the Long Tail.

    Most of the hits came directly from the EMC mailing list, with a substantial minority from Webbish sources like Gmail and various archives. There’s no way to tell how many people who subscribe to the list didn’t click on the link, although this provides a quick-and-dirty estimate of the folks interested in such things.

    The counterweight gantry, laser aligner, and Y-axis bellows posts were also popular, at least to very small groups of people in the grand scheme of things. But if everybody showed up in the basement shop, I’d definitely have to move some stuff to make room!

  • Kubuntu “Server” Time Drift

    I just tried compiling a program (for an Arduino) and make grumped about a date in the future:

    make: Warning: File `Makefile' has modification time 1.4e+02 s in the future
    <<< usual compile output snipped >>>
    make: warning:  Clock skew detected.  Your build may be incomplete.

    Turns out that the timestamps really were screwy:

    [ed@shiitake Solar Data Logger]$ date
    Sun Jan 25 10:57:44 EST 2009
    [ed@shiitake Solar Data Logger]$ ll
    total 28
    drwxr-xr-x 2 ed ed 4096 2009-01-25 10:59 applet
    -rw-r--r-- 1 ed ed 1920 2009-01-25 10:35 Logger.pde
    -rwxr-xr-x 1 ed ed 7719 2009-01-25 10:59 Makefile
    -rwxr-xr-x 1 ed ed 7689 2009-01-25 10:53 Makefile~
    -rw-r--r-- 1 ed ed 1880 2009-01-25 10:08 Solar Data Logger.pde~

    Well, now, how can that be?

    The offending files are stored on a file server, not on the machine in front of my Comfy Char. The current dates for the two machines weren’t quite the same: the server was running just slightly in the future.

    I used an ordinary Kubuntu desktop install on our “file server”, which is basically a Dell Inspiron 531s running headless in the basement. All this is behind a firewall router, so I do not have an Internet-facing machine running X, OK?

    Kubuntu has an option that updates the clock automagically, but only once per boot.

    Right now, that box claims an uptime of just over 22 days. It’s run for months at a time without any intervention, which just one of the things I like about Linux:

    uptime
     11:07:08 up 22 days, 19:52,  1 user,  load average: 0.00, 0.02, 0.00

    I think you can see the problem: after three weeks the PC’s internal clock had drifted more than two minutes fast.

    I used the Big Hammer technique to whack the server’s clock upside the head:

    sudo ntpdate pool.ntp.org
    [sudo] password for ed: youwish
    25 Jan 11:01:22 ntpdate[23062]: step time server 66.7.96.2 offset -151.277185 sec

    That’s 7 seconds per day or 151 seconds out of 2 megaseconds: 77 parts per million. It’s in a basement at 55 F right now, so there may well be a temperature effect going on.

    You can set up ntp (www.ntp.org or, better, from a package in your distro) to run continuously in the background and keep the clock in time by slewing it ever so slightly as needed to make the average come out right. I just added an entry to /etc/crontab like this:

    00 01   * * *   root    ntpdate north-america.pool.ntp.org

    That way the clock gets whacked into line once a day when nobody’s looking.

    If you’re running a real server with heavy activity, ntp is the right hammer for the job because you don’t want ntpdate to give you mysterious gaps of a few seconds or, worse, duplicate timestamps. Leap year is bad enough.

    More about ntp at http://en.wikipedia.org/wiki/Network_Time_Protocol.

    Memo to Self: set up ntp on the server and then aim all the desktops at it.

    I used to do that when I was running a GPS-disciplined oscillator to produce a nearly Stratum 1 clock on my server, but then power got too expensive for that frippery.