@@ -577,6 +577,9 @@ static void calculate_setpoint_target(Data *d) {
577577 } else {
578578 d -> setpoint_target = - d -> float_conf .tiltback_duty_angle ;
579579 }
580+ if (d -> suppress_tiltback ) {
581+ d -> setpoint_target = 0 ;
582+ }
580583
581584 // FLYWHEEL relies on the duty pushback mechanism, but we don't
582585 // want to show the pushback alert.
@@ -607,6 +610,9 @@ static void calculate_setpoint_target(Data *d) {
607610 } else {
608611 d -> setpoint_target = - d -> float_conf .tiltback_hv_angle ;
609612 }
613+ if (d -> suppress_tiltback ) {
614+ d -> setpoint_target = 0 ;
615+ }
610616 } else {
611617 // The rider has 5s to react to the triple-beep/haptic
612618 d -> setpoint_target = 0 ;
@@ -633,6 +639,9 @@ static void calculate_setpoint_target(Data *d) {
633639 } else {
634640 d -> setpoint_target = - d -> float_conf .tiltback_lv_angle ;
635641 }
642+ if (d -> suppress_tiltback ) {
643+ d -> setpoint_target = 0 ;
644+ }
636645 d -> state .sat = SAT_PB_TEMPERATURE ;
637646 } else {
638647 // The rider has 1 degree Celsius left before we start tilting back
@@ -648,6 +657,9 @@ static void calculate_setpoint_target(Data *d) {
648657 } else {
649658 d -> setpoint_target = - d -> float_conf .tiltback_lv_angle ;
650659 }
660+ if (d -> suppress_tiltback ) {
661+ d -> setpoint_target = 0 ;
662+ }
651663 d -> state .sat = SAT_PB_TEMPERATURE ;
652664 } else {
653665 // The rider has 1 degree Celsius left before we start tilting back
@@ -670,6 +682,9 @@ static void calculate_setpoint_target(Data *d) {
670682 } else {
671683 d -> setpoint_target = - d -> float_conf .tiltback_lv_angle ;
672684 }
685+ if (d -> suppress_tiltback ) {
686+ d -> setpoint_target = 0 ;
687+ }
673688 d -> state .sat = SAT_PB_TEMPERATURE ;
674689 } else if (d -> motor .duty_cycle > 0.05 &&
675690 (d -> motor .batt_voltage < d -> float_conf .tiltback_lv ||
@@ -696,6 +711,9 @@ static void calculate_setpoint_target(Data *d) {
696711 } else {
697712 d -> setpoint_target = - d -> float_conf .tiltback_lv_angle ;
698713 }
714+ if (d -> suppress_tiltback ) {
715+ d -> setpoint_target = 0 ;
716+ }
699717
700718 d -> state .sat = SAT_PB_LOW_VOLTAGE ;
701719 } else {
@@ -1627,6 +1645,8 @@ static void cmd_runtime_tune_tilt(Data *d, unsigned char *cfg, int len) {
16271645 unsigned int flags = cfg [0 ];
16281646 bool duty_beep = flags & 0x1 ;
16291647 d -> float_conf .is_dutybeep_enabled = duty_beep ;
1648+ d -> haptic_feedback .suppress = flags & 0x2 ;
1649+ d -> suppress_tiltback = flags & 0x4 ;
16301650 float retspeed = cfg [1 ];
16311651 if (retspeed > 0 ) {
16321652 d -> float_conf .tiltback_return_speed = retspeed / 10 ;
0 commit comments