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

  • NP-FS11 Batteries: Final Capacity

    Having rebuilt the rebuilt packs, the dead cells (with arbitrary IDs) look like this:

    NP-FS11 - Old Packs
    NP-FS11 – Old Packs

    These are the bare cells, without the protection circuit in series, so the voltage is a bit higher than the camera will see. One is completely dead and two of them appear to have about 1 A·h of capacity, but the discharge voltage evidently drops below what the camera considers acceptable.

    They’d work fine driving a less fussy load, though…

  • EAGLE 6.x Invalid Device Names: Repair Thereof

    It seems that a much older version of Eagle allowed device names along the lines of ELECTRET MIC that contained blanks and worked perfectly at the time. Since then, the rules changed to prohibit blanks, but the EAGLE 5.x series evidently allowed those names to exist as long as they weren’t used in the schematic or touched in the library editor. In 6.x, however, you can’t even load the library without triggering an error message.

    Because 6.x won’t load the library, you can’t use the library editor to remove the blank.

    Because the most recent version of 5.x kvetches about the blank, you can’t use the library editor to remove the blank.

    Having only two offending device names, I figured I could use a hex editor to jam a hyphen in place of the blanks and be done with it. Come to find out that EAGLE (wisely) wraps a checksum around the binary library file to detect such changes and prevent the files from loading. I think that’s an excellent idea, even if it was inconvenient in this situation.

    Fortunately, 6.x both complains about the problem and offers up a “text editor” window with the complete XML source code for the library that it converted from the 5.x binary format.

    So:

    • Copy-and-paste the text into an editor that supports highlighted XML editing
    • Find the offending device names
    • Change the blanks to hyphens
    • Rename the original custom.lbr to custom.lbr.bin
    • Save the modified XML as custom.lbr

    Done!

  • Capacitor Self-resonance Calculator

    A Circuit Cellar reader recommended the KEMET Spice calculator that lets you explore the Z / ESR / capacitance / inductance of their various capacitors:

    KEMET Spice Simulation - 100 nF C0G SMD
    KEMET Spice Simulation – 100 nF C0G SMD

    As nearly as I can tell, my measurements on all those random capacitors fell into the right general neighborhood…

  • Thermistor Linearization

    Faced with the need to measure heatsink temperature in an Arduino project and being unwilling to putz around with a MAX6675 thermocouple amp, I found a bag of thermistors in the heap. Unlike most surplus, the bag pedigreed them as Semitec 103CT-4, which led to some relevant parameters:

    • T0 = 25 °C
    • R0 = 10 kΩ
    • B = 3270 K

    The equation for a thermistor’s resistance at a given temperature (in K, not °C) is:

    R = R0 * e(B/T - B/T0)

    The canonical Arduino thermistor circuit uses a series resistor with a value equal to R0:

    Thermistor Linearization - Rseries
    Thermistor Linearization – Rseries

    Setting Rseries = 10 KΩ and applying a bit of spreadsheet-fu produces this:

    Thermistor Linearization - Rseries - Graph
    Thermistor Linearization – Rseries – Graph

    Getting within +2 °C /-1 °C over -20 °C to 60 °C isn’t all that bad, but … I wondered whether there might be an easy way to get better linearization. The heatsink temperature will range from about -10 °C to 60 °C (yes, there will be a Peltier cooler involved), so the range is a bit broader than usual.

    A bit of diligent rummaging turned up that description, which led to US Patent 3,316,765 from back in 1967, which teaches the concept of two different thermistors, one for low temperatures and one for high temperatures, with some resistive blending:

    Patent 3316765 Fig 3
    Patent 3316765 Fig 3

    The patent includes the claim of many different thermistors, each with a series resistor, to cover a much broader temperature range.

    Given a bag of identical thermistors, I wondered what might be possible. A bit more spreadsheet-fu produced this:

    Thermistor Linearization - Dual Thermistors - Graph
    Thermistor Linearization – Dual Thermistors – Graph

    Which corresponds to this sketch, with Rseries = 6.2 kΩ, R1 = 27 kΩ, and R2 = 0.0:

    Thermistor Linearization - Dual Thermistors
    Thermistor Linearization – Dual Thermistors

    All in all, a nicely centered ±1 °C error from -15 °C to +60 °C can’t be beat. The output voltage even spans 0.13 to 0.71 of Vcc, about 9 of the available 10 ADC bits.

    Those two resistors came from hand-tweaking with standard values, so it’s not like there’s a genetic algorithm involved. The value of Rseries wants to be a bit below the parallel combination of the two branches near 30 °C and R1 seems happiest around the 0 °C thermistor resistance. I vaguely thought about using a multivariable solver, but what’s the point?

    The result seems good enough that I didn’t try three thermistors. T2, the one with R2=0, already handles the high temperature range and the low end is fine, so it seems there’s not much to be gained. If you had a stash of different thermistors and knew their characteristics, then the results would be different.

    Admittedly, one could program the actual logarithmic equation to unbend a single thermistor’s voltage into temperature, but I must kludge up a thermistor mount anyway, so why not entomb two thermistors and an SMD resistor, then use a linear fit? It’s not like fancy math will give the whole lashup any greater accuracy.

    The spreadsheet may be of interest. It started out as an OpenOffice spreadsheet, but WordPress doesn’t permit *.ods files, soooo it’s in MS Excel format.

  • Power Supply Banana Jack Misfit

    After butchering that fancy Tektronix test lead thing for the SMD tweezers, I hung the bitter end in my cable tangle. Turns out I needed a power cord to bring up the brassboard of the Wouxun GPS interface, so I soldered it up, went to plug it in, and … the Tek plugs didn’t fit the plated supply jacks.

    Power Supply Banana Jacks
    Power Supply Banana Jacks

    Now, if I had to choose whether Tek plugs are oversized or Made In China jacks are undersized, well, you can probably guess my answer.

    Turns out that the jacks should be 4 mm ID, which is actually a 5/32 hard-inch size because banana jacks date back to the days before millimeters became a force to be reckoned with. They were actually 3.8 mm ID, which wouldn’t usually matter except for the fact that the Tek plugs have a nice solid bullet end that’s just about exactly 4 mm OD.

    So I chucked up a 5/32 inch drill, perched the power supply on a block of wood (to clear the fuse & cord in on the back panel) on the drill press table, and hand-held it while clearing out the holes with a low spindle speed. You can see the nice, shiny brass inside those jacks in the photo; they used to have lumpy silvery plating inside that was probably responsible for much of the 0.2 mm shrinkage.

    The jacks also don’t have the usual crosswise hole near the base to accept a bare wire, which is an occasional nuisance. I was tempted to drill that hole, but decided I’ll leave that project for another time.

  • 1 mH Choke on FT50A-77 Toroid

    While doodling about a bike taillight, I figured out the numbers for a 1 mH toroid on a ferrite FT50A-77 core. Even though I’m not going to use it, I may as well write it down so I remember what to do the next time around…

    FT50A-77 Toroid data:

    • 0.5 OD x 0.312 ID x 0.25 long, inch
    • Mean path length: MPL = 3.68 cm
    • Cross section: XC = 0.52 cm2
    • Volume: V = 0.558 cm3
    • AL = 1080 mH/1000 turn
    • μ = 2000 (in gauss/oerstead, most likely)
    • Saturation = 4500 gauss
    • Tempco = 0.6%/°C
    • Winding length = 0.688 inch/turn

    Those mixed units barely make sense and then only in the USA; using cm for the magnetic dimensions gives CGS results. In some parallel universe, this would not be an issue.

    The inductor:

    • For 1 mH, turns = 1000 √(1 mH / (1080 mH/1000 turns)) = 30.4 turn
    • Wire length = 31 turn × 0.668 inch/turn + 3 inch = 24 inch

    Core saturation check for 100 mA:

    • 100 mA x 30 turn = 3 ampere·turn
    • Magnetomotive force = mmf = 0.4 π × 3 A·t = 3.8 gilbert
    • Magnetizing force = H = mmf/MPL = 3.8 Gi / 3.68 cm = 1.0 oerstead
    • Flux density = B = μ H = 2000 G/Oe × 1.0 Oe = 2000 G < 4500 G, so OK

    I think the saturation check works, but the units always make my head hurt…

  • APRS Packet Routing

    This might be another personal best in a different category:

    KE4ZNU-9 APRS to KB2KUU-13 - Lafayette NJ
    KE4ZNU-9 APRS to KB2KUU-13 – Lafayette NJ

    The path from KE4ZNU-9 (on my bike in Pleasant Valley) to KB2KUU-13 near Lafayette, NJ, spans a bit over 90 km / 55 miles, which isn’t bad for a 5 W (that’s optimistic) hand-held radio through a dual-band mobile antenna bolted to the seat frame with my head much too close to the base. The topography lay in my favor, though: Pleasant Valley sits near the top of the Wappingers Creek watershed (admittedly, barely 200 feet above sea level) and the valleys run southwest-to-northeast all along this part of the East Coast. The KB2KUU-13 antenna may be only 20 feet above average terrain, but that puts it 600 feet above sea level with a commanding view to the northeast.

    Another packet sent a few minutes later took a much longer path to an APRS iGate:

    KE4ZNU-9 APRS to WA2GUG-15 - Long Island - 2012-02-01
    KE4ZNU-9 APRS to WA2GUG-15 – Long Island – 2012-02-01

    The first hop covered about 80 km / 50 miles to W2VER-15. That antenna is 320 feet above average terrain, but that’s with a 1400 foot base: a ridge near Hamburg Mountain. The next hop is about 20 miles to WB2FTZ-15, then 60 km / 40 miles across the plains and out to WA2GUG-15 near Hempstead on Long Island.

    Normally, of course, a closer digipeater snags packets from my bike; most go through WA2YSM-15 or KC2DAA-2 to K2MHV-6 and probably don’t clog up the entire eastern seaboard. It’s hard to tell, though, because the APRS database records only the first successful capture of a given packet.

    The whole bike ride looked like this:

    KE4ZNU-9 trip - 2012-02-01
    KE4ZNU-9 trip – 2012-02-01

    The APRS spots missed the sprint along West Road into Pleasant Valley, but you get the general idea: 22 miles, 15 mph average speed, temperature around 58 °F, a fine day for a ride!