Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
In that version of the GPS+voice interface, I sprinkled 100 nF and 100 pF SMD caps across the input lines in the hope that they’d reduce EMI on the audio board. The board worked fine for years, but now that it’s time to build another board & box, I figured it’d be good to know a bit more about their actual response.
So I cobbled up a test fixture with a 3 dB pad from the tracking generator output and a 20 dB pad to the spectrum analyzer input (both of those are bogus, because the cap impedance varies wildly, but work with me on this):
Ceramic 100 nF cap on copper
Pulled an assortment of 100 nF ceramic caps from the stockpile:
Their self-resonant frequencies are much lower than I expected:
Cap Comparison
The attenuators produce about 17 dB of loss with no cap in the circuit, so the disk caps are pretty much asleep at the switch from VHF on up. The small bypass cap in the top photo is OK and the SMD cap is pretty good, but they’re all well past their self-resonant frequency and acting like inductors.
The relevant equations:
FR = 1/(2π √(LC))
XC = 1/(2π f C)
Q = FR / BW
ESR = XC / Q
The drill goes a little something like this:
Find resonant frequency FR and 3 db bandwidth BW
Knowing FR and C, find parasitic L
Knowing FR and BW, find Q
Knowing XC and Q, find ESR
In round numbers, the 100 nF SMD cap has L=2 nH and ESR=60 mΩ.
Now, it turns out a 100 pF SMD cap resonates up at 300 MHz, between the VHF and UHF amateur bands:
SMD – 100 pF Bandwidth
So I think the way to do this is to pick the capacitance to put the self-resonant frequency in the VHF band, parallel another cap to put a second dip in the UHF band, and run with it. A back of the envelope calculation suggests 470 pF and 47 pF, but that obviously depends on a bunch of other imponderables and I’ll just interrogate the heap until the right ones step forward.
Just to show the test fixture isn’t a complete piece of crap, here’s a 12 pF cap resonating up around 850 MHz:
SMD – 12 pF Bandwidth
For the combination of components, sweep speeds, bandwidths, and suchlike in effect, the spectrum analyzer’s noise floor is down around -75 dBm. I think the 12 pF cap is actually better than it looks, but I didn’t fiddle around with a narrower resolution bandwidth.
A cheap auto escape hammer (IIRC, free in the bottom of a tag-sale box filled with stuff I could actually use) has been kicking around the back of the bench for far too long; it had a feeble single-cell incandescent bulb flashlight with the cheapest possible non-switch. I ripped all that out, carved out enough plastic to fit a CR123 lithium cell, hot-melt-glued a real pushbutton switch and 10 mm white LED in place, and soldered it up:
Lithium cell hacked into auto escape tool
The CR123 puts out enough juice to light up the LED, but it’d be happier with a bit more current. There’s no limiting resistor, so the LED gets what it gets.
Augment the screws with a few snippets of Kapton tape, use some real 3M Velcro tape, and it’s all good (albeit ugly on a stick):
Hacked auto escape hammer
Now, there’s no way to test the hammer part of it (perhaps I could visit a junkyard and whack out a few windows for practice?), but at least now we have a disposable flashlight in the van…
Our yard accumulated about 14 inches of heavy wet snow that made a mess of the maple trees. Before I could get the snowblower out of the garage, I had to cut up a stack of branches:
Branches at garage
Yes, there really is that much of a slope leading up to the garage; clearing the driveway immediately after every snowstorm is not optional.
Many of the branches in the back yard broke off and simply leaned against the ones still arched over the driveway:
Branches in back yard
The front yard was a mess:
Branches in front yard
In addition to all that, we had branches down beside the house, in the garden, around the beehive, and, in general, everywhere. Obviously, we have too many maples, but they’re what the previous owners planted (or at least didn’t uproot while that was possible).
The generator bridged 25 hours without power to save the refrigerator & freezer contents and keep the house between 55-60 °F. We survived five days with no phone (shrug) or Internet (eeek!); the cell phone was, as usual, useless because the house sits on a local maximum in a shallow valley below line-of-sight from all the surrounding towers.
The last break in the phone & Internet cables occurred just north of us:
Branches on wires
Those branches came from a tree across the road that put down roots on a slab of rock that just didn’t provide enough griptivity:
Tree down on Rt 376
After three days of diligent bow-saw work and mule-mode dragging, we cleared the yards. The back yard clutter went over the cliff toward our bottomlands adjoining the Wappingers Creek and the front yard timber now sits ready for what we hope will be the town’s pickup:
Branches ready for pickup
Our experience was a nuisance, rather than a disaster, unlike that of many folks in the area.
My Useful Sizes.scad file has been accumulating the dimensions of nuts & bolts & a motor that don’t (seem to) appear elsewhere in the OpenSCAD universe:
The Logitech notebook webcam that peers into the Thing-O-Matic has terrible dynamic range compensation; turning on the LED ring light washes out the image something awful. An old Logitech ball camera seems better, but it sits atop a rubbery dingus adapted to grip huge old laptops. So I built an adapter with a standard 1/4-20 tripod screw thread in the bottom that ought to make it more useful.
The old & new mounts compared:
Logitech ball camera mounts
The color change comes from switching to yellow filament for an upcoming larger object.
The solid model shows those tiny little notches will require a bit of riffler file work:
Logitech camera tripod adapter – solid model
The bottom has a blind 1/4-20 tapped hole. Lacking a bottoming tap, not having any broken 1/4-20 taps, and being unwilling to grind the end off a perfectly good taper tap, I filed three notches along a bolt. Ran the taper tap in until it hit bottom, ran the bolt in likewise, and defined the result to be Good Enough:
Homebrew bottoming tap
On the other end, the most probable failure will leave that delicate little post jammed firmly inside the camera’s socket. There’s not enough post to allow printing a small guide hole, but there’s no real need for one; I drilled a #50 hole right down the middle, ran a 2-56 screw into it without tapping the hole, and filed the screw head flat:
Camera mount with filed screw
After cleaning up those notches, it snapped solidly into place:
Logitech ball camera with mount
And then the camera sits neatly atop a cheap Gorillapod knockoff:
Logitech ball camera on tripod
That tiny reddish dot in the middle of the imposing set of rings marks the actual lens, so it’s more of a pinhole camera than anything else. The fixed focus kicks in beyond a meter, but a bit of rummaging in the Box o’ Lenses produced a random meniscus lens that pulled the focus in to maybe 100 mm. Alas, that means the camera must float in mid-air about 15 mm inside the Thing-O-Matic’s box. If I can conjure up a mount that holds the ball inside the box, above-and-forward of the stage, that’d work great. VLC can allegedly rotate the image upside-down, so maybe I can mount it bottom-up.
Here’s everything I know about those two cameras, with the ball camera on top and the webcam on the bottom:
Logitech ball and notebook webcam data
Apparently it’s easier to put that information on a tag than provide a good old data plate on the camera body.
The OpenSCAD source code:
// Tripod mount for Logitech ball camera
// Ed Nisley KE4ZNU - Oct 2011
include </home/ed/Thing-O-Matic/lib/MCAD/units.scad>
include </home/ed/Thing-O-Matic/Useful Sizes.scad>
include </home/ed/Thing-O-Matic/lib/visibone_colors.scad>
//-------
//- Extrusion parameters must match reality!
// Print with +0 shells and 3 solid layers
ThreadThick = 0.33;
ThreadWidth = 2.0 * ThreadThick;
HoleFinagle = 0.2;
HoleFudge = 1.02;
function HoleAdjust(Diameter) = HoleFudge*Diameter + HoleFinagle;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
Protrusion = 0.1; // make holes end cleanly
//-------
// Dimensions
BallDia = 60.0; // camera ball
BallRad = BallDia/2;
BaseDia = 16.0; // interface at tripod surface
BaseRad = BaseDia/2;
BaseLength = 10.0; // to base of ball
BoltDia = Tap025_20; // standard 1/4-20 thread
BoltLength = 7.0;
StemLength = 8.5;
StemDia = 4.7;
StemRad = StemDia/2;
FlangeWidth = 6.6;
FlangeThick = 2.6;
NotchSectionDia = 1.4; // toroid cross-section diameter
NotchSectionRad = NotchSectionDia/2;
NotchOffset = 2.3; // from top of stem
//-------
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=HoleAdjust(FixDia)/2,h=Height,$fn=Sides);
}
module ShowPegGrid(Space = 10.0,Size = 1.0) {
Range = floor(50 / Space);
for (x=[-Range:Range])
for (y=[-Range:Range])
translate([x*Space,y*Space,Size/2])
%cube(Size,center=true);
}
//-------
//
ShowPegGrid();
translate([0,0,BaseLength])
union() {
difference() {
translate([0,0,-BaseLength])
cylinder(r=BaseRad,h=2*BaseLength);
translate([0,0,BallRad])
sphere(r=BallRad);
translate([0,0,-(BaseLength + Protrusion)])
PolyCyl(BoltDia,(BoltLength + Protrusion));
}
rotate(180/16)
cylinder(r=StemRad,h=StemLength,$fn=16);
difference() {
translate([0,0,StemLength/2])
cube([FlangeWidth,FlangeThick,StemLength],center=true);
translate([0,0,(StemLength - NotchOffset)])
rotate_extrude(convexity=3,$fn=64)
translate([FlangeWidth/2,0,0])
circle(r=NotchSectionRad,$fn=16);
translate([0,-FlangeWidth/2,StemLength + sqrt(FlangeWidth)])
rotate([0,45,0])
cube(FlangeWidth + 2*Protrusion);
translate([0,FlangeWidth/2,StemLength + sqrt(FlangeWidth)])
rotate([0,45,180])
cube(FlangeWidth + 2*Protrusion);
}
}
The squeeze handle that tightens the bar clamp cracked exactly where you’d expect: directly across the pivot hole where the miracle engineering plastic thins down to a precarious ridge. The end of the handle is still inside the clamp:
Bar clamp with broken handle
Nothing bonds that plastic, so, in the nature of a quick fix, I cut a steel strap to wrap around the perimeter of the broken section and epoxied the whole mess together:
Reinforced bar clamp handle
That lasted for exactly 2.5 squeezes and then pulled apart; the epoxy doesn’t really have anything to grab.
ABS isn’t a good substitute for engineering plastic, so this will require a bit of CNC work on the Sherline. I’ll probably carve the first one from polycarbonate, just because I have a sheet of the right thickness, but it really cries out for aluminum, doesn’t it?
Why CNC? Well, I’m going to make a handful of handles and get proactive on the other clamps.
My other bar clamps have much heavier sections in that area, so perhaps the folks supplying Harbor Freight could take a hint? Yeah, but the clamp was cheap, which always conflicts with good. On the other paw, I’ve seen exactly this same clamp priced at not cheap elsewhere.
Having had trouble with tire liners eroding the rear tube, I went with just a tube and a Kevlar belted Marathon tire. Somewhat to my surprise, that lasted for most of the riding season, but a recent trip had a protracted rest stop:
I think even a tire liner wouldn’t help with this one.
Other than that, the tube was in fine shape, so I’ll probably patch it and toss it back in the bike pack. Tire liners prevent most flats from gashes along the midline of the tire, but …