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.

Category: Machine Shop

Mechanical widgetry

  • More Header Pin Slitting

    My stock of single-row header pins seems to be running short, so it’s time for another slitting session:

    Header pin slicing
    Header pin slicing

    Manual CNC, typing bare G-Code directly into LinuxCNC Axis: no reason to turn the cranks by hand.

    This makes absolutely no economic sense, but it’s a sticky-hot day and the Basement Laboratory has the dehumidifier. Some day I’ll run into a killer surplus sale of single-row headers and that’ll solve the problem forever…

  • Edge-Lit Acrylic “Nixie” Display: Doodles

    The Basement Warehouse Wing has an essentially unlimited supply of pristine CD cases (remember CDs?) that, with a bit of deft bandsaw work, will each emit a pair of 4×4 inch sheets of perfectly transparent acrylic plastic. The sheets are about 1.3 mm = 50 mils thick, which is just about exactly what you want for a Nixie-style display that doesn’t require high voltages, because you can edge-light a sheet with 0603 amber SMD LEDs. Obviously, this is not a Shining New Idea, but this post collects my doodles so they don’t get lost along the way.

    The Squidwrench StickerLab session prodded me into lashing a prototype together to see how this would work; they have a Silhouette Cameo vinyl cutter driven with Robotcut that works well. I’d hoped to do some laser cutting at the subsequent session, but our schedules didn’t mesh.

    The compelling advantage of laser cutting is that you could crack the CD cases apart, throw out the CD holder gimcrackery, lay the sheets flat on the cutter table with the latches & other junk upward, and burn the digits out of the middle without any further preparation. I think I could get much the same effect, at least for a crude prototype, by milling & engraving with the Sherline.

    The sheets are about 4 threads of 3D printed plastic extruded at the M2’s default 0.4 mm width. You could print a black baseplate with slots to hold the sheets, put two threads between each sheet, and have the sheet 6 threads apart on center = 2.4 mm spacing:

    Tab vs 3D thread size doodle
    Tab vs 3D thread size doodle

    Ten such sheets would produce a standard 0-to-9 display about an inch deep, plus protective sheets front and back, so the whole affair would be maybe 1.25 inch deep. You’d probably want to offset the tabs on adjacent sheets to reduce light leakage between LEDs. The baseplate fits atop a PCB with LEDs at the right locations, so you get an opaque holder for the sheets that’s easy to produce and easy to assemble:

    Sheet tab layout doodle
    Sheet tab layout doodle

    If you were clever, you could have different tab locations on each sheet so they’d fit only in the proper orientation; that might be important for cough mass production.

    The M2 has a platform big enough to build an entire clock base in one pass, plus a matching piece to capture the tops of the digits. I think edge-lit acrylic needs a complete opaque surround for each digit sheet to block light leaking from the edges; it might be easier to build the mount in the other direction, lying flat on the platform, stack the mounts together with the digit sheets, then bolt the whole assembly from the front; that would ensure perfect alignment of everything.

    In that case, the 3D printed layers are 0.25 mm (or smaller), but the resolution for the tabs would be 0.4 mm. If you were exceedingly brave & daring, you could lay the digit sheets in place during the build and come out with a monolithic unit; that might require a bit of clearance atop each sheet, as a grazing touch from a hot nozzle would be painfully obvious.

    There’s no reason you couldn’t have 16 sheets for a hexadecimal display; this would work out nicely with 8-bit shift registers using SPI from the usual Arduino-love controller. One might prefer current-limiting LED drivers.

    There’s also no reason you couldn’t use a wider “digit” sheet and engrave, say, the days of the week or the units of measurement or something like that on each panel.

    If the display will be 30 mm deep, then the digits must be large enough that the depth doesn’t turn each digit into a tunnel. Large Nixe tubes had digits about 40 mm tall, so I went with a 30 x 45 panel, plus 1 mm tabs on the top and bottom:

    Crude edge-lit acrylic panel vs vinyl stencil
    Crude edge-lit acrylic panel vs vinyl stencil

    The “engraved” digit on the left came from a vinyl mask similar to the one on the right, using fine sandpaper to rough up the acrylic surface. I deliberately started with a battered old CD case in order to prevent myself from getting too compulsive with neatness; as you’ll see, edge-lit acrylic reveals any surface imperfections, so cleanliness is important.

    The black border could be a light-shield gasket around the outer edge of the display panel to reduce glare from the edges. This might be more important for laser-cut pieces with highly reflective edges or for milled pieces with diffuse edges; there’s no way to tell without actually building one to see. I simply bandsawed the sheet around the edges of the mask, then filed off the larger chunks: the edges are very, very rough, indeed.

    There doesn’t seem to be an easy way to stash the Inkscape SVG file on WordPress.

    I solder-blobbed some wire-wrap wire, a 1206 SMD resistor, and a 0603 LED together:

    Crude 0603 SMD LED lashup
    Crude 0603 SMD LED lashup

    The 0603 SMD LED fits neatly along the edge of the sheet:

    0603 SMD on CD case edge
    0603 SMD on CD case edge

    A 3rd hand holds it upright on the bench over the LED lashup:

    Edge-lit acrylic - front layout
    Edge-lit acrylic – front layout

    It looks marginally better with the lights out, but you can see all the scratches:

    Edge-lit acrylic - front detail
    Edge-lit acrylic – front detail

    The hot spot at the bottom of the digit isn’t nearly that awful in person.

    A top view shows the glowing edges, plus the nuclear glow from the LED:

    Edge-lit acrylic - top view
    Edge-lit acrylic – top view

    A touch of soft focus, plus moving the LED under a tab location, helps a bit:

    Edge-lit acrylic - front soft focus
    Edge-lit acrylic – front soft focus

    You’d want two LEDs per digit and maybe one at the top, but that’s in the nature of fine tuning.

    All in all, I like how it looks. Getting from this crud to a workable display will require far more effort than I can devote to it right now…

  • Makergear M2: Bridge Torture Test

    Although I’ve pretty much given up on torture tests, I saw a note about the troubles someone had with Triffid Hunter’s Bridge Torture Test object. I did a bit of tweaking to the OpenSCAD source to shorten the struts and add the pads (which could be done with Slic3r’s Brim settings), but it’s otherwise about the same. The clear span is about 50 mm:

    Bridge Torture Test - solid model
    Bridge Torture Test – solid model

    Using my usual settings, with no special setup, the front looked OK:

    Bridge torture test - overview
    Bridge torture test – overview

    One strand came out rather droopy:

    Bridge torture test - front
    Bridge torture test – front

    The bottom layer of the bridge isn’t as consolidated as it could be:

    Bridge torture test - bottom
    Bridge torture test – bottom

    The overall speed dropped considerably as the Cool setting limited the layer time to 20 seconds; the Bridge settings didn’t apply.

    I could probably tighten the bottom strands a bit, but it’s OK for a first pass.

    The OpenSCAD source code:

    bridge_length = 50;
    bridge_angle = 0;
    bridge_width = 5;
    
    strut_height = 4;
    
    layer_height = 0.25;
    extrusion_width = 0.5;
    
    bridge_recovery_layers = 2 / layer_height;
    
    module foot() {
    	rotate([0, 0, 180/4]) cylinder(r=bridge_width * 2, h=layer_height, $fn=4);
    }
    
    module strut() {
    	rotate([0, 0, 180/4])
    	difference() {
    		cylinder(r1=bridge_width / 1.5 / cos(45), r2=bridge_width / 2 / cos(45),
    			h=strut_height, $fn=4);
    		translate([0, 0, -1]) cylinder(r1=(bridge_width / 1.5 - extrusion_width * 2) / cos(45),
    			r2=(bridge_width / 2 - extrusion_width * 2) / cos(45), h=10, $fn=4);
    	}
    }
    
    translate([-bridge_length/2,0,0])
    rotate(bridge_angle) {
    	translate([00, 0, 0]) foot();
    	translate([bridge_length + bridge_width, 0, 0]) foot();
    
    	translate([00, 0, 0]) strut();
    	translate([bridge_length + bridge_width, 0, 0]) strut();
    
    	translate([bridge_width / -2, bridge_width / -2, strut_height]) cube([bridge_length + bridge_width * 2, bridge_width, layer_height * bridge_recovery_layers]);
    
    	translate([bridge_length / 2 + bridge_width / 2, 0, strut_height + layer_height * bridge_recovery_layers])
    	difference() {
    		cylinder(r=bridge_width / 2, h=1, $fn=32);
    		cylinder(r=bridge_width / 2 - extrusion_width, h=1.01, $fn=32);
    	}
    }
    
  • Driveway Drain Debris Clog

    Alas, the nice slotted cap I put on the driveway drain can’t handle the amount of debris released by the trees next to the house and above the gutters. I’d removed the thumbscrew to simplify clearing the cap whenever I go for the mail, but that just accentuated the problem:

    Driveway drain - fountain
    Driveway drain – fountain

    The backup must be over a foot of water at the end of the pipe; that fountain emerges from the 1/4 inch hole for the thumbscrew. Fortunately, the slope is large enough that the water (probably) isn’t backing up into the retaining wall footing drain.

    When the pine trees toss their dead needles overboard, the cap plugs solid and, minus the screw, blows across the driveway:

    Driveway drain - clogged
    Driveway drain – clogged

    It usually doesn’t roll very far, although I’ve retrieved it halfway to the street.

    I still think the chipmunks will move in without a grate blocking the pipe, but I’m unsure how to proceed…

  • Improved M2 Heated Build Platform: First Light

    Although the M2’s heated build platform works well enough, somebody who knows what he’s doing (you know who you are: thanks!) sent me an improved version. It’s a PCB heater, laid out to compensate for the usual edge cooling, firmly attached to a tempered glass plate with genuine 3M thermally conductive tape:

    Improved M2 HBP - test setup
    Improved M2 HBP – test setup

    They designed the heater around the 30 VDC power supply used in their other equipment. Although I had high moderate hopes that a boost power supply would convert the 24 V supply I already had for the stepper driver bricks into the 30 V for the heater, it was not to be. So there’s a 36 V 9.7 A 350 W supply arcing around the planet that (I think) should work better: adjust the voltage down as far as it’ll go, soak up another few volts in the solid-state relay, and Things Should Be Close Enough to 30 V. One can buy a genuine 30 V supply, but it costs surprisingly more than either 24 V or 36 V supplies on the surplus / eBay market and won’t really provide the proper voltage without upward tweaking anyway.

    I replaced their standard 0.156 inch square terminals with Anderson Powerpoles, soldered a length of shielded cable to the 100 kΩ thermistor pads, and gimmicked up a connection to the 24 V supply; it delivered 23.7 V at the PCB terminals. The thermistor is 100 kΩ at 25 °C and 11.4 kΩ at 77 °C. The PCB heater is 5.9 Ω at 25 °C and 7.3 Ω at 77 °C; it dissipates 77 W at 77 °C (no, that’s not a typo).

    The ultimate temperature looks to be about 90 °C with a 24 V supply, which isn’t quite enough for ABS (which I’m not using in the M2 right now, but probably will eventually). The time constant, assuming the 1-e-1 point is 66 °C, works out to about 9 minutes; it’ll be up to final temperature in half an hour. Those numbers aren’t quite as accurate as one might wish, because the heater power drops as the temperature rises and the copper resistance increases.

    A 30 V supply would dissipate 120 W at 77 °C and rumor has it that the ultimate temperature is around 125 °C, which would be fine for ABS. Goosing the power a bit would produce more heat, but I’v been running the Thing-O-Matic at 110 °C and that’s good enough. More power, of course, gets it to the temperature setpoint faster, which is probably a Very Good Thing.

    Obviously, you need PWM to control the temperature; given a 9 minute time constant, a bang-bang controller will work perfectly well.

    The original data, including the thermistor resistance after I got my act together, plus a cute little temperature-vs-time graph:

    Improved M2 HBP - 24 V supply
    Improved M2 HBP – 24 V supply

    The colored flyspecks are part of the paper; I salvaged a stack of fancy menu cards from a trash can and padded them up as geek scratch paper.

  • Baofeng UV-5RE: BL-5 Battery Overview

    After I mentioned I was thinking of repurposing the nearly unused lithium-ion batteries from the Wouxun KG-UV3D radios for a blinky light, Dragorn of Kismet introduced me to his Baofeng UV-5 radio. The radio itself seems to be the worst amateur radio you’d be willing to use, but when seen as a standardized battery and drop-in charger with a free radio and antenna tossed into the deal, it’s not all that bad:

    Baofeng UV-5RE radio - overview
    Baofeng UV-5RE radio – overview

    The Wouxun and Baofeng 7.4 V batteries allegedly have similar capacities: 1700 vs 1800 mA·h. The Baofeng also has a 3800 (or 3600) mA·h pack that extends well below the base of the radio (not all large packs seem to be compatible with the UV-5RE radios I got); that would be roughly equivalent to the larger packs that power the Wouxun / APRS / voice gadgetry on the bike.

    The Baofeng battery pack is smaller and has features that seem less likely to misbehave on a bike.

    It has a latching tab with a ramp and a positive notch, with ridges around the edge that engage the radio shell:

    Baofeng UV-5RE radio - battery latch tab
    Baofeng UV-5RE radio – battery latch tab

    The radio body (which is what I must duplicate) has a movable latch tab above the battery contact pins, so the latch holds the battery into the compartment. The spring-loaded pin pairs are wired in parallel, presumably for redundant contact with each battery terminal:

    Baofeng UV-5RE radio - battery compartment latch and contacts
    Baofeng UV-5RE radio – battery compartment latch and contacts

    The battery terminal pads are reasonably well protected by the tab:

    Baofeng UV-5RE radio - battery contact pads
    Baofeng UV-5RE radio – battery contact pads

    The battery slides into the radio compartment and latches with a snap. Two holes on the battery base engage a pair of pegs on the radio case:

    Baofeng UV-5RE radio - battery base detail
    Baofeng UV-5RE radio – battery base detail

    The holes are rounded rectangles and the pegs have one corner sliced off. The pegs seem entirely too fragile and not well suited for 3D printing, so some metalwork may be in order. The pegs must resist only pulling forces perpendicular to the case back, not sliding forces, and the case constrains side-to-side motion.

    The two square posts (with two others not shown) form the “feet” that support the radio when it’s standing on the desk or in the charger.

    Now, to doodle up the dimensions and measure the actual capacity.

    Speaking of capacity, BL-5 batteries on eBay range from $23 for “genuine Baofeng” that may or may not actually have that name on the label, all the way down to $8 for the usual no-name equivalent.

  • Monthly Science: Basement Safe Silica Gel Equilibria

    A month ago I tossed a new bag of silica gel into the basement safe and put the used one on the workbench to see how much more water it would adsorb. The numbers worked out like this:

    • Bag + staples: about 8 g
    • Dry weight: 500 g of silica gel beads
    • At 24%RH: 575 g = +67 g water
    • At basement ambient, about 50%RH: 652 g = +144 g water
    • At upstairs ambient, about 65%RH: 673 g = +165 g water

    Referring to the Sorbent Systems charts

    At 50%RH, the capacity is about 27% = 135 g of water, which is close to the measured 144 g. The logger recording groundwater temperature says the average humidity hovers just under 55%RH, in which case 28% capacity = 140 g of water: as close as you could possibly hope for.

    At 65%RH, the capacity is about 32% = 160 g of water, which is very close to the measured 165 g.

    The safe humidity remains flatlined at the logger’s 15%RH minimum level, with one blip when I installed the door gasket strips:

    Basement_Safe - 2013-08-28
    Basement_Safe – 2013-08-28

    After I accumulate a few more used bags, we’ll see how well they regenerate.