Archive for category Software

Improved Cable Clips

Those ugly square cable clips cried out for a cylindrical version:

LED Cable Clips - round - solid model

LED Cable Clips – round – solid model

Which prompted a nice button:

LED Cable Clips - button - solid model

LED Cable Clips – button – solid model

Which suggested the square version needed some softening:

LED Cable Clips - square - solid model

LED Cable Clips – square – solid model

Apart from the base plate thickness, all the dimensions scale from the cable OD; I’ll be unsurprised to discover small cables don’t produce enough base area for good long-term foam tape adhesion. Maybe the base must have a minimum size or area?

I won’t replace the ones already on the saw, but these will look better on the next project…

The OpenSCAD source code as a GitHub Gist:



Leave a comment

Blog Backup: Incremental Media

The recipe for incrementally copying media files since the previous blog backup works like this:

grep attachment_url *xml > attach.txt
sed 's/^.*http/http/' attach.txt | sed 's/<\/wp.*//' > download.txt
wget -nc -w 2 --no-verbose --random-wait --force-directories --directory-prefix=Media/ -i download.txt

The -nc sets the “no clobber” option, which (paradoxically) simply avoids downloading a duplicate of an existing file. Otherwise, it’d download the file and glue on a *.1 suffix, which isn’t a desirable outcome. The myriad (thus far, 0.6 myriad) already-copied files generate a massive stream of messages along the lines of File ‘mumble’ already there; not retrieving.

Adding --no-verbose will cut the clutter and emit some comfort messages.

There seems no way to recursively fetch only newer media files directly from the WordPress file URL with -r -N; the site redirects the http:// requests to the base URL, which doesn’t know about bare media files and coughs up a “not found” error.

Leave a comment

Bandsaw Worklight: LED Cable Clips

Adapting the sewing machine cable clips for larger USB cables:

LED Cable Clips - solid model

LED Cable Clips – solid model

The calculation positioning the posts wasn’t quite right; they now touch the cable OD at their midline and converge slightly overhead to retain it.

They’re great candidates for sequential printing:

LED Cable Clips - Slic3r - sequential print

LED Cable Clips – Slic3r – sequential print

With the basement at 14 °C, any cooling is too much: the platform heater can’t keep the bed above the thermal cutout temperature, the firmware concludes the thermistor has failed, and shuts the printer off. So I popped the four finished clips off the platform, removed the skirt, unplugged the fan, rebooted that sucker, and restarted the print.

One clip in the front keeps the cable away from the power switch and speed control directly below the gooseneck mount:

USB Gooseneck Mount - cable clip

USB Gooseneck Mount – cable clip

A few clips in the back route the cable from the COB LED epoxied directly onto the bandsaw frame away from the motor enclosure:

Bandsaw platform COB LED - cable clips

Bandsaw platform COB LED – cable clips

They’re mounted on double-sided foam tape. The COB LED on the frame isn’t anything to write home about, but you can see the foam tape peeking out around the clip base:

Bandsaw platform COB LED

Bandsaw platform COB LED

Unlike those LED filaments, it seems you can gently bend the aluminum substrate under a COB LED.

The bandsaw platform now has plenty of light: a fine upgrade!

Yeah, you can buy stick-on cable anchors, but what’s the fun in that? These fit exactly, hold securely, and work just fine.

The OpenSCAD source code as a GitHub Gist:



Bandsaw Worklight: USB Gooseneck Mount

The bandsaw now sports a chunky mount for its gooseneck light:

USB Gooseneck Mount - on bandsaw

USB Gooseneck Mount – on bandsaw

The gooseneck ends in a USB Type-A plug, so an ordinary USB extension cable can connect it to the hacked hub supplying 9 VDC:

USB Gooseneck Mount - interior

USB Gooseneck Mount – interior

The plastic came from a slightly earlier version of the solid model, with one foam pad under the gooseneck’s USB plug to soak up the clearance. The four smaller holes, with M3 brass inserts visible in the bottom half (on the right), clamp the gooseneck connector in place against the foam; you could push it out if you were really determined, but you’d have to be really determined.

If I ever build another one, it’ll sandwich the plug between opposing pads:

USB Gooseneck Connector Mount - Slic3r preview

USB Gooseneck Connector Mount – Slic3r preview

The lettering on the block stands out much better in the solid model:

USB Gooseneck Connector Mount - solid model - overview

USB Gooseneck Connector Mount – solid model – overview

Obviously, I need help with the stylin’ thing. This looks better, but with terrible overhangs for printing in the obvious no-support orientation:

USB Gooseneck Connector Mount - solid model - rounded top

USB Gooseneck Connector Mount – solid model – rounded top

Anyhow, the USB extension cable (on the left) has plenty of clearance and pulls straight out of the housing, so I can remove the bandsaw cover without unwiring:

USB Gooseneck Mount - assembled

USB Gooseneck Mount – assembled

The LED ticks along at 40 °C in a 14 °C basement, suggesting a thermal coefficient around 14 °C/W. Even in the summer months, with the basement around 25 °C, there’s no risk of PETG softening at 50 °C.

I’ll epoxy a similar 1.8 W COB LED onto the curve of the bandsaw frame where it can shine on the left and rear part of the table; it doesn’t even need a case.

The OpenSCAD source code as a GitHub Gist:


1 Comment

NESDR Mini 2+ vs. Input Terminator

A tiny handful of known-good-quality SMA terminators arrived from eBay:

KDI T187GS - 50 ohm 1 W SMA attenuators

KDI T187GS – 50 ohm 1 W SMA attenuators

They’re described as KDI Triangle T187GS SMA Female Terminator, 50Ω, 1W, 0-4GHz. A bit of searching suggests MCE (whoever they are) borged KDI quite a while ago (their website, last updated in 2003, has been lightly vandalized) and a datasheet won’t be forthcoming.

In any event, a NooElec NESDR Mini 2+ radio connected to a dual-band VHF-UHF antenna perched near a window shows this for a local FM station:

FM 101.5 NESDR - direct

FM 101.5 NESDR – direct

Zooming to 5 dB/div:

FM 101.5 NESDR - 5 dB steps

FM 101.5 NESDR – 5 dB steps

Installing the terminator at the end of an MCX-to-SMA adapter cable:

FM 101.5 NESDR - 50 ohm terminator

FM 101.5 NESDR – 50 ohm terminator

Haven’t a clue about those tiny little spikes with the terminator in place, but they don’t line up with any of the high-energy inputs and are, most likely, junk brewed up within the radio. That’s with the RF gain set to 49.6 dB and AGC turned off.

The hardware looks like this:

NESDR with SMA attenuators

NESDR with SMA attenuators

The MCX connector on the radio isn’t the most durable-looking thing I’ve ever seen, so strapping the adapter cable to the case seems like a Good Idea. You can get an NESDR radio with an SMA connector for about the same price, which I’d have done if were available a while ago.

The terminated input looks to be about -75 dBFS, about 15 dB below the between-station noise, and the carrier tops out around -25 dBFS, for a “dynamic range” of 50 dB. Oddly, that’s just about dead on the maximum dynamic range you can get from the 8 bit RTL2832U demodulator / ADC stuffed inside the NESDR: 8 bits × 6 dB/bit.

It is not obvious to me the signal from a randomly chosen (albeit powerful) FM station should exactly fill the receiver’s dynamic range, particularly without AGC riding herd on the RF gain. Some hardware tinkering seems in order.

The GNU Radio flow graph:

FM Broadcast - GNU Radio flow

FM Broadcast – GNU Radio flow



Unicode Keyboard Flameout and Workaround

For unknown reasons, probably having to do with the unmitigated disaster of trying to get an SDRPlay radio working with GNU Radio (about which, more later), Unicode keyboard input stopped working. This is not to be tolerated, because engineering notation requires a lot of Greek letters.

Unicode support seems to be baked into the lowest levels of the Linux operating system, although it’s not clear to me whether it’s in X, QT, GTK, or somewhere else. Googling the obvious keywords was unavailing; evidently this feature never ever fails or, more likely, very few people use it to any extent.

Note that I already have the Compose key set up, but Compose sequences don’t include Greek letters.

After considerable flailing, I added the Simple Greek keyboard layout and defined the (otherwised unused) Menu key as the keyboard layout switcher. That’s a pretty big hammer for a rather small problem; I devoutly hope Unicode mysteriously starts working again.

For reference, the Greek keyboard layout looks like this:

Greek keyboard layout

Greek keyboard layout

I’d have put Ω on the W key, rather than V, but that’s just because so many fonts do exactly that.



60 kHz Preamp: Board Holder

A cleaned up version of my trusty circuit board holder now keeps the 60 kHz preamp off what passes for a floor in the attic:

Preamp in attic

Preamp in attic

The solid model became slightly taller than before, due to a serious tangle of wiring below the board, with a narrower flange that fits just as well in the benchtop gripper:

Proto Board - 80x110

Proto Board – 80×110

Tidy brass inserts epoxied in the corners replace the previous raw screw holes in the plastic:

Proto Board Holder - 4-40 inserts and screws

Proto Board Holder – 4-40 inserts and screws

The screws standing on their heads have washers epoxied in place, although that’s certainly not necessary; the dab of left-over epoxy called out for something. The screws got cut down to 7 mm after curing.

The preamp attaches to a lumpy circle of loop antenna hung from the rafters and returns reasonable results:

WWVB - morning - 2017-01-16

WWVB – morning – 2017-01-16

The OpenSCAD source code as a GitHub Gist:

, ,

1 Comment