Téléversement Arduino Pro mini

Comme je peux le voir dans de nombreux forums et surtout ici, je ne suis pas le seul à avoir des soucis de téléversement sur un arduino pro mini.
Après avoir épluché de nombreux tutos, de nombreux forums ne n'ai malheureusement aucune solution pour faire un téléversement correctement.
Je cherche à téléversé le code de base "blink". J'ai un clone d'un arduino pro mini 3,3V 8Mhz
J'ai essayé directement avec mon FTDI, soit en branchant directement les 6 broches de mon FTDI, soit en branchant uniquement les broches VCC, GND, RX (vers TX), TX (vers RX) et DTR vers DTR. J'ai même essayé d'échanger le branchements des RX avec TX, car certains remontés une erreur de serie, mais pas mieux.

J'ai tenté ensuite de passer par un Arduino UNO, en mode Arduino as ISP. J'ai suivi les tutos proposés afin de réinstaller un bootloader et simplement téléverser un bout de code.


Concernant la partie partie bootloader, celle-ci se passe correctement avec le message ci-dessous :

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "C:\Temp\arduino_build_561740/ArduinoISP.ino.hex"
avrdude: writing flash (4402 bytes):

Writing | ################################################## | 100% 0.80s

avrdude: 4402 bytes of flash written
avrdude: verifying flash memory against C:\Temp\arduino_build_561740/ArduinoISP.ino.hex:
avrdude: load data flash data from input file C:\Temp\arduino_build_561740/ArduinoISP.ino.hex:
avrdude: input file C:\Temp\arduino_build_561740/ArduinoISP.ino.hex contains 4402 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.58s

avrdude: verifying ...
avrdude: 4402 bytes of flash verified

avrdude done.  Thank you.

Mais dès que je veux téléverser un "blink" avec cette méthode, mais le même problème, dont voici l'erreur.

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
...
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

Avez-vous une ou plusieurs idées à me soumettre pour avancer ? Merci de votre aide

Regarde par ICI.
Paragraphe 3.8. Le bootloader

Résumé de la partie chargement du bootloader :

branchement USB de la UNO sur le PC
branchement SPI UNO / MINI
ouverture sketch ArduinoISP
choisir type de carte : Arduino/Genuino UNO
téléversement du sketch dans la UNO (bouton téléverser)
choisir type de carte : Arduino MINI
choisir Programmateur : Arduino as ISP
Outils / Graver la séquence d'initialisation

Si tu cherches à charger une application blink avec cette méthode :
Il faut remplacer :

Outils / Graver la séquence d'initialisation
par :
Croquis / téléverser avec un programmateur

Par contre dans ce cas tu écrases le bootloader de la MINI.

Si tu veux conserver le bootloader dans la MINI et charger une application blink, il faut le faire à l'aide d'un convertisseur USB / Série, directement dans la MINI, sans la UNO.

Regarde ICI.
Paragraphe 5. Chargement

@+

Merci @hbachetti pour tes éclaircissements et les pages de ton site auxquels j'ai déjà fait référence.

Je te confirme que le téléversement via un arduino UNO fonctionnement maintenant. (il fallait bien passé par le "téléverser avec un programmateur").

Par contre, j'ai bien suivi tes conseils avec mon FTDI "made in China" mais qui fonctionne avec d'autre cartes sans problème :

  • "graver" le bootloader avec mon arduino UNO
  • Branchement VCC, GND, RX (vers TX), TX (vers RX) et DTR vers DTR
  • Séléctionner la bonne carte, "AVRISP mkll" comme programmateur et téléverser, mais toujours la même erreur.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xfe
avrdude: stk500_recv(): programmer is not responding
...
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xfe

Cela vous parle ?

Tu as bien croisé RX/TX et TX/RX ?
Tu es sûr d'avoir branché le DTR ou le RTS du FTDI sur la pin GRN ou DTR de la MINI ?

Fais un reset de la carte à la fin de la compilation pour voir, juste avant le téléversement.

Avant de répondre hativement dans la journée, j'ai quand même voulu vérifier, mais je te confirme :

  • RX --> TX et TX --> RX
  • DTR de mon FTDI est bien branché sur le DTR de mon arduino mini
  • Test avec le RESET juste avant le téléversement n'y fait rien...

Penses-tu que cela peut venir de mon FTDI, sachant que celui-ci fonctionne avec un ESP12F (testé hier) ?

Car c'est bizarre que cela puisse fonctionner avec l'arduino Uno et non avec le FTDI. La seule différences est les pins utilisées (j'ai vérifier mes soudures qui sont propres).

Car c'est bizarre que cela puisse fonctionner avec l'arduino Uno et non avec le FTDI

tu charge le bootloader par le SPI, donc pas les mêmes pins.

Tu changes bien de type de carte "Arduino PRO MINI" avant de charger le bootloader ?

@+

Oui oui, je remets dans une configuration "standard" :

  • Arduino PRO MINI (3.3V - 8 Mhz)
  • Programmateur "AVRISP mkll"

As-tu essayé de changer la PRO MINI ?
Le RX ou TX est peut être grillé ?
Comme le FTDI fonctionne avec un ESP, je ne vois plus que ça.

Sinon, il te reste la solution de ta passer de bootloader et charger directement l'application en passant par la UNO.
Essaie de charger une application :

void setup() {
  Serial.begin(115200);
}

void loop() {
  int incomingByte = 0;
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    Serial.print("J'ai recu : ");
    Serial.println(incomingByte, DEC);
  }
}

Essaie d'entrer des caractères par le moniteur série, FTDI branché bien sûr.

Si cela marche, c'est que RX TX sont OK.

@+

Bon, ça me rassure d'avoir ce retour.

Pas d'autre arduino pro mini en ma possession, mais ce n'est qu'une histoire de temps.

Je vais tester ton code. Merci en tout cas.

Bon,

J'ai enfin le fin mot de l'histoire ... C'est mon FTDI... J'ai tester avec un convertisseur avec un CP2102 et cela a fonctionné directement.

Par contre, je n'arrive pas à savoir pourquoi mon FTDI fonctionne correctement avec un ESP12. La seule différence reste la broche DTR. Et pourtant j'ai même essayé de téléverser sans utiliser cette broche, directement le bouton reset.

Merci en tout cas pour ton aide @hbachetti.

Étrange en effet.
Quel est le modèle du premier FTDI "chinois" ?

Voici le modèle que j'ai.

https://forum.arduino.cc/index.php?action=dlattach;topic=595776.0;attach=294427

https://forum.arduino.cc/index.php?action=dlattach;topic=595776.0;attach=294425

Bizarre. J'utilise aussi un FTDI FT232 5V et 3.3V et ça marche.
Pas grave, l'essentiel est d'avoir une solution.
@+