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: Electronics Workbench

Electrical & Electronic gadgets

  • Cutting Thin Rings: Homebrew Punches

    The Totally Featureless Clock is back for a refit: its preferred location turned out to have essentially no RF at all, so I must move the antenna out of the clock case on the end of a cable.

    Drat!

    I put the ferrite bar inside a length of PVC pipe, turned down to make it less ugly, with white plastic end plugs. Rather than fiddle around with complex mountings, I cushioned the fragile bar in closed-cell foam, which meant I needed some way to cut a bunch of foam rings.

    Some rummaging produced a thinwall brass tube with about the same ID as the PVC pipe. A brief trip to the lathe put a reasonably sharp edge on one end.

    Sharpening the brass tube
    Sharpening the brass tube

    That edge is more keen than it looks; while it’s not razor-sharp, it’s plenty good enough. I didn’t use it as a punch, just grabbed it in a rag to cushion my palm and rotated it through the foam against a plywood scrap.

    That produced a bunch of foam cookies.

    Foam cutouts
    Foam cutouts

    The bar diameter was close enough to a standard hole punch that I didn’t have to make one. Centering by eye and rotating by hand turned the cookies into donuts.

    Punched holes
    Punched holes

    And then they fit just fine…

    Cushioned ferrite bar antenna
    Cushioned ferrite bar antenna

    I made more donuts to swaddle the bar from end to end inside the PVC tube. I slipped the antenna in from the left, then pushed the donuts over the bar with Yet Another Brass Tube. The end result is an antenna compression-packed in foam, which ought to keep it in good condition through at least a minor oops.

    Finished antenna housing
    Finished antenna housing

    The screws pass through the end plugs to hold them against the pressure from the foam cookies at the bar ends. The holes are slightly counterbored on the top to blend the screw heads into the curve of the tube. There’s a 3/8-inch flat along the bottom that will eventually settle against the underside of a shelf.

  • Capsaspitators

    I had our daughter solder up some circuit boards for me (as part of a clever scheme to get her trained up on circuitry) and we were discussing the projects. I used the term capsaspitator and she gave me a blank look … as well she might, because even Google doesn’t know what they are.

    A long time ago, back on the IBM Video Disc project, Mad Phil and HH were chasing the gremlins out of a particularly tricky bit of RF-oid analog / digital circuitry. This task required a prodigious quantity of bypass caps and, at some point, Mad Phil announced that he’d had it up to there with those [obscene gerund] capsaspitators!

    The term immediately caught on and I use it to this day in reference to any particularly obscure capacitor, particularly  bypass caps that seem useless and are actually vital.

    It’s pronounced caps-ASS-pi-tator, of course, and now everybody can find it on The Web…

  • PTT Switch Contact Corrosion

    Corroded Pushbutton Switch Contacts
    Corroded Pushbutton Switch Contacts

    The PTT switch for the amateur radio on my bike got erratic: pushing the button didn’t seem to be producing reliable RF. I’d have sworn when I bought the switches that they were washable-during-PCB-assembly: at least moderately sealed.

    Wrong.

    Turns out there’s only the seal you get from snug-fitting mechanical parts. I carved off the square aluminum bezel and found an ordinary dome switch underneath, with contacts that actually looked better than you’d expect after half a decade on a bike. But, yes, I could see why it was erratic.

    Lacking anything smarter, I installed another one, just like the other one, with a square of Kapton tape over the button. Not a great seal, but maybe it’ll be Good Enough.

    Here’s what the button looked like in happier times…

    PTT Button
    PTT Button

    Memo to Self: Tape up the other PTT buttons?

  • DC Motor Speed Control

    Got a question by email, which I discourage, because then nobody else can chime in to add details or correct errors.

    Here’s the transcript:

    Hi,

    I want to control a brushed DC motor (speed and direction) with a PWM driver (L298) controlled by a microcontroller (Arduino), with the following requirements:
    – Motor voltage range: 6 – 12 V dc.
    – Forward / Reverse
    – Power Supply : 12 v battery (No regulator (12 → 6 V)
    – The motor must perform as being supplied at 6 V dc.

    It means to me that the motor should be supplied at 6 V with some kind of PWM magic. I was told that it can be accomplished but not how to do it.

    Yes I can set 50% Duty Cicle (PWM), then I have 6 V in the motor, but it means constant speed (or I just misunderstood PWM) so I cannot increase/decrease speed.

    I have 0 – 127 (0 – 50%) control speed but below motor specs (6 – 12 V) son motor stops.
    And above (127 – 255) I have control too but in the 6 – 12 V range so above 6 V.

    I have searched forums and Google, but I can´t find the way to do it. It´s likely an odd question but I am simply lost.

    Any clue?

    And my reply, which may seem curt, but remember that I really can’t do design work by email…

    > then I have 6 V in the motor,
    > but it means constant speed
    > (or I just misunderstood PWM)
    > so I cannot increase/decrease speed.

    PWM allows you to supply a DC voltage equivalent to

    (PWM duty cycle) x (DC input voltage)

    You can change the speed of the DC motor by changing the PWM duty cycle, thus increasing or decreasing the voltage applied to the motor. But that’s the limit of your control.

    > below motor specs (6 – 12 V) son motor stops.

    That, unfortunately, is the nature of DC motors. Their torque depends strongly on the input voltage and below the rated input, the torque drops off sharply.

    This introduction may help. I found it by searching on

    “dc motor” torque pwm

    and you will find other references using similar searches.

    http://homepages.which.net/~paul.hills/SpeedControl/SpeedControllersBody.html

    Good hunting!

  • Remembering Which Cells Need Charging

    My Sony DSC-H5 eats NiMH cells like candy, which means I must haul along a pocketful of the things. That means I often wind up with a case containing one charged pair and one uncharged pair.

    Ditto for swapping cells in the blinky lights on our bikes.

    Pop quiz: which pair is which?

    Battery Charge State Reminder
    Battery Charge State Reminder

    It’s pretty easy:

    • Nose-to-tail = as in the camera = charge ’em
    • Nose-to-nose = as in the charger = ready to use

    You could do some remote psychoanalysis based on that sort of behavior, but you’d be completely right.

  • HT GPS + Audio: Battery Pack Contacts the CNC Way

    Flattening the screw head
    Flattening the screw head

    Faced with the daunting prospect of converting half a dozen 4-40 brass screws into battery contacts by hand filing, I did what I should have done in the first place: turn it into a CNC project.

    It’s quick-n-easy:

    • mill the head flat and 0.5 mm thick
    • shave off the sides

    I grabbed the screw in the Sherline vise, touched off XY on the head (close enough to being concentric for this purpose), and touched off Z on the nut supporting the screw. For the next few, I’ll eyeball the Z touchoff at the bottom of the head, rather than the nut, because the heads don’t quite sit flush on the nut.

    They dropped right into place, without any filing or fiddling! Well, the second one did. I had to tweak the dimensions slightly to make the answer come out right. But that’s one of the advantage of hammering out simple G-Code like this: change two lines and wham you’re done.

    Contacts in place
    Contacts in place

    The heads show some tool marks, but that’ll just make the silver solder stick better. Right?

    Herewith, the G-Code…

    (ICOM IC-Z1A battery pack shell)
    (Battery pack contacts)
    (Ed Nisley - KE4ZNU - June 2010)
    (Vise clamping on threads, XY orgin on central axis, Z=0 at *bottom* of screw head)
    (Tool table used just for Axis previews and to activate "manual" changer via M6)
    (Tool change @ G30 position above length probe)
    
    (-- Global dimensions & locations)
    
    #<_Traverse_Z> =        5.0
    #<_Cutting_Z> =            0.0
    
    (-- Get started ...)
    
    G40 G49 G54 G80 G90 G92.1 G94 G97 G98        (reset many things)
    
    M5
    (msg,Verify XY=0 on screw axis)
    M0
    
    (msg,Verify tool touched off at Z=0 on *bottom* of head)
    M0
    
    (debug,Verify vise clearance around head)
    M0
    
    #<Contact_Width> =        4.1            (X axis metallic contact - minus a smidge)
    #<Contact_Head_Dia> =    5.5            (recess for 4-40 head)
    #<Contact_Head_Radius> = [#<Contact_Head_Dia> / 2]
    
    #<Contact_Head_Depth> =    0.7            (recess depth - plus  smidge)
    
    #<Mill_Dia> =            1.98            (end mill diameter)
    #<Tool_Num> =            20
    #<Mill_Radius> =        [#<Mill_Dia> / 2]
    #<Mill_RPM> =            5000
    #<Mill_Feed> =             50
    
    (debug,Verify #<Mill_Dia> mm end mill)
    M0
    
    (debug,Set spindle to #<Mill_RPM>)
    M0
    
    F#<Mill_Feed>
    
    (--- Flatten the head)
    
    G0 Z#<_Traverse_Z>
    
    #<X_Step> = [0.5 * #<Mill_Dia>]
    #<X_Limit> = [3 * #<Mill_Radius>]
    #<Y_Limit> = [#<Contact_Head_Radius> + #<Mill_Radius>]
    
    #<X_Coord> = [0 - #<X_Limit>]
    
    G0 X#<X_Coord> Y[0 - #<Y_Limit>]
    G0 Z#<Contact_Head_Depth>
    
    O<Head_Trim> DO
    
    G1 Y#<Y_Limit>
    #<X_Coord> = [#<X_Coord> + #<X_Step>]
    G1 X#<X_Coord>
    G1 Y[0 - #<Y_Limit>]
    #<X_Coord> = [#<X_Coord> + #<X_Step>]
    G1 X#<X_Coord>
    
    O<Head_Trim> WHILE [#<X_Coord> LT [3 * #<Mill_Radius>]]
    
    G0 Z#<_Traverse_Z>
    
    (--- Trim the sides)
    
    #<Arc_Radius> = [#<Contact_Head_Radius>]
    #<Half_Width> = [#<Contact_Width> / 2]
    #<Angle> = ACOS [#<Half_Width> / #<Arc_Radius>]
    #<Half_Height> = [#<Arc_Radius> * SIN [#<Angle>]]
    
    G0 Z#<_Traverse_Z>
    
    G0 X[0 - #<Half_Width>] Y[0 - #<Contact_Head_Radius> - 3 * #<Mill_Dia>]
    G0 Z#<_Cutting_Z>
    
    G41.1 D#<Mill_Dia>
    G1 X[0 - #<Half_Width>] Y[0 - #<Half_Height>]
    
    G1 Y#<Half_Height>
    G2 X#<Half_Width> I[#<Half_Width>] J[-#<Half_Height>]
    G1 Y[0 - #<Half_Height>]
    G2 X[0 - #<Half_Width>] I[-#<Half_Width>] J[#<Half_Height>]
    G1 Y#<Half_Height>
    
    G0 Z#<_Traverse_Z>
    
    G40
    
    G30                    (back to tool change position)
    
    (msg,Done!)
    M2
    
  • HT GPS + Audio: Case Dimensions

    Having obtained eyeballometric measurements from the case, the next step was to doodle some shapes on graph paper and pencil in the dimensions. My motivation for not using CAD is simple: it’s easier (for me, at least) to doodle using a pencil.

    The outside of the case had pretty much the same features.

    Pack Layout - External
    Pack Layout – External

    The inside, of course, bore no resemblance to the battery pack; the shoulder and whatnot will support the circuit board.

    Pack Layout - Internal
    Pack Layout – Internal

    The original battle plan was to build the case in at least two layers, simply because it had to be so deep the Sherline couldn’t reach to the bottom with any rational end mill. It would probably make more sense to glue up four sides on a machined bottom, but that requires actual skill.

    This became the Front layer, with Front and Rear faces. The Rear layer attaches to the back of this one. In this picture, the Front layer is on the bottom, taped to the radio.

    ICOM IC-Z1A with GPS+Audio Interface
    ICOM IC-Z1A with GPS+Audio Interface

    The two layers peeled apart, with the Front layer to the right. You can barely see the internal shoulder and external tabs.

    Interface - top and bottom surfaces
    Interface – top and bottom surfaces