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));
}
Comments
3 responses to “Canon SX230HS Lens Cap”
[…] camera case includes a pocket nestling a battery against the camera’s front side, beside the lens cap. The Zire case, well, at some point I suppose I’ll be forced to get a phone… until […]
[…] dropped that lens cap and the sheet-metal disk popped out; evidently the acrylic caulk doesn’t really count as an […]
[…] carry the Canon SX230HS in my pocket, so as to have a decent camera ready when it’s needed; yes, it’s in a […]