-
Cylindrical Cell Adapters
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:

AAA to AA Adapter – top – Slic3r 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:

AAA to AA Adapter – parts Not much to look at when it’s assembled:

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

AAA to AA Adapter – in use 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:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// 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:

AAA to AA Adapter – sketch