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

  • TLC5916 Minimum LED Current

    The TLC5916 datasheet seems to say that the minimum regulated LED current is 5 mA, but that’s painfully bright at, say, 12:08 in the early morning. Indeed, those 3-inch blue LED digits lit up the entire house from the living room… sometimes, a high-efficiency LED isn’t what you need.

    This graph from the datasheet suggests that the current can be somewhat lower:

    TLC5916 Current vs Rext
    TLC5916 Current vs Rext

    With that in mind, I replaced the 1 KΩ resistors with 3.9 KΩ parts.

    The graph says the maximum current should be around 5 mA and, indeed, the formulas indicate 4.7 mA. The minimum current is a paltry 0.4 mA: lo and behold, the early morning illumination became bearable. After I put the LEDs behind some dark-gray polycarbonate, it’ll be just about perfect.

    If it’s too dark, I can always solder another SMD resistor atop the 3.9 KΩ chips.

    I figured out how to compute Rext somewhat more easily than the datasheet would have you believe and documented the process there.

  • Tour Easy Recumbent: Amateur Radio HT Mount

    Mary sewed up a new seat cover for her Tour Easy, so I dismantled the seat and cleaned things up. This is a good opportunity to show how I mounted an amateur radio HT on the bike…

    Bottle holder on seat frame
    Bottle holder on seat frame
    Clamp mount detail
    Clamp mount detail

    The general idea is simple: a water bottle holder attached to the lower seat rail with a circumferential clamp made from a chunk of half-inch aluminum plate. An aluminum spreader adapts the wider hole spacing on the bottle holder to the teeny little clamp.

    With the bottle holder in place, I put the radio in a wedge seat pack, atop a block of closed-cell foam to more-or-less cushion some of the bumps. The wedge pack seatpost strap secures it to the bottom of the holder and the rail straps wind their way through the holder and lash around the aluminum spreader plate. It doesn’t move very much at all.

    The radio is a long-obsolete ICOM IC-Z1A, bought specifically for this purpose: it has a remote head on the end of a coily cord. That puts the power, volume, and channel buttons out where you can actually use them.

    Radio in seat wedge pack in bottle holder
    Radio in seat wedge pack in bottle holder

    The lump behind the seat looks moderately suspicious in this day & age: a black package with wires! The grossly oversized red-and-black pair in the foreground is the power coming from a 6-AA pack attached to the rack with a Velcro strap; it’s a jumper with Anderson PowerPoles on both ends. Coily cord to the HT head, BNC-to-UHF adapter to the mobile antenna mount, one skinny cord to the headset and the other to the PTT button on the handlear.

    Other pieces of the puzzle:

  • WWVB Synch Reliability

    I have the WWVB clock set to synch after receiving four consecutive valid time frames, which is pretty restrictive. The question is: can it still synch every night?

    Here’s six days with the antenna sitting 3 cm above the receiver board, in front of our living room window, aimed more-or-less broadside to Colorado. We’re in the Eastern Time Zone, which is currently UTC-5, so our midnight corresponds to UTC 0500.

    Set: 10 015 05:14:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 05:25:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 05:28:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 06:15:59.9 Loc= 1 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 07:05:59.9 Loc= 2 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 11:30:59.9 Loc= 6 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 13:41:59.9 Loc= 8 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 13:44:59.9 Loc= 8 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 15:22:59.9 Loc=10 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 015 15:29:59.9 Loc=10 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=15
    Set: 10 016 07:49:59.9 Loc= 2 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=16
    Set: 10 016 09:46:59.9 Loc= 4 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=16
    Set: 10 016 14:06:59.9 Loc= 9 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=16
    Set: 10 017 04:54:59.9 Loc=11 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 05:15:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 05:20:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 09:42:59.9 Loc= 4 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 10:04:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 10:37:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 10:42:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 10:45:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 11:38:59.9 Loc= 6 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 11:56:59.9 Loc= 6 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 017 20:44:59.9 Loc= 3 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=17
    Set: 10 018 01:26:59.9 Loc= 8 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 03:49:59.9 Loc=10 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 08:30:59.9 Loc= 3 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 09:47:59.9 Loc= 4 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 11:11:59.9 Loc= 6 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 11:34:59.9 Loc= 6 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 12:10:59.9 Loc= 7 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 12:13:59.9 Loc= 7 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 018 16:10:59.9 Loc=11 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=18
    Set: 10 019 05:52:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 05:55:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 06:59:59.9 Loc= 1 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 07:48:59.9 Loc= 2 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 08:06:59.9 Loc= 3 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 08:12:59.9 Loc= 3 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 09:08:59.9 Loc= 4 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 09:33:59.9 Loc= 4 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 10:08:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 10:32:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 12:34:59.9 Loc= 7 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 019 13:49:59.9 Loc= 8 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=19
    Set: 10 020 05:22:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 020 05:37:59.9 Loc=12 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 020 07:41:59.9 Loc= 2 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 020 09:47:59.9 Loc= 4 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 020 10:15:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 020 10:26:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 020 10:46:59.9 Loc= 5 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=20
    Set: 10 021 07:44:59.9 Loc= 2 Age=0     LY=0 LS=0 DST=0 Chg=0 UT1=1 Mon=1 DOM=21
    

    As you’d expect, WWVB synch is an overnight thing, with occasional synchs during the morning hours.

    Winter has the absolute best RF propagation, so demanding four good frames probably isn’t going to work during the summer…

  • Ceramic Resonator Frequency Compensation

    Although this isn’t a real long-term experiment, here’s a week of continuous WWVB clock operation, sitting by the window in our living room, with the circuit board open to ambient conditions.

    The firmware checks the local oscillator drift against the WWVB time signal if more than 3 hours (10800 seconds) has elapsed since the last synch, so you’re not seeing every WWVB synch event.

    Drift: TS   5281890 UTC 10015.113059 Elapsed 15900 Offset 0 Corr +0 ICR1 39841
    Drift: TS   5283109 UTC 10016.074959 Elapsed 55680 Offset 2 Corr +1 ICR1 39842
    Drift: TS   5283486 UTC 10016.140659 Elapsed 15600 Offset -1 Corr -2 ICR1 39840
    Drift: TS   5284662 UTC 10017.094259 Elapsed 15720 Offset 0 Corr +0 ICR1 39841
    Drift: TS   5285324 UTC 10017.204459 Elapsed 31680 Offset 1 Corr +1 ICR1 39842
    Drift: TS   5285606 UTC 10018.012659 Elapsed 16920 Offset 0 Corr +0 ICR1 39842
    Drift: TS   5286030 UTC 10018.083059 Elapsed 16860 Offset 0 Corr +0 ICR1 39842
    Drift: TS   5286490 UTC 10018.161059 Elapsed 14220 Offset 0 Corr +0 ICR1 39842
    Drift: TS   5287312 UTC 10019.055259 Elapsed 49320 Offset 0 Corr +0 ICR1 39842
    Drift: TS   5288722 UTC 10020.052259 Elapsed 55980 Offset 0 Corr +0 ICR1 39842
    Drift: TS   5290304 UTC 10021.074459 Elapsed 75480 Offset 0 Corr +0 ICR1 39842
    Drift: TS   5291588 UTC 10022.050859 Elapsed 77040 Offset 1 Corr +0 ICR1 39842
    

    The frequency offset is on the order of 1 in 75000 seconds: 13 parts per million or about 0.0013%.

    The last line shows that the clock went 21.4 hours between synchs while drifting less than two seconds. If the clock didn’t synch for an entire week, it’d be within 15 seconds of the correct time. That’s not wonderful for a clock, but it’s good enough for this application: the display shows just hours and minutes.

    Not bad for a cheap ceramic resonator on an Arduino Pro…

  • WWVB: 7 dB More Modulation!

    I read a whole stack of NIST doc on the WWVB transmitter & time code format last year, figuring out how to build a WWVB simulator and then the Totally Featureless Clock. The Circuit Cellar article on the simulator just appeared in print and a reader gave me a heads-up: the transmitter power now drops 17 dB during the low-power part of the PWM pulse.

    The relevant doc is there.

    How could I miss it? Well, all the doc is quite old and the change happened in 2006…

    Fairly obviously, the C-Max WWVB receiver I’m using doesn’t have the mojo to track the signal during the day, no matter how fancy the modulation. Those pulses, the low-power part of the signal, just aren’t present amid all the other noise!

    Also of interest: the WWVB transmitter has been running at half-power during the daylight hours since September 2009 while they do antenna maintenance. That’s supposed to be finished right about now, so the signal should be 3 dB better. I’ve got a nearly continuous record of the last month or so, which means a comparison will be in order after a few weeks.

    Search for WWVB to find the other posts I’ve done on this topic…

  • Monthly Aphorism: On Buying Test Equipment

    • When you’re buying test equipment, buy all the options.

    Mad Phil taught me, long ago, to buy everything available in one package, rather than try to figure out what you’ll eventually need and go through the justification process for each piece you forgot.

    That applied in a corporate setting, but it’s worth pondering even for your own gear: you’re likely to own it longer than the company producing it will offer parts.

    Or, these days, it’s more likely you’ll outlive the company…

  • WWVB Antenna: Oops!

    Ferrite inductor cores are notoriously fragile: they do not withstand much abuse at all. Given the amount of fiddling I’ve been doing with the Totally Featureless Clock, it was inevitable that I’d manage to drop the antenna…

    Broken ferrite bar antenna
    Broken ferrite bar antenna

    Gluing it back together with cyanoacrylate demonstrated that some things just never work the same. The antenna depends on a continuous flux path through the winding and even the minute gap introduced by the adhesive is enough to ruin the antenna.

    What they say about hearts and wheels is also true of ferrite bar antennas:

    “Once you bend it, you can’t mend it…”