Réparation Tronxy P802E

Réparation Tronxy P802E

Le FabLab de Saint-Jean a récupéré une imprimante 3D de type tronxy P802E. Au premier branchement, celle-ci n’a pas voulu fonctionner. Me voici donc parti pour comprendre pourquoi et la remettre en état.

La machine

Chassis P802E/M

Le chassis est assez classique : modèle cartésien, tête mobile en X et Z, plateau mobile en Y.

Ecran et sélecteur

L’écran est un 20x4. Le sélecteur se compose de 5 boutons en croix.

Face

Arrière

Carte

La carte est identifiée comme Melzi2.0_V5. Le microcontroller est un Atmega 1284P.

Melzi

Specs :

Premier diagnostic

Forcément, le premier coupable auquel on pense c’est la carte. Je l’ai donc débranchée pour pouvoir la tester plus facilement.

J’avoue avoir un peu tatoné au début, avant de comprendre qu’il y a un jumper au milieu de la carte qui permet de sélection le type d’alimentation : soit USB soit alimentation externe.

Une fois branchée au PC, celui-c détecte bien un composant série, mais rien… carte muette. Sur certains forums, j’ai cru comprendre que la machine pouvait venir nue et/ou qu’il fallait lui mettre un bootloader pour commencer à la bidouiller. Allons-y donc pour ça.

Mise à jour

Flash bootloader

En suivant le tutoriel pour la flasher je découvre une partie de l’écosystème Arduino qui m’était inconue.

Mais les différentes tentatives de flash du bootloader restent infructueuses : parfois elle commence un peu, le temps de lire quelques valeurs et puis plus rien. J’hésite à considérer que la carte est protégée ou qu’un défaut la rend fonctionnelle uniquement les quelques fractions de seconde lors de la pression du reset.

avrdude-log.txt

$ /var/lib/flatpak/app/cc.arduino.arduinoide/x86_64/stable/298e910a67641f4d56433e934a7818d08ad2faa036aaff19a7edc0c66183704b/files/Arduino/hardware/tools/avr/bin/avrdude -C/var/lib/flatpak/app/cc.arduino.arduinoide/x86_64/stable/298e910a67641f4d56433e934a7818d08ad2faa036aaff19a7edc0c66183704b/files/Arduino/hardware/tools/avr/etc/avrdude.conf -v -patmega1284p -cstk500v1 -P/dev/ttyACM0 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m -F

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

         System wide configuration file is "/var/lib/flatpak/app/cc.arduino.arduinoide/x86_64/stable/298e910a67641f4d56433e934a7818d08ad2faa036aaff19a7edc0c66183704b/files/Arduino/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/home/bonnefil/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
         AVR Part                      : ATmega1284P
         Chip Erase delay              : 55000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATmega1284P is 1E 97 05
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.11s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x00 != 0x3f
avrdude: verification error; content mismatch

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.

Conclusion

Bon, c’est pas très glorieux. On va pas perdre trop de temps sur cette carte et on va tenter d’utiliser d’autres cartes en stock. Mais ça, c’est une autre histoire.