Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Mary sewed up a new seat cover for her Tour Easy, so I dismantled the seat and cleaned things up. This is a good opportunity to show how I mounted an amateur radio HT on the bike…
Bottle holder on seat frameClamp mount detail
The general idea is simple: a water bottle holder attached to the lower seat rail with a circumferential clamp made from a chunk of half-inch aluminum plate. An aluminum spreader adapts the wider hole spacing on the bottle holder to the teeny little clamp.
With the bottle holder in place, I put the radio in a wedge seat pack, atop a block of closed-cell foam to more-or-less cushion some of the bumps. The wedge pack seatpost strap secures it to the bottom of the holder and the rail straps wind their way through the holder and lash around the aluminum spreader plate. It doesn’t move very much at all.
The radio is a long-obsolete ICOM IC-Z1A, bought specifically for this purpose: it has a remote head on the end of a coily cord. That puts the power, volume, and channel buttons out where you can actually use them.
Radio in seat wedge pack in bottle holder
The lump behind the seat looks moderately suspicious in this day & age: a black package with wires! The grossly oversized red-and-black pair in the foreground is the power coming from a 6-AA pack attached to the rack with a Velcro strap; it’s a jumper with Anderson PowerPoles on both ends. Coily cord to the HT head, BNC-to-UHF adapter to the mobile antenna mount, one skinny cord to the headset and the other to the PTT button on the handlear.
I use a blender to mix up the pancake batter every few days. Over the last week or so, the rotary switch Pulse position wasn’t returning to Off all by itself. After having replaced the impeller bearings, I couldn’t just ditch the mumble thing without at least trying to fix it…
A search for replacement parts reveals that Farberware kitchen appliances are disposable crap: they’re so cheap nobody stocks repair parts. IIRC, this blender was maybe ten or twenty bucks after rebate, which gets you through the shipping charge for the repair part. I would love to believe that paying more for kitchen appliances actually bought better quality.
Switch wire connections
As you’d expect, the four silicone rubber feet pop off to reveal machine screws that hold the plastic base to the metal body. This picture shows the wire connections to the switch:
L = brown
1 = orange
2 = no connection
3 = red
I couldn’t pull the switch knob off the shaft, so I dismantled enough of the motor mount to ease it to one side, apply a right-angle screwdriver to the switch body screws, and loosen the switch. That gave me enough room to jam a screwdriver between the switch and the mounting bracket to pry the knob off. It’s a plastic-on-plastic friction fit.
After the fact, it turns out that two screws behind the knob secure the mounting bracket to the bezel. Remove those screws, the bracket comes off, and it’s trivially easy to remove the switch screws.
The wires attach through those horrible spring-loaded push-and-pray connections: jam the wires in, pull back, and it’s supposed to be a gas-tight joint forever. I don’t believe a word of it. Remove the wires by poking a small screwdriver into the opening and forcing the brass tab away from the wire. Yuch!
Opening switch with slitting saw
The switch body parts are, of course, bonded firmly together: no user serviceable parts inside. I deployed a slitting saw on the Sherline mill, grabbed the switch in the vise, and sliced 2.5 mm deep along the line between the two body parts.
The switch is some sort of engineering plastic, so I ran the saw at about 2000 rpm, cut at 100 mm/min, and dribbled water on the blade to keep it cool. You can see the grayish-brown residue under the switch.
The thing came apart easily enough after that…
Switch Guts
These pics show the switch components. Note how the spring fits in the body and the four cunningly folded brass strips that simultaneously attach the wires, make the switch contacts, and spring-load the rotary detents.
I took the liberty of bending the strips to restore the clamping force on the wires; poking the tabs with a screwdriver tends to bend them a bit.
So it goes.
There wasn’t anything obviously wrong inside, but after a bit of puzzling, I discovered the problem residing in the coil spring that returns the switch to Off…
Cracked spring
The spring wire is 1 mm diameter. A bit of rummaging in Small Spring Box Number Two disgorged a bag of spring-clip thingies with the proper wire size and just about the right coil diameter, too.
The right way to make a spring is to start with straight music wire, anneal it, make a mandrel, bend up a spring, then heat-treat the spring to make it just the right hardness and toughness for the job.
Spring iterations
I deployed my wire-bending pliers, made a few trial runs (well, OK, they weren’t trial runs when I started…), and got close enough by the third attempt (lower right).
Yup, cold-bending spring steel. It is to shudder, huh?
I bent the wire just off straight and worked my way around the coil about 0.5 mm per bend to produce a rather lumpy coil spring. This is definitely the wrong way to go, because the wire’s much too hard for that treatment: it wants to stay straight and doesn’t like those right-angle bends to form the end tabs. I think this will work well enough for long enough, though.
The spring’s chirality turns out to be important; the coil wants to tighten around the shaft when the knob’s in the Pulse position. The spring-clip thing has two ends; only one produces the correct result, which is perfectly obvious in retrospect.
Spring on switch rotor
The spring fits on the rotor like this, but with a whole lot more preload tension than you’d expect. The end result was a somewhat smaller coil diameter than I started with; I shrank the coil, re-bent a new tab on one end, chopped off about 4 mm of wire, and it was all good.
I also backed off the ramp on the notches that engage the brass contacts in the Pulse position so the switch wasn’t so prone to hang up. That was what motivated me to fix the thing: one morning I manged to leave the switch in Pulse because it didn’t quite snap back to Off, took the lid off the bowl, and the blender started up again. Fortunately, the batter is too thick to jump out of the bowl, but it was a near thing.
Here are the four switch positions and their contacts, in order from Pulse (most counterclockwise) to Speed 2 (most clockwise). You could, I suppose, conjure up a replacement switch if you puzzled out the connections; all the rotor tabs are connected together.
Switch contacts – PulseSwitch contacts – Off
Notice that, although switch contact 2 is unused, it is connected when the switch is in the Off position.
The back of the switch body takes pressure on the switch knob, as well as engaging the end of the rotor to hold it in the middle of the body. I wasn’t comfortable just gluing the body together again, because I suspect none of my adhesives will actually bond to the plastic.
So I chopped off a length of aluminum U-channel, poked two holes it in, shortened a pair of salvaged screws, and made a clamp for the switch body’s back. The body has three locating pins, so the two parts aren’t shifting with respect to each other, and the clamp holds the back firmly in position.
Repaired switch with back clamp
Reassembly is in reverse order, paying a bit of attention to securing the wires in those crappy push-and-pray contacts and keeping everything away from the cooling fan as the bottom snaps into place.
Done!
The economics of this sort of repair make absolutely no sense at all, but I hate throwing stuff away just because some cheap part failed. In this case, I’d be happy to replace the switch… let me know where you can find one with the requisite contacts and spring arrangement!
I have the WWVB clock set to synch after receiving four consecutive valid time frames, which is pretty restrictive. The question is: can it still synch every night?
Here’s six days with the antenna sitting 3 cm above the receiver board, in front of our living room window, aimed more-or-less broadside to Colorado. We’re in the Eastern Time Zone, which is currently UTC-5, so our midnight corresponds to UTC 0500.
Although this isn’t a real long-term experiment, here’s a week of continuous WWVB clock operation, sitting by the window in our living room, with the circuit board open to ambient conditions.
The firmware checks the local oscillator drift against the WWVB time signal if more than 3 hours (10800 seconds) has elapsed since the last synch, so you’re not seeing every WWVB synch event.
The frequency offset is on the order of 1 in 75000 seconds: 13 parts per million or about 0.0013%.
The last line shows that the clock went 21.4 hours between synchs while drifting less than two seconds. If the clock didn’t synch for an entire week, it’d be within 15 seconds of the correct time. That’s not wonderful for a clock, but it’s good enough for this application: the display shows just hours and minutes.
Not bad for a cheap ceramic resonator on an Arduino Pro…
I read a whole stack of NIST doc on the WWVB transmitter & time code format last year, figuring out how to build a WWVB simulator and then the Totally Featureless Clock. The Circuit Cellar article on the simulator just appeared in print and a reader gave me a heads-up: the transmitter power now drops 17 dB during the low-power part of the PWM pulse.
How could I miss it? Well, all the doc is quite old and the change happened in 2006…
Fairly obviously, the C-Max WWVB receiver I’m using doesn’t have the mojo to track the signal during the day, no matter how fancy the modulation. Those pulses, the low-power part of the signal, just aren’t present amid all the other noise!
Also of interest: the WWVB transmitter has been running at half-power during the daylight hours since September 2009 while they do antenna maintenance. That’s supposed to be finished right about now, so the signal should be 3 dB better. I’ve got a nearly continuous record of the last month or so, which means a comparison will be in order after a few weeks.
Search for WWVB to find the other posts I’ve done on this topic…
My mother’s pantry disgorged a can of Hershey’s Cocoa dating back to the mid-90s (if I’m interpreting the 94P date code correctly). Their Favorite Hot Cocoa recipe is straightforward:
SINGLE SERVING: Combine 1 heaping teaspoon HERSHEY’S Cocoa, 2 heaping teaspoons sugar, and dash salt in mug, add 2 teaspoons milk and stir until smooth. Heat 1 cup milk: fill mug. Stir and serve.
Browsing in the grocery store revealed that the current recipe has considerably more stiffness: two tablespoons of both cocoa and sugar.
One tablespoon = 3 teaspoons. How they interpret “heaping” I don’t know, but it’s under a factor of two. Maybe cups are bigger these days, but surely not by a factor of four or five.
Zowie!
The Official Recipe from the Hershey’s website lists 2-3 teaspoons of cocoa and 2 tablespoons of sugar. I love this suggestion:
VARIATIONS
Rich and Adult: Increase cocoa to 2 tablespoons …
Ubuntu 9.10 uses ext4 filesystems by default and it’s usually a Good Thing to not mess with defaults early in the installation.
That precept worked up to the point where I wanted to make a full-partition backup before doing something potentially catastrophic… at which point I discovered that the current version of System Rescue CD has a version of partimage that doesn’t know about ext4 filesystems. While FSArchiver looks promising, all I really wanted was a quick-and-simple backup and (possibly) restoration.
So. Once again, dd to the rescue.
This being a fresh installation, there’s not much other data to contend with. In fact, the installation uses under 3 GB, but it’s in a 32 GB partition. Wouldn’t It Would Be Nice If we could back up just the 10% of useful data and skip the rest?
Reboot to System Rescue CD (hereinafter, SRC) and, while that’s happening, plug in a spare hard drive using a USB-to-SATA converter. That will be the “backup drive”.
Mount the backup drive (which appeared as /dev/sdf1 and will be different for you) at /mnt/backup, which is conveniently provided by SRC:
mount /dev/sdf1 /mnt/backup
Mount the partition to be backed up (which is /dev/sda8 and will be different for you) at /mnt/custom, another existing mount point.
mount /dev/sda8 /mnt/custom
Zero out all the unused space by creating one honkin’ big file, then erase it leaving all those highly compressible zeros behind:
The bs=1M option sets a decent blocksize for the read operations, which gets dd trundling along at a pretty good clip by reducing the per-read overhead.
The -c option tells gzip to pipe the output to stdout and not mess with the input file. The -3 says to not waste a lot of time trying to compress the data; much of the partition consists of raw binary executables, so there’s no point. The whole process will be limited by disk I/O speed, most likely.
As it happened, the partition squeezed down into about 1.8 GB worth of gzipped backup file.
Unmount the backup drive, reboot, and do risky things…
As it turned out, I actually had to restore the partition.
Once again, boot into SRC with the backup drive plugged in, mount the backup drive. Restoration is straightforward:
Warning: if you bungle the target of that dd, you are so screwed.
You’re both saving and restoring from a specific partition (/dev/sda8, in my case) within the drive, not the whole drive (which would be /dev/sda). Pay attention to what’s on the screen, check twice, and have a full-drive backup lurking in your fireproof safe…