The SX230HS camera lives in my pants pocket, where it gets pressed between my leg and anything I lean against. Turns out that the lens turret end cap isn’t quite thick enough to not bend inward against the leaves that cover the lens, which causes them to hang up. The solution boils down to a hideous external lens cap:

It’s built from forget-me-not yellow filament for an obvious reason…
The sheet-metal plate bears against the non-moving rim around the turret. I marked the plate’s diameter with a compass, extracted it from the sheet with left-cutting tin snips, filed off the slivers, rounded the edge, and it snapped right into the recess where a touch of acrylic caulk holds it firmly in place.
A thin plastic cover would be too flexible and a thicker plastic cover would be too thick; this must fit into an already-snug cloth pouch where a few additional millimeters of girth actually matter. My previous camera taught me that pocket fuzz gets into everything, so a pouch isn’t optional.
The interior isn’t too inspiring, but you can see what two layers of plastic look like across the bottom:

The front has the shallow recess that captures the metal plate. Because the front builds against the aluminum build platform, I added a support structure inside the recess:

The solid model gives a better view:

It’s basically a ring with tabs under the recess. The ring OD matches the lens caps’s ID, with a height equal to the recess depth, so only the tabs contact the cap. I removed them by twisting each tab with a needle-nose pliers until the whole thing popped loose:

A bit of scraper and scalpel cleanup and it’s all good. The detail pix show the first trial of the lens cap, which lacks the nice bevel around the front rim.
The camera is smart enough to notice when something blocks the lens: it immediately shuts down and displays a lens failure error message. That’s probably not a Good Thing on a regular basis, but it doesn’t seem to do any harm.
FWIW, my previous pocket camera, a Casio EX-Z850 , sported a recessed and somewhat thicker turret end cap that didn’t have this problem. Mary says she’ll make a case for this camera, too, but until then I’m using a pouch from a dinky VOIP phone that just barely holds the camera.
The OpenSCAD source code:
// Lens cap for Canon SX230HS // Ed Nisley KE4ZNU - Nov 2011 //------- //- Extrusion parameters must match reality! // Print with +1 shells, 3 solid layers, 0.2 infill ThreadThick = 0.33; ThreadWidth = 2.0 * ThreadThick; HoleFinagle = 0.20; HoleFudge = 1.00; function HoleAdjust(Diameter) = HoleFudge*Diameter + HoleFinagle; Protrusion = 0.1; // make holes end cleanly function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit); //------- // Dimensions LensDia = 53.0; LensRad = LensDia/2; LensLength = 8.0; PlateThick = IntegerMultiple(0.75,ThreadThick); PlateDia = 48.0; Shell = 2*ThreadWidth; Spacer = 2*ThreadThick; CapOD = LensDia + 2*Shell; CapLength = LensLength + Spacer + PlateThick; CapSides = 48; CenterHoleDia = 44.0; BevelWidth = PlateThick; NumStruts = 16; SupportStrutLen = (PlateDia - ThreadWidth)/2; // small gap to cap //------- module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2); FixDia = Dia / cos(180/Sides); cylinder(r=HoleAdjust(FixDia)/2,h=Height,$fn=Sides); } module ShowPegGrid(Space = 10.0,Size = 1.0) { Range = floor(50 / Space); for (x=[-Range:Range]) for (y=[-Range:Range]) translate([x*Space,y*Space,Size/2]) %cube(Size,center=true); } //------- ShowPegGrid(); difference() { PolyCyl(CapOD,CapLength,CapSides); translate([0,0,(Spacer + PlateThick)]) // lens shell PolyCyl(LensDia,(LensLength + Protrusion),CapSides); translate([0,0,-Protrusion]) // center hole PolyCyl(CenterHoleDia,(CapLength + Protrusion)); translate([0,0,-Protrusion]) // bevel difference() { cylinder(r=(CapOD/2 + 2*(BevelWidth + Protrusion)), h=(2*BevelWidth + Protrusion), $fn=CapSides); cylinder(r1=(CapOD/2 - BevelWidth - Protrusion), r2=(CapOD/2 + BevelWidth), h=(2*BevelWidth + Protrusion), $fn=CapSides); } difference() { translate([0,0,-Protrusion]) // cover plate recess PolyCyl(PlateDia,(PlateThick + Protrusion)); for (Index=[0:(NumStruts - 1)]) // support struts rotate(Index*360/NumStruts) translate([-ThreadWidth,-SupportStrutLen,0]) cube([2*ThreadWidth,SupportStrutLen,PlateThick]); } } difference() { // support ring PolyCyl(CenterHoleDia,PlateThick); translate([0,0,-Protrusion]) PolyCyl((CenterHoleDia - 4*ThreadWidth),(PlateThick + 2*Protrusion)); }
3 thoughts on “Canon SX230HS Lens Cap”
Comments are closed.