-
Bafang BBS02: Drop-bar Display Adapter
All of the Bafang BBS02 displays have a compression clamp intended for more-or-less standard 22.2 mm handlebars, as found on typical upright BMX-ish bikes suitable for conversion to e-bikes and, oddly, our Tour Easy recumbents. My friend’s bike has drop-bar handlebars with a 25.4 mm (yes, exactly 1 inch) center section that just isn’t going to fit through that hole.
The least awful solution involved summoning an adapter from the vasty digital deep:

Display adapter mount – solid model The hole clamps around the handlebar with an M3 SHCS pulling it snug and the display clamps around the peg to hold everything together:

Bafang Display adapter – front view There’s not much to see from the side:

Bafang Display adapter – left view Those scuffs arrived on the protective plastic film!
The OpenSCAD source code includes some cruft from an idea that didn’t work out quite right:
HandlebarMax = 1*inch; // middle handlebar diameter HandlebarMin = 24.0; // .. tape section BafangClampID = 22.3; // new handlebar diameter … snippage … // Handlebar mount for controller module DispMount() { ClampRing = [HandlebarMax,HandlebarMax + 2*WallThick,10.0]; ClampOffset = (HandlebarMax + BafangClampID)/2 + 6.0; DispStudLenth = 16.5; NumSides = 24; Tilt = 0*atan2((ClampRing[OD] - BafangClampID)/2,ClampOffset); echo(str("Tilt: ",Tilt)); difference() { union() { hull() { cylinder(d=ClampRing[OD],h=ClampRing[LENGTH],$fn=NumSides); translate([0,ClampOffset,0]) cylinder(d=BafangClampID,h=ClampRing[LENGTH],$fn=NumSides); } translate([0,ClampOffset,0]) cylinder(d=BafangClampID,h=ClampRing[LENGTH] + DispStudLenth,$fn=NumSides); translate([-ClampRing[ID]/4,-(ClampRing[OD]/2),ClampRing[LENGTH]/2]) rotate([0,90,0]) rotate(180/8) cylinder(d=ClampRing[LENGTH]/cos(180/8),h=ClampRing[ID]/2,$fn=8); } cube([Kerf,4*ClampOffset,4*DispStudLenth],center=true); translate([0,0,-Protrusion]) cylinder(d=ClampRing[ID],h=ClampRing[LENGTH] + 2*Protrusion,$fn=NumSides); translate([-ClampRing[ID]/2,-(ClampRing[OD]/2),ClampRing[LENGTH]/2]) rotate([0,90,0]) rotate(180/8) PolyCyl(Screw3[ID],ClampRing[ID],8); for (i=[-1,1]) translate([i*ClampRing[ID]/4,-(ClampRing[OD]/2),ClampRing[LENGTH]/2]) rotate([0,i*90,0]) rotate(180/8) PolyCyl(Washer3[OD],ClampRing[ID],$fn=8); translate([-5,25,EmbossDepth/2 - Protrusion/2]) rotate(Tilt) cube([4.5,21.5,EmbossDepth + Protrusion],center=true); } translate([-5,25,0]) linear_extrude(height=EmbossDepth) rotate(90 + Tilt) mirror([0,1,0]) text(text="KE4ZNU",size=3.3,spacing=1.05,font="Bitstream Vera Sans:style=Bold", halign="center",valign="center"); }It’s rock-solid stable: pushing the buttons doesn’t budge it in the least.