• Radio DIY NextStepRC

    Publication : 12.03.2017, dernière MAJ : 07.02.2021

    A lire SVP : un forum dédié est à votre disposition pour échanger sur cette radio, demander un soutien technique, remonter des bugs ou faire des propositions d'améliorations. N'hésitez pas à en user, chaque point résolu sera capitalisé dans le code et/ou la documentation gérés dans cette page, et donc bénéficiera à l'ensemble des utilisateurs. Cela vous évitera aussi de perdre des heures à parcourir les milliers de messages des différents forums, pour y trouver au final des informations potentiellement disparates, incohérentes et/ou caduques.


    Après sa publication en juin 2015 dans la revue Modèle Magazine (article original ici), relayée notamment sur les forums aéro modélisme.com,  RCGroups, F3News et RC-Network, ainsi que sur les sites de Mousse78,  Alain Audebert et JivaroModels, il était temps de donner un support officiel au projet NextStepRC (mention légales ici).

    Radio DIY   Radio DIY   Radio DIY

    Le principe est celui d'un Lego® : à partir de composants -notamment Arduino- peu onéreux, fiables, faciles à approvisionner et à assembler, permettre la réalisation d'une radiocommande puissante (16 voies, 6 phases de vol, mixages évolués, télémesure, synthèse vocale, etc.), économique (50 à 100€ au total), modulable et personnalisable à volonté (nombre et disposition des organes de commandes totalement libre, par ex.), frugale (consommation < 100 mA hors HF) et adaptable à une grande diversité de besoins (automobiles, bateaux, avions, planeurs, hélicoptères, drones, FPV), le tout reposant sur l'excellente chaîne logicielle OpenTX (standard ou optimisée NextStepRC).

    L'objectif de cette page et de la documentation (cf. ci-dessous) est de regrouper toutes les informations nécessaires pour :

     

    Quelques exemples de réalisation, intégrale ou à partir d'une radio existante :

    Radio DIY   Radio DIY   Radio DIY

    Radio DIY   Radio DIY   Radio DIY

    Radio DIY   Radio DIY   Radio DIY

     

    1. Matériel

    1.1. Carte mère

    Arduino Mega2560 (eBay), Mega2560 ProMini (eBay) ou Mega2560 Pro (AliExpress) :

    Radio DIY   Radio DIY   

    Eviter la version "Core", de mêmes dimensions et tarif que les "Pro" mais dépourvue de régulateur de tension et de port USB. La version "Pro" existe aussi sans port USB (ici), ce qui évite la modification nécessaire pour recevoir les données de télémesure (voir ci-après), la communication avec le PC se faisant via un adaptateur externe USB-TTL (ici ou ici).

    1.2. Ecran LCD

    Format 128x64 pixels, de deux types :

    • Affichage FSTN et interface parallèle 8 bits : Artronic (eBay) ou Zolen (eBay, eBay ou AliExpress) à processeur ST7565 (R ou P, protocole 6800), recommandés car lisibles, rapides et peu gourmands, sinon ST7920 ou KS108.
    • Affichage OLED et port I2C : SSD1306 0.96" (eBay ou AliExpress) ou SH1106 1.3" (ici ou ici), pour les très petites radios.
      Ces écrans peuvent être livrés avec une adresse I2C différente de celle utilisée par NextStepRC (0x78), voici ici un petit outil très pratique pour l'identifier, à reporter ensuite dans le fichier lcd_xxx_driver.cpp correspondant à l'écran situé dans le dossier \sources\targets\common.

    Radio DIY   Radio DIY   


    1.3 Programmateur

    USBASP 5V/3.3V (eBay) et adapteur ISP 6 pins (eBay), servant à la préparation de la carte Mega2560 (optionnel dans certains cas, notamment avec les "Pro" et "ProMini", cf. tutoriel de configuration et flashage) ainsi qu'au dialogue entre Companion et carte mère en l'absence de port USB (mais c'est plus lent) :

    Radio DIY   Radio DIY


    1.4. Module d'émission

    Tout module (41 MHz, 2.4 GHz, etc.) acceptant un signal PPM conviendra. Le retour télémesure est pris en compte, dans les formats suivants : FrSky, Jeti, NMEA, ArduPilot, MAVLink,TelemetrEZ.

    Le module le plus intéressant est le DIY 4 en 1 multi-protocole (Banggood, support de Pascal Langer ici et tutoriel ci-après), qui permet d'utiliser des récepteurs FrSky, Assan, DSM, DSM2, FlySky, etc. (d'origine ou compatibles, type Redcon 4CH6CH et 7CH, MKronRC S603, DIY FrSky 4CHF801 et F802, SkyArea RX-F802, KS-Servo AC410 et AC810, etc.), télémesure incluse. Ce module nécessite (pour être reflashé) un programmateur USBasp 3.3V, d'où l'intérêt de la version polyvalente 3.3V/5V préconisée ci-avant.

    Radio DIY  Radio DIY  Radio DIY  Radio DIY NextStepRC

    NOTA : la liaison entre la carte mère et le module d'émission est de type PPM [amélioré, jusqu'à 2x plus rapide que le PPM standard], qui a été préféré à une liaison série pour sa compatibilité maximale avec les différents modules du commerce, mais aussi pour son isolation (CPU et logicielle) optimale entre composants. Chacun est ainsi doté d'un processeur propre, avec sa mémoire et son firmware (à l'image d'un ordinateur haut de gamme doté d'une carte graphique dédiée), améliorant ainsi la fiabilité et la rapidité du système. Le risque de bug lors d'une mise à jour du module d'émission, comme l'ajout d'un nouveau protocole, est aussi inexistant, le firmware radio n'ayant pas besoin d'être modifié car la communication entre ces deux composants se fait au travers d'un protocole standard et indépendant du protocole d'émission. De plus, cette communication se fait au travers d'un bus dédié (lignes TX PPM + TX/RX télémesure), évitant le partage d'un bus générique (type SPI ou I2C) avec d'autres composants (carte SD, etc.), là aussi au bénéfice de la fiabilité.


    1.5. Organes de commande et de navigation

    • Un à deux manches, voire plus suivant le besoin (7 entrées analogiques sont disponibles : 4 gérés dans l'écran "Manches" (équivalent en plus sophistiqué des traditionnels Expo & Dual-Rate) et les 3 autres en tant que "sources" additionnelles de mixeur. N'importe quel manche de récupération conviendra, attention néanmoins à la qualité : un manche correct doit pouvoir garantir une précision minimale de 0.4% (résolution de 0.4% et neutre répétable à +/-0.2%), contre jusqu'à 2% pour un manche usé ou de mauvaise qualité (potentiellement très gênant pour les applications exigeantes). A noter : certains manches basiques, comme les 9XR peuvent donner de très bons résultats (précision ≤ 0.3% après modification) en améliorant simplement le bridage des potentiomètres, à la colle chaude côté boîtier et par une vis traversante côté axe (voir ici et ici).
      On trouve aussi des manches neufs au détail :
      . FlySky (Banggood) : bon feeling malgré un jeu assez important, assez précis sur l'axe longitudinal ( 0.5%) mais retour au neutre de l'axe latéral très imprécis si on l'accompagne en douceur (2% d'erreur, contre 0.4% max au relâché sec sur les deux axes). Potentiellement un bon sujet d'amélioration, d'autant plus que ce manche est très compact.
      . FrSky de "base" (Banggood) : rapport qualité/prix correct, potentiomètres à assurer sur leurs supports par un point de colle chaude pour améliorer la précision du neutre.
      . FrSky M9 à effet Hall (Banggood) : à alimenter en 3.3V (et non en 5V comme un manche classique), feeling assez ferme même avec ressorts détendus au maximum, utilisable tel quel (précision autour de 0.4%) ou avec carte ampli-op 5V (cf. schéma ci-après, à modifier légèrement : shunter R6 côté Vcc, pour avoir Vs=Ve(1+R2/R6), la précision passant à environ 0.2 - 0.3%). Si besoin d'inverser le sens (+100% vers la droite en latéral et vers l'avant en longitudinal) : l'alimentation du capteur hall n'est pas réversible, c'est l'aimant fixé en bout d'axe qu'il faut retourner.
      . Hitec Aurora 9 (RobotShop) : le plus agréable et le plus précis du marché, utilisable tel quel (précision ≤ 0.2%) ou avec ampli-op (précision ≤ 0.1%).
    • Des boutons de navigation et trims : soit 2 axes (mini joystick de navigation 4 ou 5 voies, ici ou ici) soit boutons poussoirs individuels (ici).
    • Des interrupteurs 2 ou 3 pôles à levier : des (jusqu'à 5 suivant le besoin) "2 positions on-on SPDT" (switch D/R, etc.), un "3 positions on-off-on 3PDT" (switch ID0/1/2) et un "1 position on-(on) SPST" (switch TRN), pouvant avantageusement être remplacé par un simple bouton poussoir, nettement moins cher.

              Radio DIY  Radio DIY  Radio DIY  Radio DIY


    1.6. Périphériques et accessoires

    • Un interrupteur principal (à poussoir, à glissière ou à bascule).
    • Un accu de réception 2S LiPo ou, mieux, Li-Ion (format 18650, type Samsung ICR ou Sony VTC5).
    • Un buzzer (haut-parleur piezo avec électronique intégrée) ou un haut-parleur piezo simple (à utiliser avec l'option de compilation "audio").

              Radio DIY   Radio DIY   Radio DIY

    • Du câble souple, type nappe informatique (à réserver uniquement aux composants statiques, ces câbles ne conviennent pas aux manches) ou du câble fin et souple pour servo (ici) et des connecteurs au pas de 2.54 mm. Du fil émaillé, de préférence soudable (vernis polyuréthane classe F ou moins, soit 180 °C max) pour permettre une soudure directe sans décapage ni étamage, et d'un diamètre de 0.3 à 0.4, mm est aussi une bonne solution et permet une installation très fiable et bien organisée, sans fils qui "traînent" un peu partout.
    • Un boîtier de récupération ou fait maison (bois, tôle, composite, impression 3D, etc.).

     

    1.7. Boîtier

    Tout les modes de réalisation sont possibles : contre-plaqué, stratification fibre sur moule perdu ou en dur, impression 3D, etc. Utiliser un boîtier de récupération issu d'une vielle radio, voire détourner une radiocommande neuve, est une solution potentiellement économique en temps et en argent (mais sans le plaisir de faire son propre boîtier !). Quelques bases correctes : HobbyKing HK6S, FlySky FS-i4, FlySky FS-i6. Dans certains cas, le module d'émission d'origine est directement utilisable (acceptant un signal PPM), comme par exemple sur la DX5e.

     

    2. Quelques recommandations

    2.1. Câblage

    Toujours penser simplicité et fiabilité : tous les câblages se feront directement de carte (ou composant) à carte, sans circuit imprimé ni "shield", en soignant les connecteurs quand il y en a (typiquement en assurant la liaison fil / connecteur avec de la gaine thermorétractable ou de la colle chaude). Avantage d'un câblage "volant" : une modification du circuit se fait sans aucun contrainte, lors de l'ajout de nouveaux composants ou bien lors d'une évolution des connections (par ex., modification de l'affectation des pinoches de la synthèse vocale).

    Deux options pour la réalisation du câblage : soit avec des connecteurs au pas de 2.54 mm (pour carte M2560 standard), en étant vigilant à la qualité des soudures et à leur protection (gaine thermo ou colle chaude), soit en soudant directement les fils (émaillés de préférence, éviter les câbles souples qui tirent sur les soudures) sur la carte.

    2.2. Utilité de certaines extensions 

    Si la carte Mega2560 supporte de nombreuses extensions (encodeurs rotatifs, amplificateurs de manche, synthèse vocale, gestion PPM, etc., voir dossier ci-après) développés dans le cadre du projet NextStepRC, il n'est plus aujourd'hui judicieux de toutes les utiliser. En effet :

    • L'évolution d'OpenTX rend certaines fonctions inutiles ou redondantes, comme les encodeurs rotatifs (avantageusement remplaçables par les trims de manches, via une « fonction spéciale », qui les détournera temporairement).
    • Le schéma initial prévoyait des filtres anti-rebond (couple résistance + condensateur) pour les interrupteurs, ainsi que des amplificateurs de tension pour les manches, mais l'expérience montre qu'ils sont superflus, le filtrage logiciel étant nécessaire et suffisant.
    • Les lignes de commandes vers les périphériques 3.3V (LCD, module vocal) peuvent être protégées par une simple résistance de 1 kohms en série sur la ligne, au lieu d'un pont diviseur de tension sur un circuit imprimé.
    • Les fonctions comme l'écolage peuvent être directement câblées sur la carte (voir schéma électronique), sans passer par un circuit dédié. Là aussi, la solution la plus simple est la meilleure.

    A retenir : mis à part l'écran et le clavier, aucun accessoire n'est indispensable, on ne peut utiliser qu'un seul manche, aucun interrupteur, etc. suivant le besoin.

    2.3. Options recommandées

    • Carte ampli-op : permet de tirer le meilleur parti des manches FrSky à effet hall et des Hitec Aurora9.
    • Synthèse vocale : pour l'annonce d'une tension d'accu, d'un chrono, d'une donnée de télémesure, etc., via un module JQ5000-28P + carte micro SD de petite capacité (autre lien ici) + haut-parleur 8Ω Ø28mm (voir tutoriel ci-après pour le câblage et l'utilisation).
      NOTA 02.06.2019 : le JQ5000-16P (moins de 2€, avec mémoire intégrée, plus besoin de carte SD) est opérationnel grâce à la contribution de Patrick Pollet, un grand MERCI à lui !
    • Interface sd-card : pour la sauvegarde des modèles et leur échange au terrain [avec d'autres radio identiques], plus l'enregistrement de la télémesure (activer l'option "SDCARD" à la compilation du firmware). via un lecteur de carte SD (plus une carte micro SD dédiée).

              Radio DIY   Radio DIY   Radio DIY

     

    3. Réalisation

    3.1. Code source, programmes associés et documentation

    OpenTX 2.1.10 NSRC (sources + compilateur + Companion + Simulateur + documentation) : ici (MAJ du 13.09.2020).
    A noter que :
      - aucune installation n'est nécessaire, l'ensemble est complètement portable et fonctionne même sur clé USB, il suffit
        de dé-zipper l'archive dans un dossier (attention : éviter les noms ou les chemins de dossier trop longs, les dossiers
        sur disque réseau ou sur le bureau, et privilégier un dossier à la racine d'un disque physique, par ex.
    C:\NSRC\ ).
      - la compilation du firmware se fait par simple fichier de commande éditable (liste des options ici(MAJ du 02.06.2019).
      - Companion et Simulateur (en français) intègrent le nouveau mixeur NSRC (explications ici).

    3.2. Schémas électroniques

    Table d'affectations des entrées/sorties carte Arduino Mega2560 : ici (MAJ du 11.06.2020).
    Schémas électroniques : ici (radio NextStepRC, MAJ du 07.02.2021) et ici (carte Mega2560).
    PCB et listing des extensions Mega2560 (pour info, cf. recommandations) : ici.

    3.3. Tutoriels

    Câblage de base, configuration carte mère, LCD et OpenTX, compilation et flashage : ici (MAJ du 16.04.2020).
    Câblage, paramétrage et mise en oeuvre de la synthèse vocale : ici (MAJ du 13.09.2020).
    Installation et paramétrage du module MultiProtocole : ici (MAJ du 13.05.2020).
    Assemblage et câblage de la NSRC "compacte" (version initiale - Modèle Magazine) : ici.
    Modification et installation de la carte Mega2560 :
      - alimentation réversible des manches et mesure de tension d'accu : ici et ici.
      - isolation du port usb et de la télémesure (carte avec CH340G) : ici et ici.
      - installation dans boîtier bois avec module multi-protocole : ici et ici.
      - assemblage (ultra-compact et sans connecteur / prise) carte Pro-Mini + LCD Zolen, câblage par fil émaillé soudable
        (c.a.d. à vernis polyuréthane classe B, max 130 °C ou F, max 155 °C) Ø 0.3 à 0.4 mm, s
    oudé directement en place
        sans décapage préalable : ici, ici et ici.
      - autre alternative entièrement intégrée, le projet G-Tx.
    Quelques informations sur les protocoles FrSky, les normes associées et la procédure de mise à jour d'un récepteur.

    3.4. Plans de boîtiers DIY

    Plans de réalisation des boîtiers bois : ici.
    Réalisation d'un boîtier en plexiglas : ici.

    3.5. Notices d'utilisation OpenTX :

    Bonnes pratiques de programmations sous OpenTX : ici.
    Notice 9X (à revoir, mais c'est une bonne base) : ici (version pdf 
    ici).

    3.6. Autres documentations

    Modification de la Turnigy 9X pour OpenTX + modification module FrSky (toutes radios) : ici.
    Remplacement des potentiomètres de manches par des capteurs à effets hall (en bas de page) : ici.
    Remplacement du firmware du récepteur clone FrSky F801 8 voies pour avoir la télémesure : ici.


    Mentions légales :
    Seul le code est open-source. Toute la documentation, textes, photos, plans et schémas sont libres
    d'utilisation dans le cadre du projet NextStepRC, mais sont soumis à copyright.
    L'intégralité du code, programmes et documents associés sont réservés à un usage privé, et ne peuvent
    donc être ni copiés, ni distribués, ni utilisés dans le cadre d’une application professionnelle ou
    commerciale sans l’accord des auteurs. De même, ce travail est livré en l’état, la responsabilité des
    auteurs ne saurait être engagée de quelque manière que ce soit dans le cas d’un accident impliquant
    un matériel NextStepRC, le constructeur et/ou utilisateur restant seuls responsables de la réalisation
    et/ou de l'utilisation de leur matériel.

    Copyright Franck Aguerre / RC Aero Lab