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

  • 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
  • ICOM IC-Z1A and W-32A: BP-171 Battery Pack Dimensions

    Early on, I decided that the whole APRS + voice interface for our bikes had to fit on the back of the radio, which meant it had to look a lot like a BP-171 battery pack. The first step was to get all the relevant dimensions from an existing pack.

    I laid a (rebuilt) pack on the scanner and took its picture. There’s a lip on the bottom (top in the image), so I held it level with the end of the calipers you can see near the bottom. That puts it slightly above the scanner’s focal plane, but it’s close enough.

    Then I scanned some graph paper (remember that?) with 10 lines per inch, overlaid that on the pack image, rotated to line it up with the pack, scaled the grid so that the major lines were 1 cm apart on the pack in both directions, and that gave me a nice 1 mm grid to eyeball the measurements.

    Printed the image out at about twice real size and there you have it:

    Battery Pack Dimensions
    Battery Pack Dimensions

    The doodles around the bottom give the Z-axis dimensions for tabs & contact slots & suchlike.

    The notes near the top were a first pass at how to mill the thing; two years later, the actual G-Code bears little resemblance to that.

    I put the origin at the lower-left corner of the part that fits into the radio body, 2.4 mm inside the left edge that mates with the outside of the body. That was probably a mistake, as it meant I had to touch off the final part at X=-2.4 rather than just 0.0.

    We live & learn.

  • HT GPS + Audio: Battery Case Contacts

    The case for this gadget slides into the back of the ICOM IC-Z1A HT and powers the radio through its usual battery contacts. I reshaped 5/16″ 4-40 brass machine screws into flat-top studs, then soldered 8-mil tin strips to their tops.

    Grab a screw in a pin vise, brace it on the bench vise, and file off everything that doesn’t fit:

    Reshaped 4-40 screws
    Reshaped 4-40 screws

    The result should fit neatly into the flatted recess, with the top flush in the rectangular slot:

    Studs in their recesses
    Studs in their recesses

    Cut an oversized strip of 8-mil tin and solder it to the stud. I tinned both pieces to get nice solder coverage, although the notion of tinning a piece of pure tin with silver-tin solder did give me pause. It’s all in the flux, I suppose.

    Anyhow, put the two tinned sides together and hit the combo with a half-second pulse at 100% duty cycle from my resistance soldering gadget. Perfect:

    Tin strip soldered in place
    Tin strip soldered in place

    Then snip off whatever doesn’t fit into the slot with an ordinary (albeit shop-only) scissors, making it just slightly shorter than the slot so the end doesn’t snag on anything. File the sides and corners so they’re easy on the fingers, flatten the strip so it fits neatly into the slot, buff it up a bit, and it’s all good.

    Contacts in place
    Contacts in place

    Takes longer to describe than to do it, at least the second time you do it…

  • HT GPS + Audio: Modified Plug Alignment Plates

    As described there, I made a fixture and a small plate to hold 2.5 mm and 3.5 mm plugs in the proper alignment for the mic & speaker jacks on our ICOM IC-Z1A HTs. Knowing I was going to rebuild the interface boxes, I made several spare plates and tucked them into a small bag against future need.

    Jack Plates - Oblique
    Jack Plates – Oblique

    Time passes.

    Come to find out that the new gratuitously gold-plated 2.5 mm plugs in my stash have a slightly thicker front plate that doesn’t quite fit into the recess I milled in the plates for the old nickel-plated plugs. So I set up a little nest in on the Sherline’s table, snuggled each plate into the corner, and poked a 9/32-inch end mill 1 mm down into the plate. The net change was a 0.5 mm deeper recess. Sheesh.

    Milling the plug plate recess
    Milling the plug plate recess

    I’d originally create the recess with helical milling, but I recently uncovered a stash of shiny-new end mills in a box: 9/32 is 7.31 mm, just about exactly what you want for a 7-mm dia plug front plate surrounded by a blob of fast-curing epoxy.

    Plugs epoxied into plate
    Plugs epoxied into plate

    This epoxy just holds the plugs in the right position for wiring and initial testing. After the cable checks out, I’ll smoosh a blob of epoxy putty around the whole thing as before.