Go Down

Topic: [RESOLU]UNO R2 mise à jour de l'ATmega8u2 (Read 3135 times) previous topic - next topic

68tjs

Sep 07, 2011, 01:04 pm Last Edit: Sep 08, 2011, 12:35 pm by 68tjs Reason: 1
Je viens de comprendre l'origine de mes déboires avec ma platine sous Linux -> le firmware version rev 000 de l'AtMega8u2 est buggé sous Linux.
Le firmware est passé en version rev001 le 4 décembre 2010.
https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares

J'ai acheté ma platine chez Lextronic (UNO R2) début juin 2011, je viens de vérifier la version du firmware, c'est encore l'ancienne rev000.
Comme par hasard sur la version R2 le connecteur pour la programmation in situ de l'atmega8u2 est cablé alors qu'il ne l'est pas sur la R1. Ce qui veut dire qu'il existait un stock d'atmega8u2 déjà flashés et qui a été écoulé tel quel.

Les problèmes techniques je les accepte, ils sont inévitables, mais là c'est l'honnêteté intellectuelle que je mets en cause et ne suis pas le seul :
http://www.gr-slb.com/blog/2011/04/01/bug-arduino-uno-et-mega-2560-avec-la-complicite-de-lextronique/

Ma question est comment peut t-on faire la mise à jour parce les indications fournies par le projet arduino sont incomplètes:
http://arduino.cc/en/Hacking/DFUProgramming8U2

Elle concerne le circuit imprimés de la version 1 et il existe des différences entre la R1 et la R2 et comme par hasard ces différences sont juste là où avec leur méthode il faut faire des connexions, par exemple là où sur leur photo je vois un seul condensateur sur mon board j'en trouve 2 ce qui fait que je met en doute la totalité de leur procédure.
Je n'ai pas trouvé de procédure pour utiliser l'ISP (tant matériel que logiciel) et pourtant ils n'ont pas ajouté ce connecteur par hasard !

Merci pour vos solutions.

Snootlab

#1
Sep 07, 2011, 03:25 pm Last Edit: Sep 07, 2011, 03:31 pm by Snootlab Reason: 1
Bonjour,

Voici une procédure en passant en mode DFU pour programmer le firmware du 8U2

Procédure pour Uno (R1) :


Step 1 :
Préparation matos

hard :
- Un uno et son cable usb
- Deux cordons male / male

soft :
Installation de dfu-programmer

-> sous debian et dérivés :

Code: [Select]
$ sudo apt-get install dfu-programmer

Récupération du firmware de l'Uno à partir de github :

https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/

Cliquer sur "Arduino-usbserial-uno.hex" et télécharger la version "raw".



Step 2 :
brancher le uno sur l'usb
Placer et maintenir en place un cordon mâle/mâle et le maintenir entre un GND et la pin sup en haut à gauche du connecteur isp (reset 8U2)


Step 3:
brancher le second cordon male male à un GND et toucher un court instant le coté gauche du condensateur situé au dessus du strap reset (cf photo)


Step 4
débrancher les cordons, pas l'usb
lancer  les commander de prog

Ouvrir une console (gnome-terminal sous gnome ou konsole sous kde)
Se placer dans le répertoire où se trouve le fichier bootloader,  par défaut :

Code: [Select]
$ cd Téléchargements


Code: [Select]
$ sudo dfu-programmer at90usb82 erase
$ sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex


réponse attendue :
Validating...
4058 bytes used (99.07%)


Code: [Select]
$ sudo dfu-programmer at90usb82 reset


puis plug unplug usb/arduino



Note : testé avec dfu-programmer version 0.5.1 certaines versions antérieures peuvent ne pas fonctionner (ubuntu  >= 10.04 ok)

Bon courage,

Lionel
- Distributeur officiel Arduino - France

Snootlab

#2
Sep 07, 2011, 03:26 pm Last Edit: Sep 07, 2011, 03:43 pm by Snootlab Reason: 1
Ok, je viens de comprendre que vos problèmes sont la la version R2...
je vais refaire des photos :)

Edit : un peu plus tard....

Programmer le firmware du 8U2 en mode DFU

Procédure pour Uno R2 :

C'est une version CMS en photo mais les points concernés sont au même endroit pour le UNO R2 non CMS

Step 1 :
Préparation matos

hard :
- Un uno R2 et son cable usb
- Un cordon mâle / mâle
- Un cordon mâle / femelle

soft :
Installation de dfu-programmer

-> sous debian et dérivés :

Code: [Select]
$ sudo apt-get install dfu-programmer

Récupération du firmware de l'Uno à partir de github :

https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/

Cliquer sur "Arduino-usbserial-uno.hex" et télécharger la version "raw".



Step 2 :
brancher le uno sur l'usb
et placer le cordon male femelle entre un GND et la pin sup en haut à gauche du connecteur isp (reset 8U2)
le laisser en place




Step 3:
brancher le second cordon male male à un GND et toucher un court instant le coté gauche du condensateur situé au dessus du strap reset (cf photo)


Step 4
débrancher les cordons, pas l'usb
lancer  les commander de prog

Ouvrir une console (gnome-terminal sous gnome ou konsole sous kde)
Se placer dans le répertoire où se trouve le fichier bootloader,  par défaut :

Code: [Select]
$ cd Téléchargements


Code: [Select]
$ sudo dfu-programmer at90usb82 erase
$ sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex


réponse attendue :
Validating...
4058 bytes used (99.07%)


Code: [Select]
$ sudo dfu-programmer at90usb82 reset


puis plug unplug usb/arduino



Note : testé avec dfu-programmer version 0.5.1 certaines versions antérieures peuvent ne pas fonctionner (ubuntu  >= 10.04 ok)

Bon courage,

Lionel
- Distributeur officiel Arduino - France

68tjs

Merci.
Je conclu que contrairement au document officiel la résistance de 10k est inutile, ça tombe bien parce que l'implantation a été revue au verso de l'Atmega8u et que les via ne sont plus au même endroit.

Je trouve quand même un peu gros que l'équipe arduino n'ai :
- pas mis la documentation à jour : les documents eagle sont toujours ceux de la première version: des pistes et des vias ont été déplacés et pas qu'un ou deux.
- livre des boards avec un régulateur en sot223 au lieu du Dpack, la différence entre les deux c'est juste une résistance thermique jonction-boitier de 15 d°/W au lieu de 6 , une bagatelle.
- livre toujours des anciennes versions 6 mois après une mise à jour du firmware sans faire de mise en garde sur l'utilisation avec Linux ou alors ils ne maîtrisent pas leur sous-traitant, tient je suis curieux de savoir dans quel pays il est le sous-traitant.

Bref je suis en colère, encore une fois j'accepte les problèmes techniques mais dans la transparence et l'honnêteté.

Encore merci, je vais attendre demain d'être plus calme pour faire la mise à jour.

al1fch

#4
Sep 07, 2011, 07:19 pm Last Edit: Sep 07, 2011, 07:31 pm by al1fch Reason: 1
Quote
je vais attendre demain d'être plus calme pour faire la mise à jour.
:)

Vu sur la FAQ
Quote
Who makes Arduino boards?

Most of the official Arduino boards are manufactured by SmartProjects in Italy. The Arduino Pro, Pro Mini, and LilyPad are manufactured by SparkFun Electronics (a US company). The Arduino Nano is manufactured by Gravitech (also a US company).


http://www.smartprj.com/catalog/

ci joint également le schéma de la Uno Rev2 récupéré sur la mailinglist des developeurs Arduino ainsi que  les fichiers Eagle ( carte et schéma) (source : http://arduino.cc/pipermail/developers_arduino.cc/2011-June/005181.html.

Il semble que le site Arduino ne soit pas encore à jour.


Snootlab


Merci.
Je conclu que contrairement au document officiel la résistance de 10k est inutile, ça tombe bien parce que l'implantation a été revue au verso de l'Atmega8u et que les via ne sont plus au même endroit.

Avec plaisir,
J'imagine (je vais vérifier) que cette résistance est un pullup ou down et qu'elle assure un peu de robustesse à l'opération, je ne dirai pas "inutile" mais plutôt "pas indispensable".

Lionel
- Distributeur officiel Arduino - France

68tjs

Opération mise à jour réussie.

OS -> Debian testing
dfu-programmer  version 5.11 dépot debian-testing
Merci à tous


max49

Merci pour l'info :)
mis a jour sans problème sous ubuntu 11.04

Go Up