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.

Tag: Improvements

Making the world a better place, one piece at a time

  • Newmowa NP-BX1

    Newmowa NP-BX1

    After a year’s service in my Sony AS-30V helmet camera, the Newmowa NP-BX1 lithium cells perform pretty nearly as well as they started out:

    NP-BX1 - Newmowa 2022 - 2023-08
    NP-BX1 – Newmowa 2022 – 2023-08

    Recharging the cells after that test averaged 907 mA·hr within 2%, so they’re still reasonably well grouped.

    The camera burns 1.9 W, so the worst of the cells has a 100 minute runtime = 3.3 W·hr/1.9 W × 60 min/hr,.

    Our usual weekday rides run a little over an hour and I change the batteries during our longer weekend rides, so they rarely see more than an hour’s use.

    A recent 1-¼ hour = 75 minute ride soaked up 687 mA·hr, just about exactly 75% of 907 mA·hr. Gotta love it when the numbers work.

    Surprisingly good performance, given the drama involved in finding those cells. I wonder if that will hold next year when I buy another set?

  • Tour Easy Running Lights: Firmware

    Tour Easy Running Lights: Firmware

    The optoisolator carrying the Bafang controller’s LIGHT signal pulls Pin 2 down to turn the LED on constantly for night riding:

        if (!Morser.continueSending())
            if (digitalRead(PIN_LIGHTMODE) == HIGH)
                Morser.startSending();
            else
                digitalWrite(PIN_OUTPUT,HIGH);      // constantly turn on in headlight mode
    

    That’s the entirety of the program’s loop() function, so there’s not much to the firmware.

    Imagine that: a whole computer devoted to sampling an input bit a zillion times a second and persistently setting an output bit:

    Tour Easy Running Light - Arduino view
    Tour Easy Running Light – Arduino view

    The Morse output to the rear is now “s” rather than “i” for more blinkiness, but I doubt anybody will ever notice.

    The next time I raise the hood on this thing, I’ll add a digital input to select FRONT or REAR mode to get me out of having to remember which hardware goes where.

    The Arduino source code as a GitHub Gist:

    // Tour Easy Running Light
    // Ed Nisley – KE4ZNU
    // September 2021
    // 2023-03 preprocessorize for front/rear lights
    // https://github.com/markfickett/arduinomorse
    #include <morse.h>
    // Bafang headlight output pulls pin low
    #define PIN_LIGHTMODE 2
    #define PIN_OUTPUT 13
    #define FRONT
    #if defined(FRONT)
    #define BLINKS "b e "
    #define POLARITY false
    #elif defined(REAR)
    #define BLINKS "s "
    #define POLARITY true
    #else
    #error "Needs FRONT or REAR"
    #endif
    // second param: true = active low output
    LEDMorseSender Morser(PIN_OUTPUT,POLARITY,(float)10.0);
    void setup()
    {
    pinMode(PIN_LIGHTMODE,INPUT_PULLUP);
    Morser.setup();
    Morser.setMessage(String("qst de ke4znu "));
    Morser.sendBlocking();
    Morser.setSpeed(75);
    Morser.setMessage(String(BLINKS));
    }
    void loop()
    {
    if (!Morser.continueSending())
    if (digitalRead(PIN_LIGHTMODE) == HIGH)
    Morser.startSending();
    else
    digitalWrite(PIN_OUTPUT,HIGH); // constantly turn on in headlight mode
    }
  • Tour Easy Running Lights: Mechanics

    Tour Easy Running Lights: Mechanics

    The running lights have the same general structure as before and fit into the same front and rear holders:

    Tour Easy Running Light - rear installed
    Tour Easy Running Light – rear installed

    I made the recess slightly deeper to provide a bit more protection to the lens:

    Tour Easy Running Light - front installed
    Tour Easy Running Light – front installed

    The lenses have a 10° beam angle, so a few more millimeters of sidewall doesn’t intercept much light.

    The layout doodle grew a few more notes:

    Tour Easy running light - housing dimensions
    Tour Easy running light – housing dimensions

    I had the good idea of boring the tube, knurling the rod, then epoxying the two together before cutting the rod:

    Tour Easy Running Light - heatsink curing
    Tour Easy Running Light – heatsink curing

    Which let the lathe hold them in perfect alignment during curing:

    Tour Easy Running Light - heatsink plug alignment
    Tour Easy Running Light – heatsink plug alignment

    The rod fits through the lathe spindle and I intended to use it as an arbor while turning the tube exterior, then cut the finished heatsink off flush.

    Which really good idea lasted until the next morning, when I looked at the setup and immediately cut the rod flush with the tube. Because reasons, perhaps excess blood in my caffeine stream.

    So I had to finish the heatsink on hard mode right up against the chuck:

    Tour Easy Running Light - turning heatsink rebate
    Tour Easy Running Light – turning heatsink rebate

    Flipping it around and gripping that little rebate to skim the OD down to 25 mm seemed fraught with peril, so I stabilized the open end with a chuck and plenty of oil; the live center was just too big around for the job.

    Dang, I hate it when I screw up a nice plan.

    Then drill various holes on the Sherline and epoxy the circuit support plate:

    Tour Easy Running Light - circuit plate curing
    Tour Easy Running Light – circuit plate curing

    After boring the PVC pipe to 23 mm ID, I made a pair of Delrin fixtures to simplify turning the exterior to 25 mm before parting it off:

    Tour Easy Running Light - turning body OD
    Tour Easy Running Light – turning body OD

    The PVC is so thin the Arduino’s LEDs shine right through:

    Tour Easy Running Light - installed top view
    Tour Easy Running Light – installed top view

    The radioactive green endcap is ordinary laser-cut fluorescent edge-lit acrylic with sunlight through the garage door on the left. I used red acrylic for the taillight to encourage their separate identities.

    The knockoff Arduino Nano fits on one side of the support plate:

    Tour Easy Running Light - Arduino view
    Tour Easy Running Light – Arduino view

    And the current regulator on the other:

    Tour Easy Running Light - current regulator
    Tour Easy Running Light – current regulator

    Because these run from a dedicated 6.3 V step-down regulator, rather than the Bafang controller’s headlight output, the 2.0 Ω sense resistor sets the LED current to 0.8 V / 2.0 Ω = 400 mA, which is pretty close to the LED 1 W spec.

    The white blob at the end of the two ribbon cable wires is the optoisolator pulling down a pin when the LIGHT signal is active, telling the firmware to stop the normal blink pattern and just turn the LED on all the time. This will come in handy if I ever do any night riding.

    The LED is epoxied to the aluminum shell (with metal-filled JB Weld) and the whole affair never gets more than comfortably warm even with the LED running constantly.

    I think they came out All Good™, despite various blunders along the way.

  • Tour Easy Running Lights: Same, But Different

    Tour Easy Running Lights: Same, But Different

    Having just finished another set of daytime running lights, we once again have a matched pair of Tour Easy recumbents:

    Tour Easy Running Light - two tail lights
    Tour Easy Running Light – two tail lights

    Although both ‘bents have Bafang 750 W motors with 48 V lithium batteries and both motor controllers have “light” outputs, they are different.

    The controller on Mary’s bike (on the right) has a 6.3 V output that goes active when you press the 500C display’s + button for a few seconds. Those running lights simply use the light output for power, with a bit of tweakage to keep their current draw within the 500 mA limit.

    The controller on my bike (on the left) has a 12 V output that goes active when I press-and-hold the headlight button on the DPC-18 display’s pad. Unlike the 500C, however, the DPC-18 dims its display when the lights are on, rendering it completely illegible in sunlight.

    Because the running lights must operate with the headlight output inactive, a buck converter from a randomly named Amazon seller steps the 48 V battery down to 6.3 V. Note that the usual buck converters have a 36 V upper limit, so you want one with an LM2596HV regulator.

    Because the regulator should be turned off when the motor controller is off, it must have a control input to enable / disable it; even if the regulator has the input pin, most boards don’t bring it out to a pad. The PCB I used has a SW input that must be low to enable the regulator, as shown in the middle doodle amid these scratches:

    Tour Easy running light - buck converter SW control doodles
    Tour Easy running light – buck converter SW control doodles

    The SW pad on the PCB drives a voltage divider made from a 3.3 kΩ and a 10 kΩ resistor, with the regulator’s control (pin 5) looking at the junction. Running the numbers suggested a 220 kΩ resistor from the battery + terminal would provide enough current to hold the pin high, while not drawing more than a few hundred microamps, and a transistor could pull it low to turn the regulator on.

    The DPC-18 display has a USB port to charge your phone on the go, so I hijacked that to get +5 V when the controller is turned on:

    Tour Easy Running Light - Bafang DPC-18 USB plug
    Tour Easy Running Light – Bafang DPC-18 USB plug

    It’s a cut-down USB breakout board with two 24 AWG wires stripped from a ribbon cable soldered in place and coated with epoxy. The silicone port cover sticks out on the left; I eventually jammed it under the display panel in lieu of cutting it off.

    Although I want the running lights on whenever the controller is on, It Would Be Nice™ to have a steady headlight / taillight in the unlikely event I ever ride after dark. With that in mind, the USB power pair joins another pair from the motor controller’s LIGHT connector (via a red 2-pin Juliet plug), so the firmware can tell when the headlights should be on, and the resulting 4-wire ribbon cable wanders off to the battery mounting plate:

    Tour Easy running light - wire routing doodle
    Tour Easy running light – wire routing doodle

    The connectors along the way are 4-pin JST-SM 2.5 mm, which are most certainly not watertight. We’re fortunate in being able to not ride in the rain whenever we want, so the connectors won’t be exposed to water very often.

    The battery mounting plate has an aluminum casting with a small compartment, probably intended for a complete e-bike controller, that just barely holds the hardware required to produce the 6.3 V supply:

    Tour Easy Running Light - Bafang battery base circuitry - detail
    Tour Easy Running Light – Bafang battery base circuitry – detail

    Yes, those exposed battery terminals with soldered-on wires got a silicone tape wrap. No, there are no fuses involved. The two steel brackets holding the main power cable in place came pre-bent and pre-drilled in a random piece of scrap harvested from some dead equipment; they’re screwed into pre-tapped holes intended for the six TO-220 style power transistors of the missing motor driver.

    The perfboard in the upper left holds an optoisolator for the USB power → SW input and a pair of resistors for the LIGHT signal to the headlight and taillight:

    Tour Easy running light - control doodles
    Tour Easy running light – control doodles

    The optoisolators come from an ancient surplus deal; the bag I thought contained unmarked SFH615 parts apparently got mixed with some unmarked SFH6106 parts with the opposite transistor pinout.

    The sketched trimpot in the lower right was on the buck regulator board, where it stood just an itsy too tall to fit the space available. Given that I would never adjust it, I set it for 6.3 V, removed it, measured the resistances, substituted fixed resistors, and the board should produce 6.3-ish V forevermore.

    The regulator sits atop heatsink tape on a brass sheet with more heatsink tape isolating it from the housing and two nylon screws holding the stack in place.

    With the various cables soldered in place:

    Tour Easy Running Light - Bafang battery base circuitry - wired
    Tour Easy Running Light – Bafang battery base circuitry – wired

    The layout of all those cables:

    Tour Easy running light - cable sections doodle
    Tour Easy running light – cable sections doodle

    Surprisingly, It Just Worked™:

    Tour Easy Running Light - installed top view
    Tour Easy Running Light – installed top view

    More details to follow …

  • Bafang Battery Labeling

    Bafang Battery Labeling

    Based on Tee’s unfortunate experience, I finally got around to labeling the Bafang batteries on our Tour Easy ‘bents:

    Bafang battery labeling - charge jack
    Bafang battery labeling – charge jack

    On the other side, each lock is now color-coded to its key:

    Bafang battery labeling - lock and keys
    Bafang battery labeling – lock and keys

    It’s laser-safe polyurethane vinyl applied to the battery after vigorously wiping crud off the surface with denatured alcohol. Think of it as an outdoor testcase for PSA vinyl.

    I’m sure there’s a master key out there for all e-bike locks, but we remove them so rarely the color coding should suffice.

    Worst case, pick the lock with a piece of wire and a hex key.

  • Tree Work: Merlo Roto with Treecracker

    Tree Work: Merlo Roto with Treecracker

    [Edit: It’s a “Woodcracker”.]

    The best bid on a recent tree removal project replaced most of the usual crew with a Merlo Roto telehandler:

    Tree Work - Merlo setup
    Tree Work – Merlo setup

    The orange gadget on the end of the boom is a Woodcracker manipulator with a terrifying switchblade chainsaw:

    Tree Work - Merlo Woodcracker - rear
    Tree Work – Merlo Woodcracker – rear

    The saw has hydraulic motors, so you can hear the blade ripping through the wood.

    The jaws above the saw hold the piece during the cut:

    Tree Work - Merlo Woodcracker - side
    Tree Work – Merlo Woodcracker – side

    Then lift it away:

    Tree Work - Merlo Woodcracker - cut lift
    Tree Work – Merlo Woodcracker – cut lift

    The boom has a 115 foot vertical reach, so it can remove entire treetops:

    Tree Work - Merlo Woodcracker - align
    Tree Work – Merlo Woodcracker – align

    Then align the branch with the chipper’s gullet and ram it into the feed rollers, with no intervention from the ground crew:

    Tree Work - Merlo - chipper feeding
    Tree Work – Merlo – chipper feeding

    The Woodcracker chainsaw isn’t quite long enough for the trunk, so the jaws stabilize the trunk during a manual cut:

    Tree Work - Merlo Woodcracker - trunk support
    Tree Work – Merlo Woodcracker – trunk support

    Then haul the whole thing away:

    Tree Work - Merlo Woodcracker - trunk lift
    Tree Work – Merlo Woodcracker – trunk lift

    The Merlo can lift 11,000 pounds near the middle of its range, with a 1600 pound limit at the maximum horizontal reach and 5500 pounds at 115 feet vertically. As far as I can tell, nothing about this project came anywhere close to the machine’s limits.

    The day arrived with a severe thunderstorm watch, but the main part of the storm passed far north of us. The local power company keeps this company on speed dial and called them for emergency work in the wake of the storm, so the Merlo left early and the remaining crew used a bucket truck to take down the last tree in old-school style.

    The Merlo is staggeringly expensive, but lets one operator take down an entire tree without any climbers or riggers. I suspect the reduction in crew size (and insurance premiums) pays for the machine in short order; the crew was less than half the size involved in a neighbor’s project with another contractor.

    Highly recommended!

    Merlo’s promotional video has comparisons with similar machines and I’m sure you could waste an entire afternoon on such things. For sure, I didn’t get anything else done that day.

  • Dandelion Weeder Repair

    Dandelion Weeder Repair

    This dandelion weeder was no match for the rugged weeds among the decorative grasses Mary planted along the road out front:

    Dandelion Weeder - bent
    Dandelion Weeder – bent

    You might expect the tang to extend well into the handle, but that’s not what you get in a cheap tool:

    Dandelion Weeder - ferrule detail
    Dandelion Weeder – ferrule detail

    The Bucket o’ Rod-like Materials had a rake handle about the right diameter, so I sawed off a suitable length, set up the steady rest with a bushing, and turned the end to match the ferrule:

    Dandelion Weeder - end turning
    Dandelion Weeder – end turning

    Pound the ferrule into place and drill the new handle to fit the tang:

    Dandelion Weeder - drilling setup
    Dandelion Weeder – drilling setup

    The handle seemed a bit raw and, as it was already chucked in the lathe, got a synthetic string wrap with clear epoxy coating:

    Dandelion Weeder - string epoxy
    Dandelion Weeder – string epoxy

    The pourable epoxy is reaching the end of its shelf life, but seemed entirely suitable for the purpose. I wrapped two layers of string around the dry handle, laid paper over the lathe bed, slathered epoxy over the whole affair, and let the lathe turn dead-slow for most of the day to even out the coat.

    The next day: hammer the blade mostly straight again, smear JB QuikWeld on the tang and into the hole, gently hammer them together, chuck the blade, apply more epoxy to the ends, and let it turn:

    Dandelion Weeder - end epoxy
    Dandelion Weeder – end epoxy

    A careful inspection reveals my casual disregard of the finer points of tool handle craftsmanship, but it came out surprisingly pretty:

    Dandelion Weeder - repaired
    Dandelion Weeder – repaired

    The blade remains the finest butter-soft cheap steel and still doesn’t extend the length of the handle, but Quality Shop Time™ is not to be sniffed at.

    And, hey, nary a trace of 3D printing or laser cutting!