Probleme Servo avec NRF905

Bonjour,

Je construis un bateau RC et je veux concevoir moi même la radiocommande et le récepteur mais je rencontre un problème, le servo ne fonctionne pas malgré la bonne reception des données.
Pour cela j'utilise

Radiocommande:
-arduino nano
-Module NRF905 (868MHz)
-2 joysticks (j'utilise uniquement 1 potard par joystick)
-1 potentiomètre 5k (pour ajuster la direction)

Recepteur:
-arduino uno (pour les tests)
-Module NRF905 (868MHz)
-un servo (modèle 9g)
-ESC (pas encore connecté)

Code TX:

#include <NRF905.h>
#include <SPI.h>
#include <Servo.h>

#define BUF_LEN          2  // Taille du buffer (max 32 octets)
#define CONF_LEN         10
#define NRF905_CSN       10

unsigned char tx_buf[BUF_LEN];
unsigned char read_config_buf[CONF_LEN];

byte tx_address[4]= {0xcc,0xcc,0xcc,0xcc};


int JoystickDir = A1; //joystick direction
int CmdDir;            // valeur recu pour agir sur le servo

void setup()
{
    unsigned char i;    
    pinMode(NRF905_CSN,OUTPUT); //to make sure SPI works    
    nrf905=NRF905(NRF905_CSN);  
    nrf905.init();
    nrf905.write_config(EUROPE);
    nrf905.read_config(read_config_buf);

    Serial.begin(9600);
/** Affiche la config du nRF905 */
    for(i=0; i<10; i++)
    {
        Serial.print(read_config_buf[i],HEX);
        Serial.print(' ');
    }
    
   // tx_buf[12] = '0';
}

void loop()
{    
    CmdDir = analogRead (JoystickDir); // lecture joystick
    CmdDir = map(CmdDir, 0, 1023, 0, 180); // conversion pour controle servo
    tx_buf[1] = CmdDir;      // enregistre la valeur dans le buffer
    nrf905.TX(tx_buf);      // envoie données du buffer
    Serial.println (tx_buf[1]);  // affiche la valeur envoyé 
    delay(50);        
}

Pour le moment je test juste de diriger un servo

Code Rx

#include <Servo.h> 
#include <NRF905.h>
#include <SPI.h>
#define BUF_LEN          2
#define CONF_LEN         10


Servo dir;  
int dirPin =6;
int rxDir;

unsigned char rx_buf[BUF_LEN];
unsigned char read_config_buf[CONF_LEN];
unsigned char rx_address[4]= {0xcc,0xcc,0xcc,0xcc};


void setup() 
{ 

  dir.attach(dirPin);  

  pinMode(10,OUTPUT);
  nrf905=NRF905(10);
  nrf905.init(); 
  nrf905.write_config(EUROPE); 	
  nrf905.read_config(read_config_buf);

  Serial.begin(9600);
  char i;
  /** vérif config NRF905 */
  for(i=0; i<CONF_LEN; i++){
    Serial.print(read_config_buf[i],HEX);
    Serial.print(' ');
  } 
} 

void loop() 
{ 

  nrf905.RX(rx_buf);
  rxDir = rx_buf[1];

  dir.write(rxDir);    // controle du servo
  delay(15);

  Serial.print("Direction =");
  Serial.println(rxDir);
  delay(15);
}

Donc le problème c'est que le servo s'initialise bien mais avec la reception du buffer plus rien ne se passe sur le servo mais la reception est là et varie bien suivant la position du joystick.
J'ai vu un post sur le forum qui traite sur un conflit niveau timer, j'ai cherché dans les librairies que j'utilise mais je vois que la lib servo qui utilise le timer
J'ai malgré tout teste avec la librairie servoTimer2 mais le problème est pire, le programme ne tourne plus...

J'ai bientôt plus de cheveu c'est pour cela que je sollicite la communauté "Help me"

Servo Library uses Timer1. You can’t use PWM on Pin 9, 10 when you use the Servo Library on an Arduino

il faut donc déplacer le NRF

Merci pour ta réponse,

J'ai donc mis en application, j'ai modifier les 2 broches 9 et 10 dans le programme et la librairie, j'ai mis le servo en 9 (modifié le programme en conséquence), j'ai toujours la bonne reception mais le servo ne bouge pas. Quand j'enleve:

 nrf905.RX(rx_buf);
  rxDir = rx_buf[1];

et que je simule rxDir, le servo fonctionne, j'ai pourtant laissé dans le setup le reglage du nrf905.

Je dois laisser les broches 9 et 10 vide ?

Finalement, j'ai compris mon erreur:

#define BUF_LEN          2

J'ai voulu modifier la taille du buffer de 32 octets à 2 (servo + esc) (Grossière erreur)

Merci