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
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
Bafang Display adapter – front view

There’s not much to see from the side:

Bafang Display adapter - left view
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.

Spam comments get trashed, so don't bother. Comment moderation may cause a delay.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s