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.
Carte
La carte est identifiée comme Melzi2.0_V5. Le microcontroller est un Atmega 1284P.
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.
$ /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.