-======Solved=========- Servo and esc debugging help please

I have noticed an lack of training equipment for young kids to teach them, how to pilot a hobby grade RC the Idea is to create a 4 button remote small enough for my 3 year old daughter to hold and simplify the interface giving clearer indication of how to control vs a pistol grip transmitter

to that end ive Made a remote and receiver using an NRF24l01+ set for communication it works correctly with the exception of 2 small snags, and would like some help debugging if possible. the incorrect behavior i am experiencing is this, The steering works correctly when turning Left, I.E. writing servo angle 170 then it correctly returns when button is released returning to servo angle 100 the first problem is with servo angles less than 90, when right turning the servo moves to the angle, then bounces back about 5- 15 degrees and repeats this until button is released, but then will correctly return to angle 100 the second problem is very similar to the steering issue, but instead for Reverse, which causes the Vehicle to twitch regardless of the set angle but forward works perfectly fine. ESC has been calibrated

here is the code both remote and receiver

remote code

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

RF24 radio(3,2);

uint8_t data[2] ; 
const uint8_t buffer_size = sizeof(data);
const int ForwardButton =6;//6
const int ReverseButton= 7 ;//7
const int RightButton =9;//9
const int LeftButton =8 ;//8
int forwardpressed =0;
int reversepressed =0;
int leftpressed =0;
int rightpressed =0;
const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void)
{

  Serial.begin(9600);

  radio.begin();

  radio.openWritingPipe(pipe);
 
  radio.printDetails();

 pinMode(ForwardButton,INPUT);
 pinMode(ReverseButton,INPUT);
 pinMode(RightButton,INPUT);
 pinMode(LeftButton,INPUT); 
digitalWrite(ForwardButton,HIGH);
digitalWrite(ReverseButton,HIGH);
digitalWrite(RightButton,HIGH);
digitalWrite(LeftButton,HIGH);
}



void loop(void)
{

if (digitalRead(ForwardButton)== LOW){
    data[0]=13;
    forwardpressed =1;
    radio.write( data, buffer_size );
    Serial.print("Forward ");
}
else if (forwardpressed =1) {
    data[0]=9;
    forwardpressed = 1;
    radio.write( data, buffer_size );
    Serial.print("Stop ");
}

if (digitalRead(ReverseButton)== LOW){
    data[0]=2;
    reversepressed = 1;
    radio.write( data, buffer_size );
    Serial.print("Reverse ");
}
else if (reversepressed =1) {
    data[0]=9;
    reversepressed =0;
    radio.write( data, buffer_size );
    Serial.print("Stop ");
} 

if (digitalRead(LeftButton)== LOW){
    data[1]=17;
    radio.write( data, buffer_size );
    leftpressed =1;
    Serial.print("Left ");
}
else if (leftpressed =1) {
    data[1]=8;
    leftpressed =0;
    radio.write( data, buffer_size );
    Serial.print("Ahead ");
} 

if (digitalRead(RightButton)== LOW){
    data[1]=5;
    radio.write( data, buffer_size );
    rightpressed =1;
    Serial.print("Right ");
}
  else if (rightpressed =1){
    data[1]=8;
    radio.write( data, buffer_size );
    rightpressed = 0;
    Serial.print("Ahead ");
} 
   

}
#include <Servo.h> 
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

RF24 radio(9,10);

Servo servo; 
Servo motor; 


const uint64_t pipe = 0xE8E8F0F0E1LL;

uint8_t received_data[2];
uint8_t num_received_data =sizeof(received_data);

void setup(void)
{

Serial.begin (9600);
motor.attach(6);
servo.attach(3);

//first time esc calibration only
//delay(100);
//motor.write(10);
//delay(1500);
//motor.write(180);
//delay(1500);
//motor.write(90);
//delay(1500);
//motor.write(170);

  Serial.begin(57600);
  
  radio.begin(); 
  radio.openReadingPipe(1,pipe);
  radio.startListening();
  
  radio.printDetails(); 
}


void loop(void)
{
  
  if ( radio.available() )
  {
    bool done = false;
    int ESC_value;
    int servo_value;
    while (!done)
    {
      done = radio.read( received_data, num_received_data );
      ESC_value=received_data[0]*10; 
      motor.write(ESC_value);
  servo_value= received_data[1]*10;
      servo.write(servo_value);
     
    }
  }
}

I'm not sure if this is the problem, but you might want to check over your "else if" cases. First you have this

else if (forwardpressed =1) {
    data[0]=9;
    forwardpressed = 1;
    radio.write( data, buffer_size );
    Serial.print("Stop ");
}

Which will always execute because the first line there assigns the value 1 to forwardpressed. I'm guessing that's not the intent, since you then set forwardpressed = 1 on the third line as well. And then the rest of the cases are similar, except setting their variables to 0 on the third line. Is forwardpressed supposed to be different, or is that a mistake?

thanks for the reply, I did not notice that one, it was the cause of the bugged reverse , for the Steering I commented out the broadcast statements in the else if's and the bouncing stopped and the reverse now works normally

issues solved