Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
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.
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.
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
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
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.
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
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.
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
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
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
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”.
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.