Archive for category Amateur Radio

Rewiring a Baofeng Battery Eliminator

An aftermarket “battery eliminator” for Baofeng UV-5R radios costs under seven bucks delivered:

Baofeng Battery Eliminator - overview

Baofeng Battery Eliminator – overview

That label seemed … odd:

Baofeng Battery Eliminator - Li-ion Label

Baofeng Battery Eliminator – Li-ion Label

The OEM battery, tucked inside a case that’s for all intents and purposes identical to this one, sports an 1800 mA·h rating that I regarded as mmmm optimistic; I’d expect maybe 1000 mA·h, tops. From what I can tell, the 3800 mA·h label should go on an extended-capacity “big” battery that wraps around the bottom of the radio. Maybe the factory produced a pallet of mis-labeled small packs that they couldn’t fob off on actual customers with a straight face and couldn’t justify the labor to peel-and-stick the proper labels.

Anyhow, it’s not a battery.

The circuitry inside shows considerably more fit & finish than I expected:

Baofeng Battery Eliminator - interior

Baofeng Battery Eliminator – interior

It’s not clear how effective that heatsink could be, given that it’s trapped inside a compact plastic enclosure snugged against the radio’s metal chassis, but it’s a nice touch. Two layers of foam tape anchor the terminals at the top and hold the heatsink / LM7808-class TO-220 regulator in place.

Although I wanted the DC input to come from the side, rather than the bottom, so the radio could stand up, the pack simply isn’t thick enough to accommodate the jack in that orientation. I drilled out the existing wire hole to fit a coaxial power plug and deployed my own foam tape:

Baofeng Battery Eliminator - rewired interior

Baofeng Battery Eliminator – rewired interior

Replacing the foam tape at the top holds the bent-brass (?) terminals in more-or-less the proper orientation, with Genuine 3M / Scotch Plaid adding a festive touch. A groove in the other half of the shell captures the free ends of those terminals, so they’re not flopping around in mid-air.

The jack fits an old-school 7.5 V transformer wall wart that produces 11 V open-circuit. It’s probably still a bit too high with the UV-5R’s minimal receive-only load, but I refuse to worry.

Now KE4ZNU-10 won’t become a lithium fire in the attic stairwell…

While I had the hood up, I used Chirp to gut the radio’s stored frequencies / channels / memories and set 144.39 in Memory 0 as the only non-zero value. With a bit of luck, that will prevent it from crashing and jamming a randomly chosen frequency outside the amateur bands…



APRS iGate KE4ZNU-10: Southern Coverage

A pleasant Friday morning ride with several stops:

KE4ZNU-9 - APRS Reception - 2016-09-09

KE4ZNU-9 – APRS Reception – 2016-09-09

KE4ZNU-10 handled the spots near Red Oaks Mill, along parts of Vassar Rd that aren’t hidden by that bluff, and along Rt 376 north of the airport.

The KB2ZE-4 iGate in the upper left corner caught most of the spots; it has a much better antenna in a much better location than the piddly mobile antenna in our attic.

Several of the spots along the southern edge of the trip went through the K2PUT-15 digipeater high atop Mt. Ninham near Carmel, with coverage of the entire NY-NJ-CT area.

The APRS-IS database filters out packets received by multiple iGates, so there’s only one entry per spot.

All in all, KE4ZNU-10 covers the southern part of our usual biking range pretty much the way I wanted.


Raspberry Pi Serial vs. TNC-Pi2 vs. APRX

The APRX iGate program I’m using produces a hardware & software event log file:

2016-09-03 11:24:40.368 TTY /dev/serial0 read timeout. Closing TTY for later re-open.
2016-09-03 11:25:10.373 TTY /dev/serial0 Opened.
2016-09-03 11:32:05.485 CLOSE APRSIS heartbeat timeout
2016-09-03 11:32:15.495 CLOSE APRSIS reconnect
2016-09-03 11:32:15.776 CONNECT APRSIS
2016-09-03 12:25:11.154 TTY /dev/serial0 read timeout. Closing TTY for later re-open.
2016-09-03 12:25:46.154 TTY /dev/serial0 Opened.
2016-09-03 15:50:14.905 TTY /dev/serial0 read timeout. Closing TTY for later re-open.
2016-09-03 15:50:46.155 TTY /dev/serial0 Opened.
2016-09-03 16:50:51.155 TTY /dev/serial0 read timeout. Closing TTY for later re-open.
2016-09-03 16:51:26.155 TTY /dev/serial0 Opened.

I have no idea what’s going on with the “read timeout” messages. They seem to occur almost exactly a hour apart, except when they’re a few hours apart. The TNC-Pi2 board includes a PIC processor; maybe it loses track of something every now & again, but APRX only notices if it happens in the middle of a read operation.

The APRSIS server connection drops every few days and APRX seems well-equipped to tolerate that.

All in all, it’s working fine…


Red Oaks Mill APRS iGate: KE4ZNU-10

APRS coverage of this part of the Mighty Wappinger Creek Valley isn’t very good, particularly for our bicycle radios (low power, crappy antennas, lousy positions), so I finally got around to setting up a receive-only APRS iGate in the attic.

The whole setup had that lashed-together look:

KE4ZNU-10 APRS iGate - hardware

KE4ZNU-10 APRS iGate – hardware

It’s sitting on the bottom attic stair, at the lower end of a 10 °F/ft gradient, where the Pi 3’s onboard WiFi connects to the router in the basement without any trouble at all.

After about a week of having it work just fine, I printed a case from Thingiverse:

KE4ZNU-10 APRS iGate - RPi TNC-Pi case

KE4ZNU-10 APRS iGate – RPi TNC-Pi case

Minus the case, however, you can see a TNC-Pi2 kit atop a Raspberry Pi 3, running APRX on a full-up Raspbian Jessie installation:

RPi TNC-Pi2 stack - heatshrink spacers

RPi TNC-Pi2 stack – heatshrink spacers

You must solder the TNC-Pi2 a millimeter or two above the feedthrough header to keep the component leads off the USB jacks. The kit includes a single, slightly too short, aluminum standoff that would be perfectly adequate, but I’m that guy: those are four 18 mm lengths of heatshrink tubing to stabilize the TNC, with the obligatory decorative Kapton tape.

The only misadventure during kit assembly came from a somewhat misshapen 100 nF ceramic cap:

Monolithic cap - 100 nF - QC failure

Monolithic cap – 100 nF – QC failure

Oddly, it measured pretty close to the others in the kit package. I swapped in a 100 nF ceramic cap from my heap and continued the mission.

The threaded brass inserts stand in for tiny 4-40 nuts that I don’t have. The case has standoffs with small holes; I drilled-and-tapped 4-40 threads and it’ll be all good.

The radio, a craptastic Baofeng UV-5R, has a SMA-RP to UHF adapter screwed to the cable from a mobile 2 meter antenna on a random slab of sheet metal on the attic floor. It has Kenwood jack spacing, but, rather than conjure a custom plug, I got a clue and bought a pair of craptastic Baofeng speaker-mics for seven bucks delivered:

Baofeng speaker-mic wiring

Baofeng speaker-mic wiring

For reference, the connections:

Baofeng speaker-mic cable - pins and colors

Baofeng speaker-mic cable – pins and colors

Unsoldering the speaker-mic head and replacing it with a DE-9 connector didn’t take long.

The radio sits in the charging cradle, which probably isn’t a good idea for the long term. The available Baofeng “battery eliminators” appear to be even more dangerously craptastic than the radios and speaker-mics; I should just gut the cheapest one and use the shell with a better power supply.

I initially installed Xastir on the Pi, but it’s really too heavyweight for a simple receive-only iGate. APRX omits the fancy map displays and runs perfectly well in a headless installation with a trivial setup configuration.

There are many descriptions of the fiddling required to convert the Pi 3’s serial port device names back to the Pi / Pi 2 “standard”. I did some of that, but in point of fact none’s required for the TNC-Pi2; use the device name /dev/serial0 and it’s all good:

serial-device /dev/serial0 19200 8n1 KISS
callsign $mycall # callsign defaults to $mycall
tx-ok false # transmitter enable defaults to false
telem-to-is false # set to 'false' to disable

Because the radio looks out over an RF desert, digipeating won’t be productive and I’ve disabled the PTT. All the received packets go to the Great APRS Database in the Cloud:


An APRS reception heat map for the last few days in August:

KE4ZNU-10 Reception Map - 2016-08

KE4ZNU-10 Reception Map – 2016-08

The hot red square to the upper left reveals a peephole through the valley walls toward Mary’s Vassar Farms garden plot, where her bike spends a few hours every day. The other hotspots show where roads overlap the creek valley; the skinny purple region between the red endcaps covers the vacant land around the Dutchess County Airport. The scattered purple blocks come from those weird propagation effects that Just Happen; one of the local APRS gurus suggests reflections from airplane traffic far overhead.

An RPi 3 is way too much computer for an iGate: all four cores run at 0.00 load all day long. On the other paw, it’s $35 and It Just Works.


LF Loop Antenna: GPS Frequency Check

I stuck some old 12 V 7 A·h batteries in my homebrew power supply for the HP 3801A GPS Time / Frequency Standard, fired it up, put the antenna where it could see a good chunk of the sky, gave it a day to warm up / settle out, and it’s perfectly happy:

------------------------------- Receiver Status -------------------------------

SYNCHRONIZATION ............................................. [ Outputs Valid ]
SmartClock Mode ___________________________   Reference Outputs _______________
>> Locked to GPS                              TFOM     3             FFOM     0
   Recovery                                   1PPS TI -38.3 ns relative to GPS
   Holdover                                   HOLD THR 1.000 us
   Power-up                                   Holdover Uncertainty ____________
                                              Predict  366.2 us/initial 24 hrs

ACQUISITION ............................................ [ GPS 1PPS CLK Valid ]
Satellite Status __________________________   Time _____ +1 leap second pending
Tracking: 4        Not Tracking: 6            UTC      18:22:19     22 Jul 2016
PRN  El  Az   SS   PRN  El  Az                1PPS CLK Synchronized to UTC
  3  34 104   48   * 1  36  48                ANT DLY  0 ns
 17  62 308  103     6  27 220                Position ________________________
 19  39 281   50    11  21  58                MODE     Hold
 28  80 133   64   *22  Acq .
                    24  12 319                LAT      N  41:39:32.328
                    30  15 191                LON      W  73:52:26.733
ELEV MASK 10 deg   *attempting to track       HGT               +82.87 m  (MSL)
HEALTH MONITOR ......................................................... [ OK ]
Self Test: OK    Int Pwr: OK   Oven Pwr: OK   OCXO: OK   EFC: OK   GPS Rcv: OK
scpi >

The FFOM 0 entry says the Frequency Figure Of Merit is “within specifications” of 10-9, averaged over one day. That means the actual frequency should be within 0.010 Hz of 10 MHz.

Feeding the 10 MHz frequency reference into the (equally warmed up) HP 8591E spectrum analyzer and selecting an absurdly narrow span produces a comforting sight:

HP Z2801A GPS Receiver - 10 MHz ref - HP 8591E

HP Z2801A GPS Receiver – 10 MHz ref – HP 8591E

Given the horizontal resolution, that’s dead on 10 MHz.

So, yeah, that signal at 57-ish kHz really isn’t at 60.000 kHz:

Loop - 40T 1nF - spectrum

Loop – 40T 1nF – spectrum

Which is good to know …



External Li-Ion Pack: More Sawing

Two of the external Li-Ion battery packs I’m using with the bike radios seemed to fail quickly after being charged, so I sawed them open to check the state of the cells. This time I used the fine-tooth cutoff blades, rather than a coarse slitting saw:

Li-Ion pack - sawing case

Li-Ion pack – sawing case

As before, a 2 mm depth-of-cut, done 0.25 mm per pass after the first millimeter, seems about right. I didn’t saw the front of the case near the jack, which proved to be a mistake; the interlocked case halves need cutting.

No cell trouble found, which leads me to suspect an intermittent short in the battery-to-radio cable that trips the battery protection circuit. The spare cables went into hiding during the shop cleanout, so I can’t swap in a known-good cable just yet; of course, the existing cable behaves perfectly on the bench. The suspect cable is now on my bike and, if the problem follows the cable, further surgery will be in order.

For the record, the insides look like this:

Li-Ion pack - interior

Li-Ion pack – interior

The cell label seems to show a 2004 date code:

Li-Ion pack - cell label

Li-Ion pack – cell label

Given that I got them on closeout in early 2010, it definitely isn’t 2014.

Unlike some of the other cheap batteries around here, they’ve been spectacularly successful!


LF Loop Antenna: 60 kHz Tuning

The object of soldering all 40 wires in the 5 m hank of ribbon cable  in series is to build a 40 turn loop antenna to receive LF radio signals like WWVB at 60 kHz. The antenna, being basically a big coil of wire, will have an inductance that depends on its layout, so putting a capacitor in parallel turns it into a resonant tank circuit. Given a particular layout (and, thus, an inductance), you can choose the capacitor to make the antenna resonant at whatever frequency you need (within reason).

With the joints soldered & reinforced with epoxy, the inductance across all 40 turns:

  • 535 µH – rolled into a compact bundle
  • 6.66 mH – vaguely circular loop on the concrete floor
  • 5.50 mH – lumpy rectangle on the concrete floor

Back in a slightly different circular layout on the floor:

  • 6.8 mH – across all 40 turns, as above
  • 2.0 mH – across either set of 20 turns from the center tap

Given that inductance varies as the square of the number of turns, you’d expect a factor of four between those two inductances, but that’s not how it worked out.

Hanging the loop from a pair of screws in the floor joists to make a droopy rectangle-oid shape and driving it from a 600 Ω signal generator through a 10 kΩ resistor, it’s self-resonant at 213 kHz. Repeating that with a 470 kΩ resistor drops the resonance to 210 kHz, which isn’t different enough to notice and surely has more to do with my moving the loop while dinking with resistors.

Adding parallel capacitance (measured with an LCR meter, just to be sure) changes the resonance thusly:

  • 9.9 nF → 20 kHz
  • 900 pF → 64 kHz
  • 400 pF → 87 kHz
  • 250 pF → 108 kHz
  • none → 213 kHz

Because the resonant frequency varies inversely as the square root of the capacitance, halving the resonant frequency means you’ve increased the capacitance by a factor of four. Because 250 pF halves the frequency (mostly kinda sorta close enough), the loop’s stray capacitance must be about 1/3 of that: 83 pF.

Yeah, 1/3, not 1/4: the additional capacitance adds to the stray capacitance, so it goes from 83 pF to 250 + 83 pF = 333 pF, which is four times 83 pF.

(If that sound familiar, it’s similar to the resonant snubber calculation.)

The self-resonant frequency of 213 kHz and the 83 pF stray capacitance determines the loop inductance:

L = 1/((2π · 213 kHz)^2 · 83 pF) = 6.9 mH

Pretty close to the measured value from the floor, I’d say.

To resonate the antenna at 60 kHz, the total capacitance must be:

60 kHz = 1/(2π · sqrt(6.9 mH · C)) → C = 1050 pF

Which means an additional 1050 – 83 =  970-ish pF should do the trick, which is about what you’d expect from the 64 kHz resonance with the 900 pF cap above. I paralleled pairs of caps until it resonated at 59.9 kHz.

The -3 dB points (voltage = 1/sqrt(2) down from the peak) turned out to be 58.1 and 60.1 kHz, so my kludged caps are slightly too large or, once again, I nudged the loop.

Figuring Q = (center frequency) / bandwidth = 59.1 / 2 = 30, which works out close enough to Q = X / R = 2600 / 80 = 33 to be satisfying. Using standard 26-ish AWG ribbon cable, rather than crappy 31-ish AWG eBay junk, would double the conductor area, halve the series resistance, and double the Q. Faced with that much resistance, I’m not sure better caps would make any difference.

Attaching the spectrum analyzer through a 470 Ω resistor to reduce the load:

Loop - 40T 1nF - spectrum

Loop – 40T 1nF – spectrum

I’d love to believe that big peak over on the left at 57.1 kHz is WWVB, but it’s not.

What’s more important: the broad hump between 56 and 62 kHz, where the increased amount of background hash suggests the antenna really is resonant, with a center frequency around 59 kHz. The -3 dB points might be 57 and 61 kHz, but at 10 dB/div with 5 dB of hash, I’d be kidding myself.

Dang, I love it when the numbers work out!

It’s faintly possible the spectrum analyzer calibration is off by 2.5 kHz at the low end of its range. The internal 300 MHz reference shows 299.999925 and it puts FM stations where they should be, but the former could be self-referential error and the latter lacks enough resolution to be comforting. I must fire up the GPS frequency reference, let it settle for a few days, see whether it produces 10.000000 MHz like it should, then try again.

The original measurements:

Loop antenna tuning - measurements

Loop antenna tuning – measurements