Le forum français des radios FrSKY

[TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Page 1 sur 5 1, 2, 3, 4, 5  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

[TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Jeu 12 Jan 2017 - 12:01

Suite du TUTO
[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]

--------------------------
Version 1 AVR8 Burn-O-Mat

Les objectifs
1. configurer un environnement sous W10 permettant de lire et écrire le contenu de la mémoire flash du module multiprotocole 4 en 1
2. faire une sauvegarde de la mémoire flash
3. vérifier et reprogrammer les fuses
4. charger la dernière version du firmware multiprotocole de Pascal Langer
5. flasher son module

Pour simplifier les opérations, on s'appuiera sur l'interface utilisateur AVR8 Burn-O-Mat qui envoie les commandes AVR au driver USBasp.
On s'appui ici sur les mises à jour de fichiers de firmware directement téléchargeable assuré par Pascal Langer sur le site [Vous devez être inscrit et connecté pour voir ce lien]

Le module multiprotocole

Il s'agit de ce module: 2.4G CC2500 A7105 Flysky Frsky Devo DSM2 Multiprotocol TX Module With Antenna



Préparation du module et du programmateur
On ajoute 2 ponts et un râteau 6 pins : [Vous devez être inscrit et connecté pour voir ce lien]
Le râteau va recevoir le programmateur USBasp
Pour ma part j'ai commandé celui-ci :
[Vous devez être inscrit et connecté pour voir ce lien]
Il arrive avec une sélection sur 5V, il faut dessouder une résistance pour passer à 3,3V et ne pas griller le module HF 4 en 1.
Il faut également commander l'adaptateur 10->6 pour se connecter au râteau 6 pins à souder sur la carte du module:
[Vous devez être inscrit et connecté pour voir ce lien]
Comme indiqué ici : [Vous devez être inscrit et connecté pour voir ce lien]
Ou sur ebay, un modèle avec cavalier 5-3,3V à déplacer :
[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]

On peut également commander le boitier [Vous devez être inscrit et connecté pour voir ce lien]


Car en découpant la face arrière juste au dessus du râteau, on peut connecter la sonde de programmation sans ouvrir ni déconnecter le boitier, ça passe tout juste, j'ai du limer le détrompeur de l'adaptateur 10->6.


Installation du driver USBasp
La procédure pour installer le driver USBasp consiste à utiliser Zadig de la façon suivante:
1. Brancher l’USBasp
2. Télécharger Zadig from [Vous devez être inscrit et connecté pour voir ce lien]
3. Lancer zadig
4. Options > List all devices
5. Choisir USBasp dans le menu déroulant
6. Choisir libusbK(v3.0.7.0) à droite de la flèche verte
7. Cliquer Install

Et l'on pourra vérifier que l'on a bien dans le Gestionnaire de périphérique de Windows:


Installation logicielle
Installer WinAVR sous c:\
[Vous devez être inscrit et connecté pour voir ce lien]
Installer AVR8 Burn-O-Mat V2
[Vous devez être inscrit et connecté pour voir ce lien]
Installer Java SE Runtime Environment (JRE)
[Vous devez être inscrit et connecté pour voir ce lien]

Configuration
On déclare le programmateur et l'emplacement des exécutable AVR



Sauvegarde de la mémoire Flash
Cette première étape permet de vérifier toute la chaine et la sauvegarde permet d’avoir un plan B en cas de problème.
On choisira le format Intel Hex et l'AVR type ATmega328p, on entrera le chemin du fichier en plus de son nom pour qu'il ne soit pas envoyé sous C:\Users\devfr\AppData\Local\VirtualStore\Program Files (x86)\AVR Burn-O-Mat !



Lecture des fuses
Ce sont les paramètres de configuration du microcontrôleur.



Modifier les valeurs si vous n’avez pas les mêmes, le Hfuse=D3 permet de préserver la zone de donnée de la Flash et donc de ne pas écraser les Binds déjà effectués.
[Vous devez être inscrit et connecté pour voir ce lien]



Pour EFUSE 0x05 et 0xFD sont la même chose. Parfois avrdude utilise l'un ou l'autre selon la version. Ici, on utilise 0x05
[Vous devez être inscrit et connecté pour voir ce lien]

Chargement du firmware

[Vous devez être inscrit et connecté pour voir ce lien]



Les fichiers multiprotocole hex / bin ont été compilés avec les fichiers sources datés du 19/12/2016 en utilisant les paramètres par défaut AETR, télémétrie activée, mode série activé et mode ppm activé à l'aide de la table par défaut. Les versions INV ont un jeu de télémétrie inversé qui est un must pour OpenTX alors que les autres sont compatibles avec er9x / ersky9x.
Pour les cartes Atmega328, certains modules RF (et les protocoles associés) ont été inclus dans chaque hex pour s'adapter à l'Atmega328. Par exemple, Multiprotocol_V1.1.5_A7105-CC2500-CYRF6936.hex signifie que les protocoles utilisant le NRF24L01 sont exclus.

Écriture du Firmware




Et si ce fantastique projet vous plait, vous pouvez remercier son auteur Pascal Langer avec un don Paypal


Dernière édition par dev.fred le Jeu 8 Juin 2017 - 16:13, édité 21 fois

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par Ceeb182 le Jeu 12 Jan 2017 - 12:43

Joli tutoriel !
Bravo

Petite remarque: peut-être faut-il que tu précises à la phrase "Et l'on pourra vérifier que l'on a bien : " de  la rubrique "Installation du driver USBasp" que la photo est un extrait du "Gestionnaire de périphérique de Windows".
avatar
Ceeb182

Messages : 164
Date d'inscription : 29/10/2016
Age : 42
Localisation : France

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Jeu 12 Jan 2017 - 13:01

Merci,
j'ai ajouté l'info et une autre précision

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par Murphy le Jeu 12 Jan 2017 - 13:35

Bravo. Je vais faire un PDF de ton tuto car au club il y a déjà 2 modules 4 en 1 et j'ai le dongle pour faire la mise à jour. Ca peut être utile.

Peut-être qu'il faudrait aussi ajouter une info sur la programmation de la radio en 2.1.x et en 2.2.

_________________
Encore là...
X9D+ EU-LBT 2.1.9,
Q-X7 EU-LBT 2.2.0
Horus EU-LBT 2.2.0

Forum du club ACPM
avatar
Murphy
Modérateur

Messages : 5473
Date d'inscription : 27/08/2013
Age : 72
Localisation : Montbéliard, près de la Suisse

http://bethoncourt-indoor.forumgratuit.org/

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par Kilrah le Jeu 12 Jan 2017 - 13:44

Si jamais on peut remplacer l'immense ensemble WinAVR/Burn-o-mat/Java par le seul petit package AVRDUDESS qui contient tout ce qu'il faut pour programmer.

Kilrah

Messages : 2175
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Jeu 12 Jan 2017 - 14:01

Merci à tous pour l'accueil de ce nouveau tuto  
Dommage, je ne connaissais pas AVRDUDESS, l'interface est très complète  
Je fais une 2eme version, c'est + simple

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Jeu 12 Jan 2017 - 15:49

Version 2 utilisant AVRDUDESS
Les objectifs
1. configurer un environnement sous W10 permettant de lire et écrire le contenu de la mémoire flash du module multiprotocole 4 en 1
2. faire une sauvegarde de la mémoire flash
3. vérifier et reprogrammer les fuses
4. charger la dernière version du firmware multiprotocole de Pascal Langer
5. flasher son module

Pour simplifier les opérations, on s'appuiera sur l'outil AVRDUDESS qui envoie les commandes AVR au driver USBasp.
On s'appui ici sur les mises à jour de fichiers de firmware directement téléchargeable assuré par Pascal Langer sur le site [Vous devez être inscrit et connecté pour voir ce lien]

Le module multiprotocole

Il s'agit de ce module: [Vous devez être inscrit et connecté pour voir ce lien]



Préparation du module et du programmateur
On ajoute 2 ponts et un râteau 6 pins : [Vous devez être inscrit et connecté pour voir ce lien]
Le râteau va recevoir le programmateur USBasp
Pour ma part j'ai commandé celui-ci :
[Vous devez être inscrit et connecté pour voir ce lien]
Il arrive avec une sélection sur 5V, il faut dessouder une résistance pour passer à 3,3V et ne pas griller le module HF 4 en 1.
Il faut également commander l'adaptateur 10->6 pour se connecter au râteau 6 pins à souder sur la carte du module:
[Vous devez être inscrit et connecté pour voir ce lien]
Comme indiqué ici : [Vous devez être inscrit et connecté pour voir ce lien]
Ou sur ebay, un modèle avec cavalier 5-3,3V à déplacer :
[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]

On peut également commander le boitier [Vous devez être inscrit et connecté pour voir ce lien]


Car en découpant la face arrière juste au dessus du râteau, on peut connecter la sonde de programmation sans ouvrir ni déconnecter le boitier, ça passe tout juste, j'ai du limer le détrompeur de l'adaptateur 10->6.


Installation du driver USBasp
La procédure pour installer le driver USBasp consiste à utiliser Zadig de la façon suivante:
1. Brancher l’USBasp
2. Télécharger Zadig from [Vous devez être inscrit et connecté pour voir ce lien]
3. Lancer zadig
4. Options > List all devices
5. Choisir USBasp dans le menu déroulant
6. Choisir libusbK(v3.0.7.0) à droite de la flèche verte
7. Cliquer Install

Et l'on pourra vérifier que l'on a bien dans le Gestionnaire de périphérique de Windows:


Installation logicielle
Allez sur [Vous devez être inscrit et connecté pour voir ce lien] et télécharger le fichier de setup pour windows

Si vous avez une erreur :


1-Charger [Vous devez être inscrit et connecté pour voir ce lien]
2-désarchiver libusb-win32-bin-1.2.6.0.zip
3-renommer libusb-win32-bin-1.2.6.0\bin\x86\libusb0_x86.dll en libusb0.dll
4-à copier sous C:\Program Files (x86)\AVRDUDESS\ ou    
W10: 64 bit, copier sous Windows\syswow64\
W10: 32 bit, copier sous Windows\system32\


Configuration
On déclare le programmateur



On détecte automatiquement le MCU en cliquant sur le bouton Detect



Sauvegarde de la mémoire Flash
Cette première étape permet de vérifier toute la chaine et la sauvegarde permet d’avoir un plan B en cas de problème.
On choisira le nom du fichier de sauvegarde, le mode Read, le format Intel Hex et Go


Lecture des fuses
Ce sont les paramètres de configuration du microcontrôleur.


Modifier les valeurs si vous n’avez pas les mêmes, le Hfuse=D3 permet de préserver la zone de donnée de la Flash et donc de ne pas écraser les Binds déjà effectués.
[Vous devez être inscrit et connecté pour voir ce lien]



Pour EFUSE 0x05 et 0xFD sont la même chose. Parfois avrdude utilise l'un ou l'autre selon la version. Ici, on utilise 0x05
[Vous devez être inscrit et connecté pour voir ce lien]

Chargement du firmware

[Vous devez être inscrit et connecté pour voir ce lien]



Les fichiers multiprotocole hex / bin ont été compilés avec les fichiers sources datés du 19/12/2016 en utilisant les paramètres par défaut AETR, télémétrie activée, mode série activé et mode ppm activé à l'aide de la table par défaut. Les versions INV ont un jeu de télémétrie inversé qui est un must pour OpenTX alors que les autres sont compatibles avec er9x / ersky9x.
Pour les cartes Atmega328, certains modules RF (et les protocoles associés) ont été inclus dans chaque hex pour s'adapter à l'Atmega328. Par exemple, Multiprotocol_V1.1.5_A7105-CC2500-CYRF6936.hex signifie que les protocoles utilisant le NRF24L01 sont exclus.

Écriture du Firmware
On choisira le fichier à écrire, le mode Write, le format Intel Hex et Go
Avec les Options -V -D non cochées, il y a un cycle d'effacement et une vérification



Et si ce fantastique projet vous plait, vous pouvez remercier son auteur Pascal Langer avec un don Paypal


Dernière édition par dev.fred le Sam 28 Jan 2017 - 9:39, édité 9 fois

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par Ceeb182 le Jeu 12 Jan 2017 - 15:55

Deux tutoriels en moins de 4h, quel rendement  !  

Le prochain à 20h ?  
avatar
Ceeb182

Messages : 164
Date d'inscription : 29/10/2016
Age : 42
Localisation : France

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Jeu 12 Jan 2017 - 16:14

Si quelqu'un partage un outil encore meilleur que les 2 présenté, qui sait Very Happy

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par LapinFou le Jeu 12 Jan 2017 - 16:45

J'ai 2 questions:
1. As-tu testé avec le soft Arduino (et avec le programmateur USBasp) ? [Vous devez être inscrit et connecté pour voir ce lien]
2. Lors du bind, le TX doit avoir un ID unique. Comme cela se passe-t-il avec le module multiprotocole ? T-a-t-il un risque si 2 personnes utilisent le même module au même moment avec le même protocole ??? Je pense surtout au mode DSM2/DSMX. Il n'y a pas un risque de mettre au tas un gars volant avec une Spektrum ?

albino
avatar
LapinFou
Modérateur

Messages : 6309
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par Kilrah le Jeu 12 Jan 2017 - 17:01

Le module multi génère un ID au hasard la première fois qu'il est mis sous tension.

Une collision est extrêmement improbable sachant que même avec le même ID il faudrait que tout les paramètres soient les mêmes ET que le timing d'émission soit synchronisé, mais pas impossible.

Pour p.ex. Spektrum sauf erreur l'ID est le numéro de série unique du chip CYRF, du coup ça ne devrait pas être possible du tout.

Kilrah

Messages : 2175
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Jeu 12 Jan 2017 - 17:10

LF a écrit:1. As-tu testé avec le soft Arduino (et avec le programmateur USBasp) ? [Vous devez être inscrit et connecté pour voir ce lien]
Arduino avec le programmateur USBasp que j'ai indiqué fonctionne sans problème, c'est la config que j'utilise


dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par LapinFou le Ven 13 Jan 2017 - 9:24

Kilrah a écrit:Le module multi génère un ID au hasard la première fois qu'il est mis sous tension.

Une collision est extrêmement improbable sachant que même avec le même ID il faudrait que tout les paramètres soient les mêmes ET que le timing d'émission soit synchronisé, mais pas impossible.

Pour p.ex. Spektrum sauf erreur l'ID est le numéro de série unique du chip CYRF, du coup ça ne devrait pas être possible du tout.
Merci Kilrah !
Juste une petite question, cette ID est stockée dans des fuses/OTP ? Ou c'est une nouvelle ID à chaque mise sous tension (ça m'étonnerait, sinon on perdrait le bind à chaque fois) ?
La question que je me pose est: perd-t-on le bind si on flash un nouvel version du firmware ?

dev.fred a écrit:
LF a écrit:1. As-tu testé avec le soft Arduino (et avec le programmateur USBasp) ? [Vous devez être inscrit et connecté pour voir ce lien]
Arduino avec le programmateur USBasp que j'ai indiqué fonctionne sans problème, c'est la config que j'utilise
Super !

Je pense utilisé cette façon de faire.

albino
avatar
LapinFou
Modérateur

Messages : 6309
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Ven 13 Jan 2017 - 10:09

Customisation sous Arduino
Les objectifs
1. Installer sous W10 et configurer l'IDE Arduino pour le module multiprotocole 4 en 1 de BG
2. Charger la dernière version du projet Multiprotocole de Pascal
3. Compiler le code source qui passe par la configuration du fichier config.h
4. Vérifier et reprogrammer les fuses
5. Reflasher son module

Pour ceux qui préfèrent le sur-mesure, il faut utiliser Arduino et customiser le fichier config.h du projet [Vous devez être inscrit et connecté pour voir ce lien]
Ce fichier est en perpétuelle évolution, aussi ce document, issu d'une traduction du fantastique travail de Pascal, n'est qu'une introduction qui ne couvre pas toutes les options possibles, mais s'attache au cœur du problème qui est de tenir le code généré dans un espace limité à 32Ko.

La préparation du module et du programmateur a déjà été traité ici [Vous devez être inscrit et connecté pour voir ce lien]
Par précaution, vous pouvez sauvegarder le firmware existant en utilisant

Avoir un de ces 2 outils en plus d'Arduino permet de couvrir tous les cas de figure. En particulier le flashage des fusibles sera plus claire.

Installation de l'IDE Arduino
Téléchargez l'IDE Arduino. La version Arduino actuellement prise en charge est la 1.6.12
[Vous devez être inscrit et connecté pour voir ce lien]

Préparation de l'IDE Arduino
L'IDE Arduino doit être personnalisé pour compiler le firmware de manière optimale.
Les ajouts suivants au fichier arduino boards.txt ont 2 objectifs :

  • Permettre de flasher encore plus de protocoles en libérant 2 ko supplémentaires.
  • Empêcher l'EEPROM d'être effacée à chaque fois que le microprogramme est flashé. Cela préservera votre ID Tx et vous évitera d'avoir à binder tous vos modèles après une mise à jour du firmware. Cette protection sera effective après une étape supplémentaire d'écriture des fusibles qui sera abordé plus loin, cette opération n'est à faire qu'une fois.

1. Fermez l'IDE Arduino

2. Faire une recherche Windows pour l'application WordPad (NE PAS UTILISER le Bloc-notes).
Le fichier étant protégé en écriture, faites un clic droit sur WordPad et sélectionnez "Exécuter en tant qu'administrateur" :



3. Ouvrez le fichier boards.txt situé par défaut dans le dossier C:\Program Files (x86)\Arduino\hardware\arduino\avr

4. Copiez et collez le texte "Multi 4-in-1" à la fin du fichier et enregistrez-le :

Code:
##############################################################
## Multi 4-in-1 (3.3V, 16 MHz) w/ ATmega328
## --------------------------------------------------
multi.name=Multi 4-in-1

multi.upload.tool=avrdude
multi.upload.protocol=arduino

multi.bootloader.tool=avrdude
multi.bootloader.unlock_bits=0x3F
multi.bootloader.lock_bits=0x0F

multi.build.board=AVR_PRO
multi.build.core=arduino
multi.build.variant=eightanaloginputs
multi.build.extra_flags=-Wl,--relax

multi.menu.cpu.16MHzatmega328=ATmega328 (3.3V, 16 MHz)

multi.menu.cpu.16MHzatmega328.upload.maximum_size=32768
multi.menu.cpu.16MHzatmega328.upload.maximum_data_size=2048
multi.menu.cpu.16MHzatmega328.upload.speed=57600

multi.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
multi.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xD3
multi.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x05

multi.menu.cpu.16MHzatmega328.build.mcu=atmega328p
multi.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
##############################################################  

5. Enregistrez-le au format "Texte Brut"


6. Fermez et rouvrez l'IDE Arduino pour charger cette modification

7. Configurer Arduino

  • Sous Tools -> Board choisir  Multi 4-in-1
  • Sous Tools -> Programmer choisir USBasp



Chargez le projet Multiprotocole

Pour info, la version du firmware est située au début du fichier [Vous devez être inscrit et connecté pour voir ce lien] :

Code:
//******************
// Version
//******************
#define VERSION_MAJOR 1
#define VERSION_MINOR 1
#define VERSION_REVISION 6
#define VERSION_PATCH_LEVEL 5

1. Téléchargez le fichier zip avec le code source du module multiprotocole à partir d'ici [Vous devez être inscrit et connecté pour voir ce lien]
2. Décompressez et copiez le dossier de code source Multiprotocole dans un dossier de votre choix.
3. Cliquez sur le fichier Multiprotocol.ino dans le dossier Multiprotocol et l'environnement Arduino devrait apparaître et le projet Multiprotocol sera chargé.


Personnalisez le microprogramme en fonction de votre matériel et de vos besoins

Sur tous les modules équipés de microprocesseurs ATMega, la mémoire requise pour tous les protocoles dépasse les 32k de mémoire flash disponibles.
Vous devrez sélectionner les protocoles que vous souhaitez utiliser qui entreront dans la mémoire disponible.
Avant de personnaliser votre microprogramme, il serait bon d'examiner le protocole sur la page [Vous devez être inscrit et connecté pour voir ce lien] du protocole et d'identifier les protocoles que vous souhaitez prendre en charge sur votre module.

Toute la personnalisation est faite en éditant le fichier _Config.h dans le projet Multiprotocol Arduino.
Dans l'IDE Arduino, cliquez sur la flèche vers le bas à l'extrême droite de la barre des onglets pour afficher la liste des fichiers de projet (voir le cercle rouge ci-dessous).
Faites défiler vers le bas et sélectionnez le fichier _Config.h.


Pour les modules 4-en-1, les 4 émetteurs RF sont installés, il faut donc tous les conserver et ne rien modifier sinon "Des choses bizarres arriveront vous avez été averti", vous aurez donc :

Code:
/**************************/
/*** RF CHIPS INSTALLED ***/
/**************************/
//There are 4 RF components supported. If one of them is not installed you must comment it using "//".
//If a chip is not installed all associated protocols are disabled.
//4-in-1 modules have all RF chips installed
//!!!If a RF chip is present it MUST be marked as installed!!! or weird things will happen you have been warned.
#define A7105_INSTALLED
#define CYRF6936_INSTALLED
#define CC2500_INSTALLED
#define NRF24L01_INSTALLED

Par contre on peut désactiver les protocoles qui ne sont pas utilisés.
Faites défiler les protocoles disponibles et commentez tous les protocoles dont vous n'avez pas besoin.
L'exemple suivant montre le protocole DEVO commenté :

Code:
/****************************/
/*** PROTOCOLS TO INCLUDE ***/
/****************************/

// #define DEVO_CYRF6936_INO
#define DSM_CYRF6936_INO
#define J6PRO_CYRF6936_INO

Si vous avez une Taranis et que vous prévoyez d'utiliser le mode Serie avec télémétrie, recherchez et décommentez la ligne INVERT_TELEMETRY, la ligne #define TELEMETRY restant décommentée,  vous aurez donc :

Code:
/**************************/
/*** TELEMETRY SETTINGS ***/
/**************************/
//In this section you can configure the telemetry.

//If you do not plan using the telemetry comment this global setting using "//" and skip to the next section.
#define TELEMETRY

//Comment to invert the polarity of the output telemetry serial signal.
//This function takes quite some flash space and processor power on an atmega.
//For OpenTX and ersky9x it must be uncommented.
//On a 9XR_PRO running ersky9x both commented and uncommented will work depending on the radio setting Invert COM1 under the Telemetry menu.
//On other addon/replacement boards like the 9xtreme board or the Ar9x board, you need to uncomment the line below.
//For er9x it depends if you have an inveter mod or not on the telemetry pin. If you don't have an inverter comment this line.
#define INVERT_TELEMETRY

A partir de la RC9 N361, avec la version 1.1.6 du firmware multiprotocole, il est possible d'activer un dialogue, à travers la liaison série, qui permet d'afficher l’état du multimodule dans la radio sans avoir à observer l'état de la LED rouge au dos du boitier :



On aura au préalable flashé sa radio avec l'option multimodule activée pour pouvoir choisir le mode MULT pour la HF externe :



Il suffit de commenter #define MULTI_STATUS et de décommenter #define MULTI_TELEMETRY, vous aurez donc :

Code:
//Comment if you don't want to send Multi status telemetry frames (Protocol available, Bind in progress, version...)
//Use with er9x/erksy9x, for OpenTX MULTI_TELEMETRY below is preferred instead
//#define MULTI_STATUS

//Uncomment to send Multi status and allow OpenTX to autodetect the telemetry format
//Supported by OpenTX version 2.2 RC9 and newer. NOT supported by er9x/ersky9x use MULTI_STATUS instead.
#define MULTI_TELEMETRY

On peut également désactiver les protocoles de télémétrie inutilisés :

Code:
//Comment a line to disable a protocol telemetry
//#define DSM_TELEMETRY // Forward received telemetry packet directly to TX to be decoded
//#define SPORT_TELEMETRY // Use FrSkyX SPORT format to send telemetry to TX
//#define AFHDS2A_FW_TELEMETRY // Forward received telemetry packet directly to TX to be decoded
#define HUB_TELEMETRY // Use FrSkyD Hub format to send telemetry to TX
//#define AFHDS2A_HUB_TELEMETRY // Use FrSkyD Hub format to send telemetry to TX
//#define BAYANG_HUB_TELEMETRY // Use FrSkyD Hub format to send telemetry to TX
#define HUBSAN_HUB_TELEMETRY // Use FrSkyD Hub format to send telemetry to TX

Pour être cohérent, avec l'utilisation du mode série, on vérifiera que l'on a bien #define ENABLE_SERIAL décommenté et #define ENABLE_PPM commenté, vous devez donc avoir :

Code:
/****************************/
/*** SERIAL MODE SETTINGS ***/
/****************************/
//In this section you can configure the serial mode.
//The serial mode enables full editing of all the parameters in the GUI of the radio.
//This is available natively for ER9X and ERSKY9X. It is available for OpenTX on Taranis with a special version.

//If you do not plan to use the Serial mode comment this line using "//" to save Flash space
#define ENABLE_SERIAL


/*************************/
/*** PPM MODE SETTINGS ***/
/*************************/
//In this section you can configure all details about PPM.
//If you do not plan to use the PPM mode comment this line using "//" to save Flash space, you don't need to configure anything below in this case
#define ENABLE_PPM
//#define ENABLE_PPM

Vous pouvez maintenant compiler le firmware en cliquant sur Sketch-> Verify/Compile dans la barre de menu.
Si tout se passe comme prévu, vous devriez voir quelque chose comme la ligne suivante dans le volet inférieur de la fenêtre :

Sketch uses 32,464 bytes (99%) of program storage space. Maximum is 32,768 bytes.
Global variables use 1,219 bytes (59%) of dynamic memory, leaving 829 bytes for local variables. Maximum is 2,048 bytes.
Dans ce cas vous pouvez flasher votre module.


Votre firmware est toujours trop grand et vous devez désélectionner des protocoles supplémentaires si vous voyez quelque chose comme ceci :

Sketch uses 34,096 bytes (104%) of program storage space. Maximum is 32,768 bytes.
Global variables use 1,236 bytes (60%) of dynamic memory, leaving 812 bytes for local variables. Maximum is 2,048 bytes.
Sketch too big


S'il y a une autre erreur, lisez attentivement l'erreur pour voir le numéro de ligne approximative où vous avez fait une erreur de frappe.

Connexion du programmateur
1. Avant de connecter le programmateur, assurez-vous d'avoir sélectionné le mode 3.3V et non le mode 5V.
Les modules RF ne sont pas tolérants 5V et vous les grillez à 5V. Sur la plupart des programmeurs, cela se fait en déplaçant un cavalier sur le programmeur ou en dessoudant une résistance.
2. Veuillez relire le point 1. ci-dessus avant de continuer.
3. Tournez le commutateur rotatif du module multiprotocole sur la position 0.
Si vous n'avez pas de commutateur (si vous n'utilisez que le mode série), il est identique à la position 0.
Le téléchargement ne fonctionnera pas si le commutateur est dans une autre position.
4. Branchez le connecteur de programmation à 6 broches sur le connecteur 6 broches de la carte multiprotocole 4-en-1.
Assurez-vous de faire correspondre la broche GND du connecteur du programmateur à la broche de masse sur la carte.
5. Vous êtes maintenant prêt à brancher le programmateur USB à l'ordinateur.

Configuration des fuses
6. La première étape consiste à flasher les fusibles du microprocesseur si cela n'a jamais été fait.
Les valeurs de fusibles sont définies dans le fichier boards.txt section Multi 4-in-1 et permettrons d'empêcher l'EEPROM d'être effacée à chaque fois que le microprogramme est flashé (cela préservera votre ID Tx et vous évitera d'avoir à binder tous vos modèles après une mise à jour du firmware) et de ne pas utiliser de bootloader.
Code:
multi.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
multi.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xD3
multi.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x05
7. Dans l'IDE Arduino, assurez-vous que le Multi 4-en-1 est sélectionné sous Tools -> Board et cliquez sur Tools -> Burn Bootloader.
Ne vous inquiétez pas s'il renvoie l'erreur qu'aucun bootloader n'ait été trouvé (c'est le cas de la carte 4-en-1), il a quand même flashé les fusibles.
Si vous avez défini l'IDE pour fournir la compilation détaillée et la sortie de téléchargement, vous devriez être en mesure de voir la valeur finale des fusibles dans l'IDE Arduino.




Écriture du Firmware
8. Vous êtes maintenant prêt à flasher le firmware. Dans l'IDE d'Arduino, cliquez sur Sketch -> Upload Using Programmer.
Si la sortie indique 32122 bytes of flash verified, très bien, vous avez programmé avec succès votre module.



En cas d'erreur
9. Si vous recevez une erreur indiquant qu'un microprocesseur valide n'a pas été trouvé, il y a quelque chose qui cloche :

  • vos connexions
  • votre programmateur
  • votre carte

Faites une recherche Google avec le message d'erreur spécifique pour obtenir des suggestions de la façon de le corriger.
La cause la plus commune est des problèmes avec la configuration de la connexion et dans certains cas des problèmes avec les programmateurs bon marché de sources chinoises.

Et si ce fantastique projet vous plait, vous pouvez remercier son auteur Pascal Langer avec un don Paypal


Dernière édition par dev.fred le Jeu 15 Juin 2017 - 8:19, édité 23 fois

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Ven 13 Jan 2017 - 10:26

LF a écrit:Je pense utilisé cette façon de faire.

J'en connais un qui va avoir de la lecture Wink

Ceeb182 a écrit:Le prochain à 20h ?

Désolé, je suis en retard Very Happy

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par chewi le Ven 13 Jan 2017 - 10:45

Bonjour dev.fred,

Dans ton lien: [Vous devez être inscrit et connecté pour voir ce lien]
pourrais-tu enlever le point à la fin du lien, sinon çà envoie vers une page 404.
merci d'avance.

J'utilise l'arduino ide aussi, l'avantage c'est que l'on peut vraiment personnaliser son firmware
avatar
chewi

Messages : 203
Date d'inscription : 13/01/2014
Age : 58
Localisation : Le Mans

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Ven 13 Jan 2017 - 10:57

C'est fait, sinon tu vas aussi utiliser AVRDUDESS ou AVR8, le lien était dans ces 2 pages ?

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par chewi le Ven 13 Jan 2017 - 11:03

non, j'utilise que l'ide pour le 4 in1 (personnalisation extrême du firm) çà permet d'enlever des protocoles sans désactiver le module RF
par contre j'utilise avr8 pour les petits récepteurs de chez banggood
avrdudess je l'utilise pour d'autres firmwares mais qui n'ont rien à voir avec l'aéromodélisme.
avatar
chewi

Messages : 203
Date d'inscription : 13/01/2014
Age : 58
Localisation : Le Mans

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Ven 13 Jan 2017 - 11:48

C'est vrai que ce n'est pas recommandé, je devrais l'indiquer :
Code:
/**************************/
/*** RF CHIPS INSTALLED ***/
/**************************/
//There are 4 RF components supported. If one of them is not installed you must comment it using "//".
//If a chip is not installed all associated protocols are disabled.
//4-in-1 modules have all RF chips installed
//!!!If a RF chip is present it MUST be marked as installed!!! or weird things will happen you have been warned.
#define A7105_INSTALLED
#define CYRF6936_INSTALLED
#define CC2500_INSTALLED
#define NRF24L01_INSTALLED

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par LapinFou le Ven 13 Jan 2017 - 12:05

Dans la doc, il est clairement stipulé qu'il ne faut jamais désactiver une RF si elle est physiquement présente. Sinon, cela peut faire des choses très bizarre.
Donc, avec le module 4 en 1, il ne faut pas désactiver de RF.

albino
avatar
LapinFou
Modérateur

Messages : 6309
Date d'inscription : 09/09/2014
Age : 42
Localisation : Falaise

http://falaisemodeleclub.fr/

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par yaya67 le Ven 13 Jan 2017 - 12:18

Salut, j'ai un petit problème quand je compile :
Property line '?# See: [Vous devez être inscrit et connecté pour voir ce lien] in file C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt is invalid

Erreur de compilation pour la carte Multi 4-in-1


vous avez une idée ?
Merci,
avatar
yaya67

Messages : 145
Date d'inscription : 01/12/2016
Age : 44
Localisation : Alsace

http://alsaceyaya.free.fr/

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par Ceeb182 le Ven 13 Jan 2017 - 12:35

dev.fred a écrit:Désolé, je suis en retard Very Happy
M'enfin ! Maintenant 3 tutoriels affraid ... quel efficacité !
Bon, je retourne à ma sieste.
avatar
Ceeb182

Messages : 164
Date d'inscription : 29/10/2016
Age : 42
Localisation : France

Revenir en haut Aller en bas

Re: [TUTO] Mise à jour firmware module multiprotocole BG 4 en 1

Message par dev.fred le Ven 13 Jan 2017 - 13:08

yaya67 a écrit:Property line '?# See: [Vous devez être inscrit et connecté pour voir ce lien] in file C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt is invalid

Tu as une erreur de propriété à la ligne '? dans le fichier boards.txt Very Happy

Si tu utilises le board multi 4-in-1, vérifie le contenu, en particulier les blancs qui peuvent s'introduire après un copié/collé:
Code:
##############################################################
## Multi 4-in-1 (3.3V, 16 MHz) w/ ATmega328
## --------------------------------------------------
multi.name=Multi 4-in-1

multi.upload.tool=avrdude
multi.upload.protocol=arduino

multi.bootloader.tool=avrdude
multi.bootloader.unlock_bits=0x3F
multi.bootloader.lock_bits=0x0F

multi.build.board=AVR_PRO
multi.build.core=arduino
multi.build.variant=eightanaloginputs
multi.build.extra_flags=-Wl,--relax

multi.menu.cpu.16MHzatmega328=ATmega328 (3.3V, 16 MHz)

multi.menu.cpu.16MHzatmega328.upload.maximum_size=32768
multi.menu.cpu.16MHzatmega328.upload.maximum_data_size=2048
multi.menu.cpu.16MHzatmega328.upload.speed=57600

multi.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
multi.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xD3
multi.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x05

multi.menu.cpu.16MHzatmega328.build.mcu=atmega328p
multi.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
##############################################################

dev.fred

Messages : 538
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)

Revenir en haut Aller en bas

Page 1 sur 5 1, 2, 3, 4, 5  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum