BetaFlight FPV Camera Control (Joystick Emulation), les différentes méthodes

Les caméras FPV offrent plus ou moins de réglages en fonction des modèles. Certaines (comme la RunCam Sparrow) permettent même d’appliquer des préréglages adaptés à différents environnements d’un simple appui sur un bouton. Dans tous les cas de figures, il faut avoir accès à la caméra (en y branchant bien souvent une petite télécommande) pour effectuer les différents paramétrages.

Depuis peu, BetaFlight permet de modifier ces réglages en passant par le contrôleur de vol. Il existe 3 méthodes. Je vais vous détailler la plus simple en vidéo et survoler les 2 autres ci-dessous à l’écrit.

La méthode « Joystick Emulation »

En connectant la prise dédiée à la télécommande (joystick) de la caméra FPV à la FC on peut piloter l’OSD avec la radiocommande sous quelques conditions. Avec gaz à la moitié et yaw à droite on valide les options, avec l’axe pitch on monte et on descend dans les menus tandis qu’avec le roll on va de gauche à droite.

La version simple

Certaines cartes de vol comme la Foxeer F405 AIO disposent d’un port dédié au contrôle de la caméra FPV, généralement labellisé « cc ». Chez Foxeer il suffit de souder le fil OSD de la caméra (qui doit être une Predator v2, une Arrow Pro ou une Monster Pro) pour que ça fonctionne sans aucune autre manipulation :

En modifiant les paramètres « camera_control_internal_resistance » et « camera_control_ref_voltage » en CLI il y a certainement moyen que ça fonctionne avec d’autres marques (RunCam et Caddx typiquement). J’ai prévu de faire quelques tests à ce sujet, je mettrai à jour cet article s’ils sont concluants.

La version compliquée

Le déploiement initial de cette fonctionnalité est très bien détaillé sur cette page du Github BetaFlight. Elle est cependant relativement pénible à mettre en place. En effet, il faut déjà trouver un port libre pour le fil de l’OSD de la caméra. Ce peut soit être un UART, soit une sortie moteur, LED ou autre. Dans ce dernier cas de figure il faut « remaper » la sortie en CLI avec la commande « resource ». Ensuite, en fonction des modèles de caméras, il faut mettre une résistance (entre 150ohm et 600ohm) sur le lien caméra / FC. Pour finir, il faut définir 4 paramètres en CLI :

camera_control_mode = HARDWARE_PWM
Allowed values: HARDWARE_PWM, SOFTWARE_PWM, DAC

camera_control_ref_voltage = 330
Allowed range: 200 - 400

camera_control_key_delay = 180
Allowed range: 100 - 500

camera_control_internal_resistance = 470
Allowed range: 10 - 1000

 

La tension de référence (ref_voltage) doit être mesurée entre les PINs OSD et GND de la caméra lorsqu’elle est alimentée. Pour le reste tout est expliqué dans la documentation. Il y a également un paquet d’informations sur le topic RC Groups.

La méthode UART

Cette méthode est pour l’instant spécifique à RunCam et fonctionne à partir de BetaFlight 3.3. Elle est presque aussi simple à mettre en oeuvre que la version OSD de Foxeer. Il y a 2 fils à souder (Tx et Rx) au lieu d’une seul et un paramètre à activer sous BetaFlight (dans l’onglet port) au lieu d’aucun :

betaflight runcam control

Tout est également très bien expliqué sur la page officielle du protocole.

Outre la simplicité de cette solution, elle devrait permettre, à terme, d’avoir d’autres options de contrôles. Je pense (et j’espère) notamment aux scripts LUA et à l’OSD actif de BF. Par contre, du côté des points négatifs, elle monopolise un port UART.

Quitter la version mobile