One Button Servo Suspension Lockout
by jbike in Circuits > Arduino
1782 Views, 4 Favorites, 0 Comments
One Button Servo Suspension Lockout
Full suspension mountain bikes provide smooth ride, but often require locking out the suspension when pedaling uphill. Otherwise, the suspension compresses as you stand on the pedals, wasting that effort. The bike manufacturers know this, and provide a manual means to lock out the suspension. I have to link YouTube here since the instructables video embed function no longer works for me. See video at https://youtu.be/abODdr9nxzQ
Unfortunately, it is near impossible to find and operate the two lockout levers while simultaneously riding the bike one handed, bumping over rocky terrain, and still watch the road ahead. Thus, the need for a one button servo activated lockout system. Just press the easily reachable button, and the servos take care of the operation. I have tried to keep the system as simple as possible, but it still requires a 3D printer to make the parts, two servos, an Arduino and a USB power supply or battery bank. My bike is a 2012 Cannondale RZ120.
Parts
AGFRC Micro 9g Servo
servo opto isolator (damps signal noise from long servo lead) Sparkfun or homemade
Tower Pro MG-996R servo
Arduino Pro Mini
Flat Telephone extension cable (standard 4 conductor)
surface mount LED indicator
surface mount 100 ohm resistor
surface mount pushbutton
surface mount P Mosfet (2) AO3041
Pin headers
small piece of perfboard
3D printed servo adapters, 3D printed box for Pro Mini
USB type A cable, clipped to provide power for Pro Mini and servos
USB battery bank (or on my eBike, is the USB output from the battery)
Construction
Print the 3D parts. Make sure they fit your mountain bike, mine is a 2012 Cannondale RZ120. Remove the front shock cutout lever circlip and lever. The front servo adapter relies on a tight fit between the 8 sided plastic nut of the shock (cut out actuator) and the adapter- the more sides on the nut, the more important the fit be tight to prevent slippage. Slightly below the 8 sided nut is the thin fixed 6 sided nut of the shock, which also needs a tight fit, but more because it secures the adapter housing and servo to the shock and resists the turning force of the servo. Warning: if the front servo comes off while riding, there is a possibility that it could become stuck between the frame and front fork, causing a crash resulting in injury or death. The MG996R servo can use a 20 mm round servo horn, though it probably could also use one of the stock horns included with the servo if clipped to size and screwed to the top of the cylindrical 3D printed 8 sided socket. Screw the servo horn to the 8 sided adapter with 4 screws. The servo and adapter should fit snugly on the shock cut out. If you have an inexpensive servo tester, power it up and see that you can lock/unlock the shock.
The rear adapter uses a light duty SG-90 servo. Remove the screw holding the lever to the rear shock and remove the lever, but leave the large knurled rebound rate knob in place. Install the 3D printed servo to shock shaft adapter (it has a Torx style socket to fit the shaft; slightly heat the adapter then press it on to the shaft). Secure the adapter body to the shock with a nut and bolt. Because the long rear servo lead picks up noise from the servo motor, I used a homemade opto isolator consisting of a TIL119 darlington optoisolator and a surface mount N MOSFET (to invert the data signal back to original). Sparkfun sells one for $4, so time wise that is a better part. Test with the servo tester to see if the the lock/unlock function works correctly. Note that I reversed my shock on the frame before installation to fit other components in the center triangle (manual says it is OK to do so). Install some telephone extension cable between the Pro mini and servo.
Program the Arduino Pro Mini with the code provided. Wire according to the wiring diagram- note that I used a small piece of perfboard to mount the 2 surface mount MOSFETS and the servo pins, which requires a bit of delicate soldering since the MOSFETs have smaller pin spacing than the perfboard copper pad spacing. I was able to position the MOSFETs at an angle between copper pads, with the source of both MOSFETs soldered together (for the 5 volt supply). The drain connections go to power the servos (middle pins). The gates go to pins on the Pro Mini, so that the power can be turned off to each servo to save power between actuations.
Use the 4 conductor telephone cable from the Pro Mini to the handlebar mounted push button and indicator light. The button can be soldered directly to the wires (with care), as can the surface mount LED. At the Pro Mini, be sure to solder the wire to the surface mount 100 ohm resistor first, then the resistor to the indicator pin 13. The two ground wires attach to a ground pin, and the button wire attaches to the interrupt pin 2.
I mounted the 3D printed enclosure for the Pro Mini on the front of my eBike battery with thick double sided tape, and cut a slot for the wires. Test the operation of the system.
Conclusion
The lockout/unlock works well. Things that I might improve is getting a better button, the used one I installed is a bit too small. The surface mount yellow LED lock indicator is quite bright, even in sunlight.
I made the front servo housing better by adding housing cutouts so you can see the servo in operation (I marked the servo adapter with white paint to see it move). The cutouts make it look interesting. I also changed the rear servo to a stronger version all metal gear SG-90, with more torque, and changed the Knurled rear servo adapter to a shorter design which fits more securely, which required a shorter rear servo to shock mount adapter .