Tour Easy Daytime Running Light: Flashlight Ball

A flashlight used as a daytime running light must point generally forward and an actual bike headlight must light up the road, so it must sit on an az-el mount. My old bike helmet mirror mount had actual vertical and horizontal joints:

Helmet mirror mount - El slide in place
Helmet mirror mount – El slide in place

Every doodle along those lines seemed too big, too fragile, too fiddly, or all at once.

Living here in the future, though, we can produce (crude) ball joints to order:

Flashlight Ball Mount
Flashlight Ball Mount

That’s an early version of the outer mount using threaded brass inserts.

The ball around the flashlight separates along the obvious plane of symmetry, with a 2 mm socket-head cap screw and brass insert on each side. I tried printing the hemispheres convex-side-up with hand-hewn support structures inside:

Flashlight Ball Mount - support structure - on platform
Flashlight Ball Mount – support structure – on platform

The huge overhanging sections parallel to the axis didn’t bond to the supports, curled upward, and began nudging the dangling Z-axis homing switch actuator. This wasn’t a completely wasted effort, though, as similar support structures came in handy for the outer clamp ring.

Flipping the hemispheres over so they printed U-channel upward didn’t work much better, even sitting on a flat section to eliminate the absurd part of the overhang. This view shows one hemisphere with the missing cap:

Fairing Flashlight Mount - Ball - solid model
Fairing Flashlight Mount – Ball – solid model

Flipped over, the flat surface bonded perfectly to the platform, but the overhang still warped as the upper layers cooled and pulled the perimeter upward:

Flashlight Ball Mount - warped section
Flashlight Ball Mount – warped section

Because normal support structures don’t contact the outer surface, I added fins to the model to hold the perimeter (almost) flat until the outer walls became sufficiently vertical to stop warping:

Fairing Flashlight Mount - Ball - build view - solid model
Fairing Flashlight Mount – Ball – build view – solid model

They’re fearsome hedgehogs in person:

Flashlight Ball Mount - flattening fins
Flashlight Ball Mount – flattening fins

The grip diameter determines the sphere diameter, as the sphere must have enough meat next to the grip to hold the screws and inserts. Rather than have the diameter different for every flashlight, I set it to the maximum of 45 mm or the actual diameter, which means all the flashlights in my collection have a common ball size. The hemispheres on the right have flattened ends to accommodate flashlight grips shorter than the sphere’s final diameter, achieved with a pair of intersection() operations lopping off the protruding bits:

//- Ball around flashlight
// Must print two!
module BodyBall() {
difference() {
intersection() {
sphere(d=BallOD,$fn=2*NumSides); // basic ball
cube([BallLength,2*BallOD,2*BallOD],center=true); // max of flashlight grip length
}
translate([-LightBodies[FlashIndex][F_GRIPOD],0,0])
rotate([0,90,0]) rotate(180/NumSides)
PolyCyl(LightBodies[FlashIndex][F_GRIPOD],2*BallOD,NumSides); // flashlight body
for (j=[-1,1])
translate([0,j*BallScrewOC/2,0]) // commmon screw offset
translate([0,0,-BallOD])
PolyCyl(BallInsert[ID],2*BallOD,6); // punch screw shaft through everything
translate([0,BallScrewOC/2,-Protrusion])
PolyCyl(BallInsert[OD],(BallInsert[LENGTH] + 3*ThreadThick + Protrusion),6); // threaded insert
translate([0,-BallScrewOC/2,BallThick])
PolyCyl(BallScrew[OD],BallOD,6); // screw head clearance
translate([0,0,-BallOD/2]) // remove bottom half
cube(BallOD,center=true);
translate([0,0,BallOD - BallThick/2]) // slice off top = bottom for E-Z build
cube(BallOD,center=true);
}
if (Support) {
NumRibs = 24;
RibHeight = (BallOD - LightBodies[FlashIndex][F_GRIPOD]/cos(180/NumSides) - BallThick) / 2;
ChordC = 2*sqrt(BallThick*BallOD/2 - pow(BallThick/2,2));
intersection() {
cube([BallLength,2*BallOD,2*BallOD],center=true); // max of flashlight grip length
translate([0,0,BallOD/2 - BallThick/2])
for (i=[0:NumRibs - 1])
rotate(i*360/NumRibs + 180/NumRibs) // avoid screw holes
translate([ChordC/2 + BallOD/8,0,-RibHeight/2])
cube([BallOD/4,2*ThreadWidth,RibHeight],center=true);
}
}
}

Because the fins extend from resolutely convex surfaces, I snipped them off with flush-cutting pliers, reamed out the holes, epoxied the inserts in place, assembled the ball, and introduced it to Mr Belt Sander.

Protip: don’t hold the ball with your finger through the hole. It will eventually fly off under the workbench and it’s better if it doesn’t break your finger in the process.

A somewhat rough outer surface turns out to be an advantage, not a liability, as the clamp ring around the ball must hold it against the normal (and unusually severe) vibrations found on a bike.

The inner cylindrical section is smooth enough to require a wrap of tape around the flashlight grip to anchor it in position. The tape adheres to the flashlight and squishes into the ball’s layer lines, even under mild pressure from the 2 mm screws. The outer clamp ring applies compression to the ball, so the tiny screws need not withstand much force at all, which is a good thing.

10 thoughts on “Tour Easy Daytime Running Light: Flashlight Ball

  1. I’d have gone with old inner tube instead of tape – less sticky mess to clean up in the future :)

    Recently I optimized my ABS printing by adding a (passively) heated enclosure. It gets around 40-45C in there and now it works great, but I had a lot of curling initially. It turned out that curling is not the same as warping even though it looks similar. Then I added the cooling fan to the profile and it works like crazy – just as easy as printing PLA. My point, your curling might be from too much heat, not from normal warping.

    1. You’re certainly right: those two small disks don’t provide enough time for either one to cool before the nozzle returns.

      I gave up using the platform fan early last winter, when such a brisk breeze in a cold basement tripped the firmware’s thermal runaway detection, even after upping the limit to 6 °C. Now, with a warmer basement, the platform temperature still drops by too much to make me comfortable.

      I should try the old air pump trick for pinpoint cooling at the nozzle, without much air flowing over the platform, because fitting a shroud around the nozzle seems overly complex.

  2. Aquarium pump sounds promising, though it’s news to me. Must try it on the next iteration.

    As for bed, I’m using ~5kg aluminium plate so a flimsy 50mm turbine fan stands no chance of cooling it down. Just to be sure, thermistor is burried off to the back on the bottom side so local variations get averaged out before they reach it. Plate that heavy is out of the question on M2 with moving bed unfortunately. But try using an old cardboard box as an enclosure, at least as an experiment. Later you can make one out of steel sheet and have a true fire proof printer :)

    Nozzle is sensitive to agressive part cooling. Mine is dressed in a silicone boot that prevents that and ugly black deposits all over the block. If you model your hotend I can mould one for you when I do the next batch.

    1. I like the silicone boot idea. There’s already a silicone-and-fiberglass sleeve around the hot end, with the nozzle extending below:
      Makergear M2 V4 hot end

      I (think I still) have some high-temperature RTV silicone around here, so I can try molding a nozzle shield as part of the aquarium pump upgrade. May take a while, though, as I’ve been avoiding some must-do things. [mutter]

  3. That nozzle looks absolutly HUGE so it can probably withstand quite a bit of airflow. What hotend is that?
    My E3D v6 nozzles are much smaller (7mm across the flats hex).

    Take care with molding RTV, as it releases acid during cure which attacks copper and aluminium. I printed the moulds because of that. At first I couldn’t get silicone to release from the plastic, but coating it in plain dish soap solved that and reduced the cure time significantly. Grant Thompson (aka King of random of Youtube fame) mixed RTV with food coloring and got very fast cure times on account of water in the coloring so just adding a few drops of water might do the trick.

    1. It’s the stock Makergear V4, with 11 mm flats tucked up inside the sleeve.

      A simple mold should work better than just buttering up the snout with a thin layer of silicone, although I doubt the acetic acid will do more than tarnish the (already crusty) brass. Nothing like a good new project to distract me from all the other projects …

  4. Definitely go with both inner and outer mold and clamp them together (I’ve put a screw through the nozzle opening). There’s no way to get anything resembling smooth surface othervise. I left a hole in the outer mold and injected silicone straight from the tube until it started coming out the other way. No trapped air bubbles that way. Took six iterations to get the e3d block moulded correctly and separator to actually separate :)

Comments are closed.