The Terry Symmetry’s rear shift cable passes along the side of the downtube and through a plastic guide channel under the bottom bracket shell. The Bafang BBS02 motor must press against the bottom of the downtube, so the shift cable rubs against the top of the motor.
The solution is a small block shaped around the point of contact to cradle the downtube, the bottom bracket shell lug, and the motor case:

A strip of double-sided foam tape holds the block to the motor and the reaction force from the motor’s torque presses the block against the downtube:

Seen from the other side, looking parallel to the shift cable, you can see the tight clearance:

The block holds the motor 8 mm from the downtube, just enough to give the cable some breathing room.
The block is slightly taller on its front end, because the motor doesn’t meet the downtube at a right angle:

I determined the proper angle by taping waxed paper to the top of the motor, sticking a trial (non-angled) block to the downtube, coating its bottom surface with hot-melt glue, then squishing the motor against the block. The cooled glue was flush with the block on the rear and 1.8 mm thick on the front, a 5° angle over the 20 mm block.
Definitely easier than correctly figuring the geometry from first principles: tweak the model to include the measured thickness, compute the angle, tilt the tube, and print another block that fits like it grew there.
With the block in place and the motor held against the downtube, tighten the retaining nut against the “fixing plate” by giving it a few gentle whacks with a hammer, then tighten the jam nut.
The OpenSCAD source code snippet:
// Motor Reaction Block
// Holds motor away from downtube enough to miss rear shift wire
MotorOD = 111; // motor frame dia
MotorMountRad = 85; // BB spindle center to motor center
Space = 8.0; // motor to frame space
Spacer = [20.0,DownTube[ID]/2,4*Space];
SpaceAngle = atan(1.8/Spacer.x); // tilt due to non-right-angle meeting
echo(str("Spacer angle: ",SpaceAngle));
module MotorSpacer() {
difference() {
cube(Spacer,center=true);
translate([0,0,DownTube[ID]/2])
rotate([0,90 + SpaceAngle,0]) rotate(180/FrameSides)
cylinder(d=DownTube[ID],h=DownTube[LENGTH],$fn=FrameSides,center=true);
translate([DownTube[LENGTH]/2,0,DownTube[ID]/2 - DownTube[LENGTH]*sin(SpaceAngle)/2]) // concentric with ID
rotate([0,90 + SpaceAngle,0]) rotate(180/FrameSides)
cylinder(d=DownTube[OD],h=DownTube[LENGTH],$fn=FrameSides,center=true);
translate([0,0,-(MotorOD/2 + Space)])
rotate([90,0,0]) rotate(180/48)
cylinder(d=MotorOD,h=2*Spacer.y,$fn=48,center=true);
}
}
Mary’s Tour Easy didn’t need this block, because all the cables run elsewhere, but I did capture a piece of closed-cell foam between its vestigial downtube and the motor to prevent chafing.
One thought on “Bafang BBS02: Motor Reaction Spacer”
Comments are closed.