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

  • Inside 9V Batteries

    Inside a batteries.com 9V battery
    Inside a batteries.com 9V battery
    Corrosion inside batteries.com 9V battery
    Corrosion inside batteries.com 9V battery

    Back in the Good Old Days, 9 V batteries had a stack of half a dozen pancake cells inside that completely filled the outer case. These days, it seems they use cylindrical cells similar to AAAA cells, with more wasted space around the edges.

    I retrieved these batteries from our smoke detectors. I tend to poke the self-test button occasionally and wait until the low-battery alarm starts chirping, rather than throwing half-used batteries out. Being that sort of bear, I date the batteries when I put them in; they usually last two years.

    This one is from batteries.com and lasted 18 months. The obvious corrosion inside the shrink-wrap plastic sleeve says that the cell sealing isn’t nearly as good as you’d wish. The two most heavily corroded cells are completely dead, but the rest have about 500 mAh of life left in them (at a rather low 50 mA discharge rate). With a bit better QC, it’d be a winner.

    Notice that the case contacts have sharp points that ensure a decent connection, perhaps despite the crud. Only one or two of the points actually make contact, which probably contributes to a faster assembly time: just get the ribbons in the right neighborhood and crimp the case closed. On the other hand, all the current must flow through one or two points, so don’t use them as a high-current source.

    Eveready Gold 9V battery innards
    Eveready Gold 9V battery innards

    On the other end of the scale, this Eveready Gold battery has six loose cells and lasted 2.5 years. All the cells have roughly the same level of charge remaining: they’re thoroughly dead.

    The build quality seems better, with individually shrink-wrapped cells and a compliant closed-cell foam layer on the bottom of the case to maintain pressure against the contacts. No sharp points, so they need more pressure.

    The cell polarity is exactly reversed from what you’d expect: the button end is negative. So, even though this looks like a cheap source of AAAA cells, that’s a cruel deception…

    Lots more info at http://data.energizer.com/

    If you’re heavily into battery testing, you need something like a West Mountain Radio Computerized Battery Analyzer.

  • Shiny Lug Nuts: Overtightening Thereof?

    Ever notice how, when you take your car in for inspection, it always comes back with the wheel lug nuts tightened beyond the ability of mere mortals? I think it’s because they have their pneumatic impact wrenches turned up to 11, just to make sure the nuts never, ever come loose and expose them to liability.

    Broken wheel lug with attached SocketLug
    Broken wheel lug with attached SocketLug

    Found this yesterday while walking back from the store with two gallons of milk. The shiny bit in the background is labeled SocketLug, which is evidently a trademark associated with Gorilla (but with no Web presence), and sports patent number 5797659. The stud in the front evidently snapped out of somebody’s wheel, probably flush with the surface. Gonna be trouble getting that out!

    The lug is a threaded 9/16-inch steel stud, with a root area of maybe 0.18 square inches. Let’s suppose the yield strength is 100 kpsi, so breaking that thing required 18 k pounds. The thread looks to be 18 TPI for a 1.8 degree helix angle; call it 3%. If they lubed the threads and lug (ha!), letting us assume 20% friction, then the wrench was applying 700 pounds at a 9/32″ moment arm: call it 2.5 k lb-in or 30 k lb-ft of torque. Pretty impressive, given that typical pneumatic wrenches weigh in at around 500 lb-ft of torque.

    Which says it really wasn’t the wrench doing the breaking, which should also be obvious because it was lying at the side of the road rather than on the shop floor. Even a 1000 lb-ft wrench would create only 5% of that yield load in the stud, so something else was wrong.

    That orange patch in the upper left looks like rust in a crack, with the gray area in the lower right revealing the final fault. Maybe the shop monkey (or owner?) managed to whack it while installing the tire, create a small crack that let in the usual NYS road salt, and after a season or two the stud failed after being cranked tight once again.

    There’s likely another four on that wheel: safety in numbers! Unlike those old Citroens with but a single nut securing each wheel…

  • Network Hard Drives: Why Not

    The question came up as to whether an external hard drive with a network interface was a Good Thing for backups and suchlike.

    For humongous drives, a 100 Mbit/s network tap is painfully slow. In round numbers, on a good day you’ll get 80 Mbit/s throughput; call it 10 MBytes/s.

    Transferring 1 TB at 10 MB/s requires a bit over a day: 28-ish hours. Streaming media will work fine, but filling up the drive in the first place will be tedious.

    I was reminded of this the hard way when I had to do a full-drive backup to the file server in the basement. Seemed to take forever, but when I ran the numbers it was ticking along just about as fast as it could possibly go…

    A USB local drive is better: 40 MB/s, more or less, if the software stack can keep up with it. I eventually pulled the drive, popped it on a USB-IDE adapter, jacked it into the server, and got it done that way.

    Now, if you have gigabit Ethernet everywhere, things might be faster, but the limiting factor then becomes the drive’s sustained rate, which is probably a tad over 100 MB/s if you’re transferring large files.

    Fancy eSATA drives have a higher burst rate, but the bits just don’t come off the platters all that much faster.

    I’d be astounded if a consumer-grade network drive came anywhere close to those numbers. I have an IOmega 500 GB drive that’s an absolute piece of crap…

    Feed the obvious keywords into Wikipedia and get all the numbers.

  • Inkjet Refilling: Economics of the Empire

    A year ago I bought an Epson R380 printer along with a $10 piece-of-crap digital camera for 90 bucks, then got a $75 rebate. I figure the printer cost 15 bucks and the camera was free.

    cimg2863-continuous-ink-for-epson-r380
    Continuous inking system for Epson R380 printer

    I also bought a $55 continuous flow ink system from a place that no longer sells them. Turns out that Epson won a patent lawsuit that forced most of those vendors out of the reinking business and made the remaining systems staggeringly expensive.

    Well, maybe not.

    I print a bunch of text (I hate reading long documents on the screen), plenty of schematics & diagrams, low-quality pictures (webbish junk), relatively few photo-quality pictures, and the Annual Christmas Letter. The printer spends an inordinate amount of time blowing its nose and clearing its throat at the start of each session, so I suspect most of the ink goes directly into the diaper inside the printer.

    Genuine Epson 78-series cartridges contain 11 ml of ink and cost $20: $1.80 / ml or, in US terms, $2k per quart. In the last year, I’ve used about 200 ml of black and 110 ml of each of the five colors: $360 + 5 * $200 = $1360, if I were stupid enough to pay full price for 68 cartridges.

    That makes the $150-ish I actually paid for seven 8-ounce (250 ml) bottles of ink a downright bargain: $0.09 / ml.

    No, the color isn’t the same as the Epson inks and I’m certain it won’t last as long on the page, but that’s not what I’m using this printer for. When I need long-lasting, high-quality prints, I send ’em to an online service… which right now is running a sale on 4×6″ prints at $0.09 each. What’s not to like?

    When I hear printer companies boast about how ecological their printers are, I say bad things. If they wanted to be green, they’d make it trivially easy to connect bulk-ink tanks to their printers.

    I’ll put up with a few colorful spots on my fingers and the occasional sploosh on the table to save that much coin o’ the realm…

  • Kubuntu Remote Desktop via SSH Tunnel

    In the process of setting up a new PC for my mother, I finally figured out how to get remote desktop sharing in Kubuntu Hardy working. You’d think the bog-standard (and default) krfb would work, but it crashed every time. Come to find out, after much searching, the solution boils down to this…

    Shoot krfb in the head, use vnc4server and x11vnc.

    Use synaptic or apt-get to install those and all their dependencies on the remote machine (i.e., the one that will become my mother’s PC). While you’re at it, uninstall krfb: good riddance.

    Run vncpasswd and feed in an appropriate password that you’ll use to authorize yourself to the vnc session.

    Log out, restart X (with Ctrl-Alt-Backspace, perhaps), log back in again to get all the X11 infrastructure up to speed.

    On your local machine (i.e., mine), use SSH to sign in to the remote box:

    ssh -p unusual-port -L 5900:localhost:5900 remote.PC.ip.addr

    The -L creates a tunnel from your local machine’s port 5900 to the remote machine’s port 5900, through the authorized SSH session.

    I use an unusual port because running SSH on port 22 on an internet-facing machine (even behind a firewall router) is just plain dumb. I doubt the unusual port provides much protection, but it should shake off a few script kiddies.

    [Update: Just in case you regard shared-key authorization and a nonstandard port as evidence of clinical paranoia, read that. One of the comments notes that using a nonstandard port gets rid of all the low-speed zombies…]

    Incidentally, the firewall router must forward the unusual port directly to the PC’s local IP address, which requires a bit of tweakage all by itself; that depends on which router you have. Word to the wise: do not use DHCP to get the PC’s IP address. Think about it.

    That PC is also set up with my RSA keys, so that the kiddies can’t brute-force a username / password login attack. And, yes, I regenerated the keys after the Debian goof.

    This is still on my LAN, so I use a dotted quad IP address (being too lazy to tweak /etc/hosts for a temporary machine), but you can use the host name maintained by DynDNS or their ilk for a truly remote box. See this post for the straight dope on making that work.

    Then fire up a remote-desktop client like, for example, krdc on your local PC, with the “remote desktop” address aimed at:

    localhost:5900

    That’s the local end of the SSH tunnel to the remote PC. It won’t work if you aim it at the remote machine’s IP address, because it’s not watching for incoming connections (nor is the router forwarding them).

    Type in the password and shazam you should see whatever’s appearing on the remote desktop. Mouse & keyboard control should work just fine, too. Word to the wise: make sure your local monitor is bigger than the remote monitor; while you can scroll around or scale what you see, that’s icky.

    It should be obvious that you cannot “switch users” to a different X console on the remote box and expect it to work. I tried it, just for grins, and it doesn’t. You could probably tunnel another session in through port 5901 (or 5900 + whatever the X11 console might be), but I haven’t tried that.

    Last year I set my mother up with Verizon’s cheapest DSL service: 768 kb/s down and 16 kb/s up, all for a whopping 15 bucks plus tax a month. Yes, that’s 16 kb/s: slower than old-school dial-up modems. Sheesh & similar remarks. So all this fancy remote-desktop GUI stuff won’t work for diddly with the PC in her apartment.

    SSH and the command line rule!

  • Ed’s High-traction Multi-grain Bread

    I bake a loaf of this every few days…

    Dump in a 4.5-quart mixer bowl:

    • 1/2 Tbsp dry yeast
    • 2 Tbsp brown sugar
    • 1/2 cup dried milk
    • 1-1/2 cup warm water

    I find it’s easiest to mush the three dry ingredients together so the brown sugar coats everything, then stir in the water. Let it sit for ten minutes or so if you have the patience, then, with the yeast up & running, add the goodies:

    • 1/2 cup flax seed meal
    • 1/2 cup bread flour
    • 1/2 cup rye flour
    • 1/2 cup wheat flour
    • 3 cups wheat flour (easier to measure that way)
    • 1 tsp salt
    • 2 Tbsp canola oil

    Put the dough hook on the mixer, screw down the bowl, and let ‘er grind on lowest speed until the dough gets nice & cohesive. Dump out the dough, oil the bowl, throw the lump back in, and roll it around to coat all sides.

    Put a lid on the bowl and let it rise overnight; perhaps in the oven after warming. If your yeast is more enthusiastic than ours it’ll take less time, but this is bread of unparalleled density.

    I’ve been baking this bread in a classic Pyrex Bake-A-Round that we’ve been toting unused from house to house ever since we got it as a wedding present. Turns out it’s really slick for this purpose. You can certainly use an ordinary loaf pan.

    Whatever you use to contain the dough: butter it thoroughly, pop in the dough without mushing it too much, and let it rise for another hour or two. If you’re using a B-A-R tube, push-and-hold the ends to plump up the middle just before you pop it in the oven. Best if you add aluminum foil caps to the end to keep ’em soft.

    Bake at 325 F for maybe 50 minutes. Cool on a rack while you get the peanut butter out of the refrigerator. Slather with PB, give thanks to the yeasty-beasties, eat.

    Speaking of which, it’s worth noting that our tap water now comes with chloramines that seem to kill yeast stone cold dead. We run the water through a Brita filter, but it’s not clear how much that helps; our yeast seems rather dispirited even in filtered water.

    [Update: A new batch of yeast reveals that we were using dead yeast. I’d bought several pounds of the stuff, as we use a lot of it, but evidently it aged out. Now we know.]

    This recipe started life as the Fundamental Tassajara Whole-Wheat Bread recipe, but has mutated over the years. The flax seed meal adds a surprisingly good taste.

    Update: if you’re in a hurry, dump the just-mixed dough out of the bowl, roll it into a log that barely fits into the B-A-R tube, slide it to the middle, cap the ends, and pop the B-A-R into a warm oven (ours hits 170, more or less). Let the yeasty beasties fart for an hour or two, then fire up the oven with the B-A-R inside; you can even use the Automatic Oven setting. Works like a champ!

  • Syncing Zire 71 in Kubuntu Hardy

    I have a somewhat antique Palm Zire 71 that has, periodically, synced perfectly with various flavors of GNU/Linux. On the other hand, sometimes a new release / kernel / version prevents it from syncing at all.

    My life is simple enough that I really don’t need to actively sync it with an online calendar, which is a damn good thing. Back when I needed to do hotsyncing, it always came heartbreakingly close to working; apparently that’s still the case. Having to comb out a complete set of duplicate addressbook entries pretty much soured me on futher experimentation.

    Currently, the Zire on the outs with Ubuntu / Kubuntu Hardy. The hack that makes it work goes a little something like this:

    The file /etc/modprobe.d/libpisock9 blacklists the visor module, which allegedly lets all the pilot-* programs connect using libusb, but that flat-out doesn’t work for me.

    Replace this stanza inside /etc/udev/rules.d/60-symlinks.rules:

    #KERNEL=="ttyUSB*", ATTRS{product}=="Palm Handheld*|Handspring *|palmOne Handheld", \
    #                                       SYMLINK+="pilot"
    
    With this one:
    BUS=="usb", SYSFS{product}=="Palm Handheld*|Handspring *|palmOne Handheld", \
    KERNEL=="ttyUSB*", NAME="ttyUSB%n", SYMLINK+="pilot", GROUP="dialout", MODE="0666"

    Make sure you’re in the dialout group. If you’re not, add yourself, log out, then log back in again.

    I back the Zire up once a month, which is rarely enough that I just load the visor module by hand:

    sudo modprobe visor

    Create a directory for backing up into:

    cd ~/Zire71
    mkdir 2009-01-03

    And then backing up the Zire is easy enough. Pop the thing in the cradle, poke the hotsync button, and quick like a bunny whack Enter on this:

    pilot-xfer -p /dev/ttyUSB1 -b 2009-21-03/

    The ttyUSB1 device will, of course, vary depending on whether you have any other USB-serial gizmos plugged in at the time.

    Frankly, the utter unreliability and instability of this whole USB PDA mess is one of the reasons why, IMHO, GNU/Linux really isn’t “ready for the desktop” despite the fact that all our boxen here run it. I don’t particularly want a phone / camera / PDA / ebook reader / pocketwarmer, but I can see I’ll wind up with one some day just to get a USB interface that actually works.

    Memo to self: remember to modprobe visor

    Update: Xubuntu 8.10 fixed all that, so USB hotplugging seems to work right out of the box. Install pilot-link, then just:

    pilot-xfer -p usb: -b /path/to/backups

    Now, whether syncing to contacts & calendars works correctly, I cannot say.