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: Recumbent Bicycling

Cruisin’ the streets

  • APRS/Voice HT Interface: Baofeng Mods

    My carefully contrived plug plates for Wouxun radios:

    Wouxun plug plate - epoxy cap
    Wouxun plug plate – epoxy cap

    … of course don’t fit the Baofeng radio. This being in the nature of a final fix, I chopped off enough protrusions to make the remainder fit snugly into the recess.

    APRS-voice HT interface - Baofeng mods
    APRS-voice HT interface – Baofeng mods

    The case containing the TinyTrak3 GPS board and the APRS-voice adapter PCB of course doesn’t fit in place of the Baofeng battery pack, so I replaced the battery contact studs with simple 4-40 screws to prevent heartache & confusion.

    Based on one ride, both Baofeng batteries have very little capacity left after several years on the shelf, which comes as absolutely no surprise whatsoever.

  • Rt 376 Pavement Deterioration

    The pavement along Rt 376 between markers 1111 and 1108 has deteriorated into deep chasms, potholes, and fissures.

    The linear disintegration south of marker 1111 seems to follow an underlying concrete joint. The shoulder has deep, tire-trapping fissures, forcing cyclists far out into the travel lane along a narrow and curved part of Rt 376:

    Rt 376 SB deterioration - S of marker 1111 - 2018-02-20
    Rt 376 SB deterioration – S of marker 1111 – 2018-02-20

    The hole at address 2181 (across from Paula’s House / GastroPub) was previously patched, but recent weather has excavated it nearly a foot deep. The shoulder has also deteriorated, again forcing cyclists into the travel lane:

    Rt 376 SB deterioration - at 2181 driveway - 2018-02-20
    Rt 376 SB deterioration – at 2181 driveway – 2018-02-20

    The previous patches along the inside of the curve just north of Heathbrook Drive (south of marker 1108) have disintegrated. There’s no shoulder at all along that section and the fissures in the travel lane force cyclists into the lane along a blind curve:

    Rt 376 NB deterioration - S of marker 1108 - 2018-02-20
    Rt 376 NB deterioration – S of marker 1108 – 2018-02-20

    This section of NYS Bicycle Route 9 poses an immediate danger to both cyclists and motorists, so I reported all these to NYS DOT and, a day later, a crew traveled along Rt 376 shoveling cold patch into many of the holes and flattening the lumps more-or-less parallel to the road surface: it’s now driveable, if still a hazard for bicycle traffic.

    Hope springs eternal; after all, they did repave Rt 376 around Red Oaks Mill.

  • Wouxun KG-UV3D: Enemy Action

    Once is happenstance, twice is coincidence, three times is enemy action:

    Wouxun KG-UV3D - failure 3
    Wouxun KG-UV3D – failure 3

    All of the (surviving) battery packs produce 9.0 to 9.2 V, a bit hotter than the pair of fully charged lithium cells the radio expects to see, but the first two radios lasted for six years under that abuse.

    This one failed after a few hours. It’s a new radio, but I’m willing to assume I killed the thing and will just eat the cost.

    I have no theories about what’s going on, but I must tweak my APRS interface to work with a Baofeng radio I have on the shelf.

    From now on, though, both radios will run from their stock battery packs.

    Maybe I’m just a slow learner.

  • VFAT Time Zone Offset Correction

    An SJCAM M20 action camera includes the date and time in its file names, but the directory entries appear with the wrong timestamp:

    sudo mount -o uid=ed /dev/sdc1 /mnt/part
    ll -tr /mnt/part/DCIM/Photo/ | head
    total 4.8G
    drwxr-xr-x 4 ed root  16K Apr  8  2016 ../
    drwxr-xr-x 2 ed root 144K Jan 25 18:52 ./
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100825_001.JPG*
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100830_002.JPG*
    

    I’m in the Eastern US time zone, -5 hr from UTC.

    By definition, FAT directory entries contain the “local time” when the file was created / changed. Because it cannot know which “local time” applies, the Linux VFAT filesystem treats the timestamp as UTC and adjusts it by -5 hr.

    So the camera writes the directory timestamps properly. When mounted, Linux correctly (for a reasonable definition of correctly) regards them as UTC, knocks off five hours to match this time zone, and displays the result.

    Alas, disabling the VFAT timestamp conversion has no effect:

    sudo mount -o uid=ed,tz=UTC /dev/sdc1 /mnt/part
    ll -tr /mnt/part/DCIM/Photo/ | head
    total 4.8G
    drwxr-xr-x 4 ed root  16K Apr  8  2016 ../
    drwxr-xr-x 2 ed root 144K Jan 25 18:52 ./
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100825_001.JPG*
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100830_002.JPG*
    

    I’m not sure why that doesn’t do anything; it doesn’t generate any error messages.

    Although it seems like a reasonable thing, one cannot force a specific time zone with, say, tz=EST or tz=EDT or tz=UTC8 or whatever.

    You can specify an offset in minutes:

    sudo mount -o uid=ed,time_offset=$((-5*60)) /dev/sdc1 /mnt/part
    ll -tr /mnt/part/DCIM/Photo/ | head
    total 4.8G
    drwxr-xr-x 4 ed root  16K Apr  8  2016 ../
    drwxr-xr-x 2 ed root 144K Jan 25 23:52 ./
    -rwxr-xr-x 1 ed root 3.8M Jan 26 10:08 2018_0126_100825_001.JPG*
    -rwxr-xr-x 1 ed root 3.8M Jan 26 10:08 2018_0126_100830_002.JPG*
    

    The time_offset value is subtracted from the directory timestamp, which means you’re feeding in the actual time offset from UTC, including whatever Daylight Saving Time offset may be in order.

    So Linux takes the FAT timestamp, adds (subtracts a negative) 5 hr, and displays the result as my (now correct) local time.

    I suppose I could set the camera to UTC, but then the camera’s on-screen and in-video timestamps would be off by four or five hours, depending on the season. So it goes.

  • Wouxun KG-UV3D: Another Failure

    Once is happenstance, twice is coincidence:

    Wouxun KG-UV3D - failure
    Wouxun KG-UV3D – failure

    Three times is enemy action, but we’re not there yet. I was willing to believe something I’d done had killed both of the radios, even though it seemed unlikely for them to last five years and fail almost simultaneously.

    So I dismantled this one to see what’s inside. Pull off both knobs, remove the two screws at the bottom of the battery compartment, pry gently with a small screwdriver, and the whole PCB pulls out:

    Wouxun KG-UV3D - disassembly
    Wouxun KG-UV3D – disassembly

    A bit more prying separates the big pieces:

    Wouxun KG-UV3D - interior
    Wouxun KG-UV3D – interior

    Looking closely at the main PCB showed some problems I definitely didn’t cause:

    Wouxun KG-UV3D - PCB overview
    Wouxun KG-UV3D – PCB overview

    Although it’s been riding around on my bike, the white blotches on the PCB came from inadequate flux removal after hand soldering.

    A collection of images taken through the microscope reveals the problems:

    This slideshow requires JavaScript.

    I swabbed off the crud with denatured alcohol to no avail. The bottom side of the PCB has even more components and, I’m sure, even more crud, but I didn’t bother removing all the screws required to expose it, nor did I dismantle the other failed HT.

    I doubt Wouxun’s QC improved over the last few years, which means the two replacement KG-UV3D radios I just bought are already on their last legs, despite my paying top dollar to the same reputable source that sold me the first pair.

    We’ll be ready for new radios on new bikes by the time these fail.

  • Eyebrow Lights

    A high energy collision / accident / mishap in front of Adams Fairacre Farms (a.k.a., the grocery store) demolished 20 feet of their dry laid stone wall along Rt 44, flattened several bushes, gouged trenches in the grass, and scattered plastic debris into the parking lot. The remains of a headlight eyebrow running light emerged from a snow pile:

    Eyebrow light - front
    Eyebrow light – front

    From the back:

    Eyebrow light - back
    Eyebrow light – back

    Contrary to what I expected, it has one white LED at each end of the chromed reflecting channel, topped with a shaped plastic lens collecting the light:

    Eyebrow light - Lens mount
    Eyebrow light – Lens mount

    The LED PCBs are in series, which produced a backwards wire color code on one end:

    Eyebrow light - LED PCB 1
    Eyebrow light – LED PCB 1

    The other end looked more reasonable:

    Eyebrow light - LED PCB 2
    Eyebrow light – LED PCB 2

    The white SMD LEDs draw 300+ mA at 3.6 V, so they’re obviously depending on external current limiting provided by the regulator PCB, sporting a TLE4242 linear current regulator and a handful of passives:

    Eyebrow light - Regulator PCB
    Eyebrow light – Regulator PCB

    AFAICT, they didn’t use the chip’s PWM control input or its LED failure status output.

    Extracting the various PCBs from the wreckage and reconnecting the wires produced a satisfactory result:

    Eyebrow light - resurrection
    Eyebrow light – resurrection

    The regulator limits the LED current to 120 mA at any input from a bit over 7 V to well past 12 V, with each LED dropping 3.0 V.

    Dunno what I’ll use this junk for, but at least I know a bit more about eyebrow lights. The chip date codes suggest 2010 and 2012; perhaps linear regulators have become passe by now.

  • Cycliq Fly6: Battery Replacement

    After verifying my defunct Cycliq Fly6 has a dead battery, I ordered a handful of 18650 cells from Batteryspace (a known-reputable source):

    Fly6 - battery replacement - Samsung label
    Fly6 – battery replacement – Samsung label

    The transplanted protection PCB goes between the tabs, with a nickel strip snippet because I didn’t cut the old strip in the right place:

    Fly6 - battery replacement - PCB
    Fly6 – battery replacement – PCB

    The PCB goes under a manila paper layer, the ends get similar caps, and the whole affair receives an obligatory Kapton tape wrap:

    Fly6 - battery replacement - endcap
    Fly6 – battery replacement – endcap

    Reassembly is in reverse order. I now know the Fly6 will reset / start up when the battery connector snaps into place, but, because it emits identical battery-charge beeps when it starts and shuts off, there’s no way to tell what state it’s in. I don’t see any good way to install the ribbon cable from the LED PCB before plugging in the battery, so just blindly press-and-hold the power button to shut it off.

    After an overnight charge, it makes videos of my desk just fine and will, I expect, do the same on the bike.

    Now that I’ve taken the thing apart, I should open it up and tinker with the (glued-down) camera focus adjustment to discover whether:

    We’ll find out when the weather warms up in a week or two.