Monorailcat

Canon Pixma MX700 : Error U051, Error 6A80

icon 2015-09-11 - No comments

J'avais une imprimante Canon Pixma MX700 récupérée parce qu'elle affichait "Ink absorber is full" et refusait d'imprimer.

Reset
Après quelques minutes de recherches la procédure de reset arrive :
  1. Maintenir appuyé le bouton "triangle"
  2. Presser le bouton "Power" 2 à 5 secondes
  3. Relacher le bouton "triangle"

L'imprimante doit s'initialiser, effectuer des tests, puis afficher le message "service-mode". En l'arrêtant puis au démarrage suivant, l'erreur n'est plus prise en compte.

Il est possible que le "réservoir d'encre usée" soit plein, mais ce ne sont pas les quelques mL d'encre contenus dans une cartouche qui vont fuire et souiller les environs de l'imprimante.

Déblocage de la tête

Après un an, l'imprimante affichait "Error 6A80" et refusait d'imprimer. En recherchant, ce code d'erreur correspond à "Head locked", soit "chariot d'impression bloquée".
En ouvrant le capot de l'imprimante, le chariot doit normalement se centrer pour permettre de changer les cartouches, ce qui échoue. on peut essayer de tirer/pousser le chariot à la main sans succès.

Sans idée, j'ai tout démonté, puis cassé un clip/ressort servant à verrouiller la tête lorsque l'imprimante est éteinte. Le pivot du clip étant usé, il s'est mis de travers et a bloqué le chariot en position verrouillée.

Au démarrage suivant, l'imprimante effectue un test en faisant bouger le chariot, avec succès.

Après d'autres recherches, ils serait possible de débloquer temporairement ce clip en passant un bout de papier épais sous le chariot, jusqu'à ce qu'il soit débloqué.

À noter qu'il est possible de tester l'imprimante avec le capot ouvert en bloquant le capteur (A).
Cover sensor

Tête non-installée
Au remontage, l'imprimante affichait "Error U051", correspondant à "No print head installed. Cartridge Error", soit "Tête d'impression non-installée, erreur de cartouches".

J'ai essayé de nettoyer les connecteurs des têtes et des cartouches, de démonter entièrement le chariot pour le vérifier et de remettre le firmware à zéro, sans succès.

Au final, l'imprimante à été sauvagement démontée pour cannibaliser les pièces intéressantes

Liens/Sources

icon Tags de l'article : ,

Canon Pixma MX700 : Alimentation

icon 2015-09-05 - 1 comment

Cette imprimante a une alimentation 100-240v → 24V 0.5A et 32V 0.85A, modèle K30290.
Canon Pixma PSU

Seulement elle ne fonctionne pas sans que la carte système de l'imprimante ne lui renvoie pas de signal d'activation.

En regardant, on identifie le brochage :
  1. 32V
  2. GND
  3. 24V
  4. GND
  5.  ENABLE

Si le signal enable est en l'air ou à 0V, l'alimentation est en mode "sleep", et les rails 32V et 25V sont respectivement à 10V et 7.5V.

Par contre le signal Enable doit recevoir une tension d'environ 3V pour l'activation, sur la base du transistor NPN Q5 qui rajoute R26 en parallèle de R24 sur le réseau de feedback de l'alimentation.
Il serait possible de relier le signal Enable à une sortie de l'alim en changeant la résistance R27, mais le plus simple est de dessouder R27 et de court-circuiter le collecteur et l'émetteur de Q5.
Canon Pixma PSU hack

La plus grosse difficulté est d'ouvrir le boitier en plastique clipsé.
Il n'y a pas de solution idéale : ça s'ouvre en forçant avec un tournevis plat, et en cassant quelques clips.
Canon Pixma PSU clips

icon Tags de l'article : , ,

Afficheurs à LEDs

icon 2014-12-22 - No comments

Récupération
J'ai récupéré un équipement de laboratoire fabriqué par Sofraser avec un module d'interface pour des capteurs de viscosité et deux modules de contrôle et d'affichage. Cet équipement est trop ancien et la documentation n'est plus disponible sur le site web du constructeur, mais il est possible d'en récupérer des pièces.

Tests et mesures
Les modules de contrôle et d'affichage sont formés de 3 cartes emboitées :
  • Carte d'alimentation (transfo, régulateurs de tension), d'interfaces analogiques (comparateurs et amplis) et d'actionneurs (sorties à relais)
  • Carte à MCU (Intel 8031, EPROM, SRAM, NV-SRAM)
  • Carte d'affichage (afficheurs 7 segments, LEDs, boutons, drivers NPN et registre à décalage UCN5812AF d'Allegro)
Sofraser 6001 power-analog, digital-MCU and display boards

Reverse Engineering Hardware
En fonctionnement normal, sans capteurs branchés, l'afficheur affiche quelque chose sur chaque afficheur.
Sofraser 6001 Display
Comme l'afficheur fonctionne, on peut mesurer les tensions d'alimentations et vérifier rapidement l'allure des signaux au voltmètre.

Pour identifier la suite, il faut débrancher l'afficheur, sortir la datasheet du registre à décalage et tester à l'Ohm-mètre.

Ce qui nous donne le pinout du connecteur :
  1. VDD (Power, 3~60V), il est peu probable que les transistors apprécient plus de 15V
  2.  ?
  3. ?
  4.  Blank/Strobe
  5.  VDD (Logic, 3~15V), à adapter aux niveaux des signaux
  6. SW2
  7. CLK
  8. SW1
  9. SDIN
  10. SW3
  11.  GND
  12. SW4
Les pins en vert sont connectés directement au registre à décalage et acceptent des signaux TTL et LV-TTL.
Comme on a un registre à décalage, on peut être tenté d'utiliser un périphérique SPI, sauf que ceux des AVR et des MSP430 sont incapables de sortir des mots de 20bits... Il faudra faire du bit-bang en software.

En regardant la datasheet, on observe que les signaux SDIN et CLK permettent de charger le registre à décalage. Ensuite le signal Strobe permet d'activer le latch et le signal Blank permet d'activer le buffer.
Sur ces cartes, les signaux Strobe et Blank sont reliés. Ainsi on économise un fil.
UCN5812AF register schematics

Reverse Engineering Software
En balayant le registre, on peut se rendre compte de l'adresse de chaque afficheur, segment et LED.
display schematic

Afficheurs :
  1. 0x002000
  2. 0x001000
  3. 0x000800
  4. 0x000400
  5. 0x080000
  6. 0x040000
  7. 0x020000
  8. 0x010000
  9. 0x004000
LEDs :
  1. 0x008004
  2. 0x008020
  3. 0x008040
  4. 0x008080
  5. 0x008100
  6. 0x008200

On remarque aussi que tout est câblé ensemble. On peut choisir d'allumer les segments et les digits un par un, mais pas indépendamment (il est possible d'afficher " 1 1", mais pas "1234").
Pour afficher autre chose, il faut utiliser la persistance rétinienne et balayer chaque valeur par digit.

On peut associer les segments aux nombres et lettres que l'on va afficher :
  • 0 - 0x3F0
  • 1 - 0x180
  • 2 - 0x368
  • 3 - 0x3C8
  •  4 - 0x198
  •  5 - 0x2D8
  • 6 - 0x2F8
  • 7 - 0x380
  • 8 - 0x3F8
  • 9 - 0x398
  • A - 0x3B8
  • b - 0x0F8
  • C - 0x270
  • d - 0x1E8
  • E - 0x278
  • F - 0x238
  • . - 0x004

Le programme est bêtement formé de LUTs (afficheur, LED et digits) et de boucles (SPI bit-banging et selection de l'afficheur/LED).
LED display first try


Chaînage
Le pin 2 est une sortie du registre à décalage et n'est pas câblée, mais il est possible de chaîner plusieurs afficheurs, seule la "longueur" du mot est doublée (40bits).
chaining LED displays


Références

icon Tags de l'article : ,