Archive for category Software

HP 7475A: Superformula Successes

In the course of running off some Superformula plots, I found what must be my original stash of B-size plotter paper. Although it wasn’t archival paper and has yellowed a bit with age, it’s the smoothest and creamiest paper I’ve touched in quite some time: far nicer than the cheap stuff I picked up while reconditioning the HP 7475A plotter & its assorted pens.

Once in a while, all my errors and omissions cancel out enough to produce interesting results on that historic paper, hereby documented for future reference…

A triangle starburst:

Superformula - triangle burst

Superformula – triangle burst

Superformula - triangle burst - detail

Superformula – triangle burst – detail

A symmetric starburst:

Superformula - starburst

Superformula – starburst

Superformula - starburst - detail

Superformula – starburst – detail

Complex meshed ovals:

Superformula - meshed ovals

Superformula – meshed ovals

Superformula - meshed ovals - details

Superformula – meshed ovals – details

They look better in person, of course. Although inkjet printers produce more accurate results in less time, those old pen plots definitely look better in some sense.

The demo program lets you jam a fixed set of parameters into the plot, so (at least in principle) one could reproduce a plot from the parameters in the lower right corner. Here you go:

The triangle starburst:

Superformula - triangle burst - parameters

Superformula – triangle burst – parameters

The symmetric starburst:

Superformula - starburst - parameters

Superformula – starburst – parameters

The meshed ovals:

Superformula - meshed ovals - parameters

Superformula – meshed ovals – parameters

The current Python / Chiplotle source code as a GitHub gist:

1 Comment

Miniature Chain Mail: Handouts

I ran off a few patches of miniature chain mail for holiday handouts to a few folks who’d appreciate them:

Chain Mail Armor - 6x6 9.6 mm - top view

Chain Mail Armor – 6×6 9.6 mm – top view

A little patch like that makes a fondletoy that’s easier to pocket than, say, a planetary gear bearing and should be robust enough to withstand quite a bit of abuse.

Alas, it turned out that recent Slic3r development versions suffered a bridging regression. The stable 1.2.9 version does the right thing:

Slic3r 1.2.9 - good bridging

Slic3r 1.2.9 – good bridging

The hot-from-Github version goes diagonally, producing a pattern like an internal layer that normally sits atop the (omitted) bridge layer:

Slic3r 7c8b710 - diagonal bridging

Slic3r 7c8b710 – diagonal bridging

While that might barely work, the little bitty link bars will certainly fall into the abyss:

Slic3r 7c8b710 - diagonal bridging on links

Slic3r 7c8b710 – diagonal bridging on links

Given the complexity of slicing algorithms, I definitely can’t track down the problem; using the stable version for a while should suffice.

The OpenSCAD source code as a GitHub gist:

Leave a comment

Lenovo Q150: Setup for HP 7475A Plotter Demo

Starting with a blank 120 GB SSD, I had to disable the “Plug-n-Play OS” BIOS option to get the Lenovo Q150 to boot from a System Rescue CD USB stick. While the hood was up, I told the BIOS to ignore keyboard errors so it can boot headless.


  • 50 GB ext4 partition for Mint
  • 8 GB swap
  • The remainder unallocated

Booting & installing Mint Linux 17.2 XFCE from another USB stick went smoothly, after which it inhaled the usual gazillion updates. Rather than wait for the auto-updater to wake up and smell the repositories, I generally get it done thusly:

sudo apt-get update
sudo apt-get upgrade
apt-get dist-upgrade
apt-get autoremove

Add my user to the dialout group, so I have access to the USB serial converter on /dev/ttyUSB0 that will drive the plotter.

Configure a static IP address that appears in the appropriate /etc/hosts files.

Install some useful packages:

  • nfs-common
  • openssh-server
  • htop and iotop

Set up ssh for public key authentication, rather than passwords, on an unusual port, so everything else can happen from the Comfy Chair upstairs.

Install packages that Chiplotle will need:

  • build-essential
  • python-setuptools
  • python-dev
  • python-numpy
  • python-serial
  • hp2xx

I think some of those would be auto-installed as dependencies by the next step, but now I can remember what they are for the next time around this action loop:

sudo easy_install -U chiplotle
... blank line to show underscore above ...

Plug the old hard drive into a USB-SATA adapter to copy:

Then chuck up some paper and pens to let it grind out art:

HP 7475A - demo plot

HP 7475A – demo plot

It’s good clean fun…

1 Comment

Chip-on-board LED Desk Lamp Retrofit

After the 5 mm white LEDs failed on the original desk lamp rebuild, I picked up some chip-on-board LED lamps from the usual eBay supplier:

COB LED Desk Lamp - bottom

COB LED Desk Lamp – bottom

The LED’s aluminum baseplate (perhaps there’s an actual “board” inside the yellow silicone fill) is firmly epoxied to a small heatsink from the Big Box o’ Heatsinks, chosen on the basis of being the right size and not being too battered.

The rather limited specs say the LED supply voltage can range from 9 to 12 V, suggesting a bit of slack, with a maximum dissipation of 3 W, which definitely requires a heatsink.

The First Light test looked promising:

 COB LED Desk Lamp - first light

COB LED Desk Lamp – first light

That’s driven from the same 12 VDC 200 mA wall wart that I used for the failed ring light version. Measuring the results shows that the supply now runs at the ragged edge of its current rating, with the output voltage around 10.5 V with plenty of ripple:

COB LED V I 100ma div

COB LED V I 100ma div

The 260 mA current (bottom, trace 1 at 100 mA/div) varies from 200 to 300 mA as the voltage (top, trace 2 at 2 V/div) varies between 10 V and a bit under 11 V. If you believe the RMS values, it’s dissipating 2.7 W and the heatsink runs at a pleasant 105 °F in an ordinary room. The wall wart gets about as warm as you’d expect; it contains an old heavy-iron transformer and rectifier, not a trendy switcher.

The heatsink mount looks nice, in a geeky way:

COB LED Desk Lamp - side detail

COB LED Desk Lamp – side detail

The left side must be that long to anchor the gooseneck; I thought about tapering the slab a bit, but, really, it’s OK the way it is. Dabs of epoxy hold the gooseneck and heatsink in place.

The heatsink rests on a small ledge at the bottom of the slab that’s as tall as the COB LED is thick, with a wire channel from the gooseneck socket:

COB LED Heatsink mount - Slic3r

COB LED Heatsink mount – Slic3r

The Hilbert Curve infill on the top produces a textured finish; I’m a sucker for that pattern.

The old lamp base isn’t particularly stylin’, but the new head lights up my desk below the big monitors without any glare:

COB LED Desk Lamp - overview

COB LED Desk Lamp – overview

Now, let’s see how long this one lasts…

The OpenSCAD source code as a Github gist:


Leave a comment

Web Security Warning: Say What?

Having turned on my old Kindle Fire’s “security warnings” just to see what happens, I’m confronted by pop-ups like this on a regular basis:

Web Security Warning

Web Security Warning

People who know what they’re talking about tell me there’s no way for ordinary civilians, such as I, to evaluate the validity of the “credentials” described by that pop-up. In this case, the credential apparently comes from DigiCert, which ought to be trust-able, and was issued to, an actual IBM subsidiary that apparently does Web analytics.

It works fine through my desktop browsers. The Kindle, however, can’t even find, so the problem must be an Amazon thing.

The only response that makes sense is to continue loading: might have cat pictures!

I should just turn off the warnings and be done with it…


Command-line CD Ripping & Encoding

A recent and rather battered book-on-CD posed more than the usual problems for Asunder, so I finally broke down and fiddled around with cdparanoia and lame. This has obviously been done many times before, but breaking it into two simple steps per CD makes the inevitable errors easier to find and work around.

Invoke cdparanoia thusly to rip an entire CD into separate tracks:

cdparanoia -B -v

The files pop out sporting names like track01.cdda.wav, but they won’t be around long enough for you to develop a deep emotional attachment.

Throw a handful of parameters at lame to convert the WAV files into tagged MP3 files:

for t in {01..18} ; do lame --preset tape --tt "D${d}:T${t}" --ta "Author Name" --tl "Book title" --tn "${t}/18" --tg "Audio Book" --add-id3v2 track${t}.cdda.wav D${d}-${t}.mp3 ; done
rm track*

There’s surely a way to make a double substitution work in the track sequence, but the syntax, ah, escapes me at the moment.

You might want to not delete the WAV files until you’re happy with the MP3 results.

In any event, that produces a sequence of MP3 files imaginatively named along the lines of D1-01.mp3, which fits neatly into the cramped LCD space available on an MP3 player.

Your quality preferences may differ…


Blue Gauntlet Fencing Helmet Ear Grommet

Our Larval Engineer practiced fencing for several years, learning the fundamental truth that you should always bring a gun to a knife fight:

Fencing - taking a hit

Fencing – taking a hit

It’s time to pass the gear along to someone who can use it, but we discovered one of the ear grommets inside the helmet had broken:

Blue Gauntlet M003-BG Helmet - broken ear grommet

Blue Gauntlet M003-BG Helmet – broken ear grommet

The cylinder in the middle should be attached to the washer on the left, which goes inside the helmet padding. It’s a tight push fit inside the washer on the right, which goes on the outside of the padding. Ridges along the cylinder hold it in place.

Being an injection-molded polyethylene part, no earthly adhesive or solvent will bother it, soooo… the solid model pretty much reproduces the original design:

Fencing Helmet Ear Grommet - show

Fencing Helmet Ear Grommet – show

The top washer goes inside the padding against your (well, her) ear, so I chamfered the edges sorta-kinda like the original.

There are no deliberate ridges on the central cylinder, but printing the parts in the obvious orientation with no additional clearance makes them a very snug push fit and the usual 3D printing ridges work perfectly; you could apply adhesive if you like. The outside washer has a slight chamfer to orient the post and get it moving along.

The posts keep the whole affair from rotating, but I’m not sure they’re really necessary.

Printing a pair doesn’t take much longer than just one:

Fencing Helmet Ear Grommet - build

Fencing Helmet Ear Grommet – build

It doesn’t look like much inside the helmet:

Blue Gauntlet M003-BG - replacement ear grommet - installed

Blue Gauntlet M003-BG – replacement ear grommet – installed

The OpenSCAD source code as a gist from Github: