Blog Home

Add ML-controlled smart suspension adjustment to your bicycle

Arduino TeamSeptember 29th, 2022

Some modern cars, trucks, and SUVs have smart active suspension systems that can adjust to different terrain conditions. They adjust in real-time to maintain safety or performance. But they tend to only come on high-end vehicles because they’re expensive, complicated, and add weight. That’s why it is so impressive that Jallson Suryo was able to add a similar smart suspension adjustment system to his bicycle.

This system will only work on specific bicycles that have suspension forks that the user can adjust with a knob. A servo-driven mechanism mounts onto the fork and turns the knob to tweak the firmness and rebound of the front suspension. Normally the rider would need to stop and turn that knob by hand when necessary, but this system can perform that adjustment automatically in response to the current conditions. It can recognize and accommodate five different conditions: idle, medium, rough, smooth, and sprint. 

Suryo’s project is especially interesting because it recognizes the conditions with a machine learning model that monitors an Arduino Nano 33 BLE Sense board’s built-in nine-axis inertial sensor. Suryo didn’t have to program explicit sensor reading classifications. He trained the machine learning model, built with Edge Impulse Studio, on real-world data gathered through the Arduino Science Journal app. He could, for example, ride on a rough trail and tell the model that the inertial sensor readings it sees correspond to that mode.

The Arduino receives power from a lithium battery via a SparkFun charger/booster board. It runs the trained and deployed Edge Impulse ML model. When it detects inertial sensor readings that indicate a specific terrain or action, it turns the servo to adjust the suspension knob to the ideal setting.