An octet of Eneloop AAA cells arrived, I wanted to measure their as-delivered charge (the package says “Factory Charged With SOLAR ENERGY”, so you know it’s good), and discovered I’d given away my AAA cell holders. You can actually get inter-series adapters on eBay, but what’s the fun in that? Plus, I didn’t want to delay gratification for a month; you know how it is.
Soooo:

It’s basically an AA-size sleeve that fits over the AAA cell, with a lathe-turned brass post conducting juice from the + terminal of the inner cell outward:

Not much to look at when it’s assembled:

The AAA cell fits deliberately loose, because this goes into a metal clip holding everything firmly in place for the battery tester:

The source code tabulates the sizes of several cylindrical cells, exactly zero other pairs of which have been tested; I expect most won’t work correctly. In particular, the table entries should include the contact button OD and thickness for each cell, so that I can turn out the proper terminal for each pair of cells. If I ever need a different adapter, I’ll beat some cooperation out of that, too.
Discovered I needed an adapter after breakfast, started testing cells after lunch. Life is good!
The OpenSCAD source code as a GitHub Gist:
// Cylindrical cell adapters | |
// Ed Nisley KE4ZNU April 2017 | |
//- Extrusion parameters must match reality! | |
ThreadThick = 0.25; | |
ThreadWidth = 0.40; | |
HoleWindage = 0.2; | |
Protrusion = 0.1; // make holes end cleanly | |
inch = 25.4; | |
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit); | |
//---------------------- | |
// Dimensions | |
OutCell = "AA"; // cell sizes | |
InCell = "AAA"; | |
BottomClear = 3*ThreadThick; // shorten outer shell to allow base protrusion | |
Terminal = [3.0,4.0,2.0]; // terminal: OD = nub dia, length = nub thickness | |
NAME = 0; | |
ID = 0; // for non-cell cylinders | |
OD = 1; | |
LENGTH = 2; | |
Cells = [ | |
["AAAA",8.3,42.5], | |
["AAA",10.5,44.5], | |
["AA",14.5,50.5], | |
["C",26.2,50], | |
["D",34.2,61.5], | |
["A23",10.3,28.5], | |
["CR123",17.0,34.5], | |
["18650",18.6,65.2] | |
]; | |
Outer = search([OutCell],Cells,1,0)[0]; | |
Inner = search([InCell],Cells,1,0)[0]; | |
echo(str("Outer cell: ",Cells[Outer][NAME])); | |
echo(str("Inner cell: ",Cells[Inner][NAME])); | |
echo(str("Wall: ",Cells[Outer][OD] - (Cells[Inner][OD]/cos(180/NumSides) + 2*ThreadWidth))); | |
Delta = Cells[Outer][LENGTH] - Cells[Inner][LENGTH]; | |
echo(str("Terminal OAL: ",Delta)); | |
echo(str(" ... head: ",Terminal[LENGTH])); | |
echo(str(" ... shaft: ",Delta - Terminal[LENGTH])); | |
NumSides = 3*4; | |
//---------------------- | |
// Useful routines | |
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=(FixDia + HoleWindage)/2,h=Height,$fn=Sides); | |
} | |
//---------------------- | |
// Construct adapter | |
module Adapter() { | |
difference() { | |
cylinder(d=Cells[Outer][OD], | |
h=Cells[Outer][LENGTH] - BottomClear - Terminal[LENGTH], | |
$fn=NumSides); | |
translate([0,0,Delta - Terminal[LENGTH]]) | |
PolyCyl(Cells[Inner][OD] + 2*ThreadWidth, | |
Cells[Inner][LENGTH] + Protrusion, | |
NumSides); | |
translate([0,0,-Protrusion]) | |
PolyCyl(Terminal[ID], | |
2*Cells[Outer][LENGTH], | |
6); | |
} | |
} | |
//---------------------- | |
// Build it | |
Adapter(); |
The original doodle:

Thanks! Downloaded your code, changed two lines, sent it to OctoPi, and printed two AA→C adapters. Add a couple of known-good-ish AA rechargeables and a wodge of tinfoil, and a Mag-lite 2C that someone threw out at a local electronics recycling event came alive again. It’s not going to be my real-emergency torch, but it’s another handy light source. May even spring for an LED conversion at some point.
Gotta ask, though – and I’m sure you do this for a good reason – why the low-poly cylinders? They work, but they’ve got that AutoCAD circa 1989 look to ’em.
Hokey Smoke! That actually worked‽ Living in the future is wonderful!
Keeps ’em from rolling off the desk …
Plus, the way I see it, there’s no use pretending they’re any fancier than they really are; that hand-knitted 3D printer look is a stylin’ thing. [grin]
Yep, they worked. Mag-lite barrel to adapter fit is sliding, with just enough catch to stop them falling out. AA to adapter fit is very loose, but more than made up for the extra length of 2×AAs vs 2×Cs. I may have to scrag the spring a bit to ease off the pressure on the cells.
And yes, not rolling off the desk is the best reason possible.