Outils pour utilisateurs

Outils du site


mise_a_jour_linux

Mise à jour de BBV sous Linux

Ce tuto est basé sous Ubuntu (ou Débian).

Installer Avrdude

Pour installer AVRdude:

sudo apt-get install avrdude

Téléchargement de la mise à jour

Une fois fait, il faut télécharger la dernière version du code sur le page Téléchargements.

Trouver le port sur lequel BBV est connecté.

Connecter le BBV à votre pc via la port micro-USB présent sur la carte. www.warre.fr_wp-content_uploads_2022_01_bbv-usb.jpg

Une fois fait, taper en ligne de commande la commande

dmesg

à la fin, vous devez avoir de listé sur quel port le BBV a été connecté:

[193308.879880] usb 3-1.1: new full-speed USB device number 5 using xhci_hcd
[193308.981659] usb 3-1.1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[193308.981685] usb 3-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[193308.981695] usb 3-1.1: Product: USB Serial
[193308.992258] ch341 3-1.1:1.0: ch341-uart converter detected
[193308.993516] usb 3-1.1: ch341-uart converter now attached to ttyUSB0
guillaume@guillaume-Latitude-7285:~$

Ici, nous lisons “ttyUSB0”, le port de connexion est donc : /dev/ttyUSB0. Cela peut changer et être ttyUSB1 ou 2 ou 3…

Attention: utilisez bien un câble mini-USB de données!! de nombreux câbles fournis avec les outils rechargeables (comme les lampes de vélo de Décath') ne possèdent que de 2 fils (5v et Gnd) il en manque 2, un vrai câble usb contient 4 fils :)

Mise à jour

  1. Nous avons donc repéré le port de connexion (dans cet exemple /dev/ttyUSB0)
  2. Nous avons récupérés le fichier de mise à jour. (Dans cet exemple nous prendrons la version 3.2: BBV_V3.2.ino.hex)
avrdude -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 115200 -D -U flash:w:./BBV_V3.2.ino.hex:i

Vous devriez avoir une sortie ressemblant à cela:

guillaume@guillaume-Latitude-7285:~$ avrdude -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 115200 -D -U flash:w:./BVV_V3.2.ino.with_bootloader.hex:i

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/guillaume/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading input file "./BVV_V3.2.ino.with_bootloader.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 1.86s

avrdude: 32768 bytes of flash written
avrdude: verifying flash memory against ./BVV_V3.2.ino.with_bootloader.hex:
avrdude: load data flash data from input file ./BVV_V3.2.ino.with_bootloader.hex:
avrdude: input file ./BVV_V3.2.ino.with_bootloader.hex contains 32768 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.47s

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

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

Erreur possibles

  • La qualité du câble comme dit plus haut :)

Vous pouvez avoir des erreurs de ce type :

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1e
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x98
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x80
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x06
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x98
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x98
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x66

Cela correspond en général à un problème de vitesse de port série. Dans la commande ci-dessus j'ai mis 115200 bauds mais vous pouvez faire des tests avec les vitesses.

  1. 9600
  2. 19200
  3. 38400
  4. 57600
  5. 115200
mise_a_jour_linux.txt · Dernière modification: 2022/01/23 09:49 de guillaume