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

  • Arduino vs. ATMega168 Chip Pinouts

    The Arduino pin names are silkscreened right on the board, but sometimes you must know the corresponding ATMega168 pin name. I printed out The Fine Manual and penciled in the Arduino names, but that’s getting smudgy.

    Herewith, the ATmega168 pinout with neatly printed Arduino pin names.

    Arduino vs ATMega168 chip pinouts
    Arduino vs ATMega168 chip pinouts

    [Update:Turns out there’s an Official Version.]

    Sometimes, you also must know the relation between hardware Timers and PWM output pins:

    OC0A PWM6 PWM3 OC2B
    OC0B PWM5 PWM5 OC0B
    OC1A PWM9 PWM6 OC0A
    OC1B PWM10 PWM9 OC1A
    OC2A PWM11 PWM10 OC1B
    OC2B PWM3 PWM11 OC2A
  • Seiko Epson RTC-65271 Real Time Clock Datasheet

    RTC-65271 Module
    RTC-65271 Module

    I have a stash of RTC65271 real-time clock modules and might use one in an upcoming project. They’re obsolete by nigh onto two decades, but it’s a one-off project and I know I’ve been saving these things for some good reason.

    Alas, the datasheet doesn’t seem to appear anywhere else on the web; you can find an overview & general description, but not how the thing actually works.

    However, if you happen to have a chip and need the datasheet, this is indeed your lucky day: a scanned RTC65271 Datasheet.

    The datasheet alleges it’s “functionally compatible with MC146818A and DS1287“, and those datasheets may be more readable, if not exactly applicable. It seems to be (similar to) the clock chip used in the original PC/AT, if you recall those relics, and might actually use standard hardware & software protocols.

    Dealing with this thing may be more trouble than it’s worth in this day of bus-less microcontrollers with Serial Peripheral Interface widgetry. A back-of-the-envelope count says it’d require three ‘595 output chips and a ‘166 input chip to fit on an SPI bus. Yuch…

    Hey, if you want one, drop me a note. I have far more than a lifetime supply at my current rate of consumption.

  • Adding a Device to LTSpiceIV

    Searching around for an LM386 SPICE model turned up this useful thread.

    The model has some limitations, discussed there, but seems practical. So far, the main gotcha is that the output voltage doesn’t center neatly at Vcc/2, but that’s in the nature of fine tuning.

    The trick is getting the model & symbol into Linear Technology’s LTSpiceIV

    Running under WINE in Xubuntu, the emulated C drive is in your home directory at

    .wine/drive_c/

    with the Linear Tech LTSpiceIV files tucked inside that at

    .wine/drive_c/Program\ Files/LTC/LTspiceIV/

    Incidentally, WINE puts the program icon in

    .local/share/icons/05f1_scad3.0.xpm

    It’s not clear what the prefix means, but the actual executable is scad3.exe (I think that’s historical cruft, as the new overall name is LTSpiceIV).

    Copy the LM386.sub file to lib/sub and the LM386.asy file to lib/sym, then restart LTSpiceIV.

    After putting the symbol in the schematic, I had to edit its attributes (other-click the symbol), make both InstName & Value visible to see them on the schematic, then move them to somewhere other than dead-center in the symbol. I can’t figure out how to make that happen automagically, as it does with other symbols. Comparing the two files to ordinary components doesn’t show anything obviously missing.

    Link rot being what it is, here’s the LM386.sub file:

    * lm386 subcircuit model follows:
    
    ************************************original* IC pins:     2   3   7   1   8   5   6   4
    * IC pins:     1   2   3   4   5   6   7   8
    *              |   |   |   |   |   |   |   |
    .subckt lm386 g1  inn inp gnd out  vs byp g8
    ************************************original*.subckt lm386 inn inp byp  g1  g8 out  vs gnd
    
    * input emitter-follower buffers:
    
    q1 gnd inn 10011 ddpnp
    r1 inn gnd 50k
    q2 gnd inp 10012 ddpnp
    r2 inp gnd 50k
    
    * differential input stage, gain-setting
    * resistors, and internal feedback resistor:
    
    q3 10013 10011 10008 ddpnp
    q4 10014 10012 g1 ddpnp
    r3 vs byp 15k
    r4 byp 10008 15k
    r5 10008 g8 150
    r6 g8 g1 1.35k
    r7 g1 out 15k
    
    * input stage current mirror:
    
    q5 10013 10013 gnd ddnpn
    q6 10014 10013 gnd ddnpn
    
    * voltage gain stage & rolloff cap:
    
    q7 10017 10014 gnd ddnpn
    c1 10014 10017 15pf
    
    * current mirror source for gain stage:
    
    i1 10002 vs dc 5m
    q8 10004 10002 vs ddpnp
    q9 10002 10002 vs ddpnp
    
    * Sziklai-connected push-pull output stage:
    
    q10 10018 10017 out ddpnp
    q11 10004 10004 10009 ddnpn 100
    q12 10009 10009 10017 ddnpn 100
    q13 vs 10004 out ddnpn 100
    q14 out 10018 gnd ddnpn 100
    
    * generic transistor models generated
    * with MicroSim's PARTs utility, using
    * default parameters except Bf:
    
    .model ddnpn NPN(Is=10f Xti=3 Eg=1.11 Vaf=100
    + Bf=400 Ise=0 Ne=1.5 Ikf=0 Nk=.5 Xtb=1.5 Var=100
    + Br=1 Isc=0 Nc=2 Ikr=0 Rc=0 Cjc=2p Mjc=.3333
    + Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n
    + Tf=1n Itf=1 Xtf=0 Vtf=10)
    
    .model ddpnp PNP(Is=10f Xti=3 Eg=1.11 Vaf=100
    + Bf=200 Ise=0 Ne=1.5 Ikf=0 Nk=.5 Xtb=1.5 Var=100
    + Br=1 Isc=0 Nc=2 Ikr=0 Rc=0 Cjc=2p Mjc=.3333
    + Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n
    + Tf=1n Itf=1 Xtf=0 Vtf=10)
    
    .ends
    *----------end of subcircuit model-----------

    And the corresponding LM386.asy file:

    Version 4
    SymbolType CELL
    LINE Normal -64 -63 64 0
    LINE Normal -64 65 64 0
    LINE Normal -64 -63 -64 65
    LINE Normal -60 -48 -52 -48
    LINE Normal -60 48 -52 48
    LINE Normal -56 52 -56 44
    LINE Normal -48 -80 -48 -55
    LINE Normal -48 80 -48 57
    LINE Normal -44 -68 -36 -68
    LINE Normal -40 -72 -40 -64
    LINE Normal -44 68 -36 68
    LINE Normal -16 -39 -16 -64
    LINE Normal 0 32 0 48
    LINE Normal 48 -8 48 -32
    SYMATTR Value LM386
    SYMATTR Prefix X
    SYMATTR ModelFile LM386.sub
    SYMATTR Value2 LM386
    SYMATTR Description Low power audio amplifier
    PIN -16 -64 LEFT 8
    PINATTR PinName g1
    PINATTR SpiceOrder 1
    PIN -64 -48 NONE 0
    PINATTR PinName In-
    PINATTR SpiceOrder 2
    PIN -64 48 NONE 0
    PINATTR PinName In+
    PINATTR SpiceOrder 3
    PIN -48 80 NONE 0
    PINATTR PinName V-
    PINATTR SpiceOrder 4
    PIN 64 0 NONE 0
    PINATTR PinName OUT
    PINATTR SpiceOrder 5
    PIN -48 -80 NONE 0
    PINATTR PinName V+
    PINATTR SpiceOrder 6
    PIN 0 48 LEFT 8
    PINATTR PinName bp
    PINATTR SpiceOrder 7
    PIN 48 -32 LEFT 8
    PINATTR PinName g8
    PINATTR SpiceOrder 8

    Props to Roff, who actually created those files…

  • Anderson Powerpoles: Stress Relief

    This is quick & easy. When you’re making a Powerpole connector, shrink a length of small heatshrink tubing over the end of the terminal after crimping.

    Heatshrink tubing stress relief for Anderson Powerpole terminals
    Heatshrink tubing stress relief for Anderson Powerpole terminals

    You can’t cover the entire crimped region, lest the terminal not snap into the housing, but halfway seems to work fine.

    The goal is to keep the wires from flexing right at the end of the terminal, which is exactly where they’ll break.

    I’ve also wrapped a length of self-vulcanizing rubber tape around the entire connector housing and the wire, which is appropriate for high-stress applications. Looks hideous, though, not that that matters much.

  • Bike Lighting: Automotive Specs

    Having recently taken a thorough drubbing on the ‘Bentrider forums for having a rear-facing white light on my bike, I should accelerate my plans for a red / amber taillight.

    This Philips LumiLED app note gives some specs on automotive lighting. The one we bikies all tend to ignore is the surface area: greater than 37.5 square centimeters for rear combination stop-turn fixtures. Call it a scant 4 inches in diameter. You’ve never seen a bike light that large, have you?

    LED combo tail stop light
    LED combo tail stop light

    Maybe the right thing to do is start with a street-legal truck light and build some electronics around it. This is a 4 inch diameter, 44 LED rear light with both taillight and brake light terminals. At 12 V, the taillight draws 10 mA and the brake light is 250 mA. Got it from Gemplers with a recent order, but they’re certainly not the optimum supplier if that’s all you’re buying.

    Obviously, it’s unreasonable to run a 3 watt taillight on a bike, as the most recent crop of single-LED killer headlights are merely a watt or three. Battery life remains a problem.

    At 10% duty cycle the brake LEDs would average 300 mW. That might be roughly comparable to the running lights on some cars these days.

    With the taillight constantly energized and the brake flashing at 4 Hz, it’d be 120 + 0.5 * 300 = 270 mW.

    That’s more reasonable. With a 50% efficient upconverter to 12 V, that’s half a watt. Start with 4 AA cells, triple the voltage, draw 100 mA, runtime is 1500 / 100 = 15 hours. Good enough.

    And it ought to be attention-getting enough for anybody! The only trouble will be fitting the damn thing on the back of the bike; fortunately, ‘bents have plenty of room behind the seat, so maybe attaching it below the top seat rail will work.

    Memo to Self: The rear reflector must be something like 3 inches in diameter, too. We ignore that spec, too.

  • Battery Charger Thermistor: Magnetic Attachment Thereof

    Magnet and thermistor position
    Magnet and thermistor position

    A new fast NiMH pack charger that uses a thermistor to detect the abrupt temperature rise at full charge just arrived on my Electronics Workbench. The instructions say to tape (“Use rubberized fabric …”) the thermistor to a cell in the middle of the pack, a process which loses its charm fairly quickly.

    The intent is to have the thermistor bead in intimate thermal contact with the cell, but air is a rather crappy thermal conductor. We can do better than that.

    Sooo, off to the Basement Laboratory Adhesives Division we go…

    NiMH cells have a steel shell, so holding the sensor in place with a magnet makes at least some sense. I used a pair of teeny rare-earth magnets (Electronic Goldmine G16913) bridged by a snippet of steel strap. One magnet points up, the other points down, the strap provides a magnetic path, and the whole assembly sticks to the cell like glue.

    First epoxy setup
    First epoxy setup

    I trimmed the heatshrink tubing surrounding the thermistor back a bit, then applied enough epoxy to secure the magnets to the strap and smooth out the edges, leaving the thermistor sticking out in mid-air.

    Although it looks risky, the epoxy doesn’t bond well to the (sacrificial, dead) cell. Doing it this way produces a nearly perfect AA-cell-shaped contour in the epoxy on the bottom of the magnets.

    It’s JB-Kwik fast-curing epoxy, not quite so runny as its slower-setting and much stronger JB-Weld relative.

    Epoxy covering thermistor
    Epoxy covering thermistor

    After the epoxy cured, I bent the thermistor down to contact the cell and dabbed epoxy over the bead. This puts the thermistor in good thermal contact with the cell. Epoxy isn’t a great thermal conductor, but it’s a lot better than air.

    The alert reader will note that I wrapped a layer of masking tape around the cell for this operation. I wasn’t convinced I could pop the epoxy off the cell without cracking the thermistor leads, but that turned out not to be a problem.

    Trimming the edges of the epoxy around the bead gave it a certain geeky charm.

    And it works like a champ: get the assembly close to a cell and it snaps right in place. I align the thermistor more-or-less in the middle of the cell, although I suspect the temperature gradient from the middle to either end isn’t all that large.

    Magnetically attached thermal sensor
    Magnetically attached thermal sensor

    Now, one could argue that this lump increases the thermal mass surrounding the thermistor, thus slowing the charger’s reaction time. That might be true, but the pack’s end-of-charge temperature rise seems considerably subdued now; the charger used to cook the living piss right out of the cells (with the thermistor taped down): I couldn’t hold them in my hand, so they were well over 150 °F.

    Now they become just uncomfortably warm, which says they’re closer to 130 °F.

    The charger’s single page instructions (two pages if you count the sheet illustrating the rubberized fabric taping thing) cautions “Stop charging when [the cell’s surface temperature] is over 70C or it feels very hot”.

    Indeed!

  • Forgotten Alkaline D-cell: Corrosion!

    Alkaline D-cell corrosion
    Alkaline D-cell corrosion

    Found this toxic spill while I was looking for a gadget on another shelf: it seems I left an alkaline D cell standing on my electronics parts & tools carousel for much too long.

    Amazingly, although the cell’s leakage blistered the paint pretty badly, it didn’t affect the steel carousel!

    I wiped most of the crud and dead paint off, then applied white vinegar (which is essentially dilute acetic acid) to neutralize the cell’s potassium hydroxide. The grabber tool sticking  out from between the boxes had a pretty good dose of corrosion up the side, but soaking it in vinegar (wow, the bubbles!) removed that and a shot of penetrating oil expelled the rinse water.

    It’s definitely not Duracell’s fault: the cell had a best-used-by date in 1997.

    Memo to Self: throw ’em out!