Printer-80 LCD

Pinup
Imprimante LCD SYS80

Imprimante LCD pour SYSTEM 80.

Emulation sur un afficheur LCD de l'imprimante de service des SYSTEM 80. Cette réalisation "low-cost" utilise une interface simple à 4 fils.

Pour SYSTEM 80 uniquement (la sortie imprimante n'existant pas sur 80A, ni sur les 80B).

Le mystère du SW77

Sur les SYSTEM 80, l'un des contacts de la matrice n'est jamais câblé, ni utilisé: c'est le SW77. Lorsque l'on branche ce contact, par l'intermédiaire d'une diode entre STR7 et RTN7, cela provoque un blocage de la carte CPU. Le rôle de ce contact est resté longtemps mystérieux.

Nous avons découvert sa fonction cachée lors du reverse-engeenering des PROMs U2/U3 des SYSTEM 80:
Ce contact doit être utilisé en association avec une imprimante thermique spécifique. Il n'est câblé que sur les bancs de test et déclenche l'impression sur un ticket en papier, des informations suivantes :

  • Numéro du flipper (lu dans la PROM de jeu)
  • Comptabilité des trois monnayeurs (left, center, right)
  • Nombre de parties jouées
  • Nombre de parties gratuites
  • Pourcentage entre parties payantes et gratuites

L'imprimante de service est branchée sur le connecteur A1J6, via les signaux STR0 (sortie des données) et RTN6 (retour acquittement).

Lorsqu'il n'y a pas d'imprimante connectée, le CPU attend indéfiniment un acquittement qui n'arrive jamais, ceci explique le blocage constaté auparavant.

Présentation du module "Printer-80 LCD"

Nous avons réalisé un montage autonome pouvant se substituer à cette imprimante de service (celle-ci étant d'ailleurs absolument introuvable).

Le module peut être laissé à demeure dans le flipper et ne pertube en rien son fonctionnement. L'éclairage de l'écran LCD est automatique et ne s'active que le temps de l'impression, lorsque l'utilisateur appui sur le SW77.
Printer-80 LCD Printer-80 LCD
Le prototype a d'abord été réalisé sur une planche d'expérimentation.

Réalisation

Le module peut être réalisé sur une simple plaque d'expérimentation avec les composants suivants:

  • Une plaque d'essai.
  • Un afficheur LCD 2 x 16 lignes (réf QC1602A) rétroéclairé.
  • Une résistance de 2,2 KΩ.
  • Deux diodes 1N4148 (l'une servira pour le SW77).
  • Un support 14 broches.
  • Un PIC 16F684 (à programmer).
  • Une barette sécable (mâle + femelle) 16 contacts.
  • Du fil de câblage.

Printer-80 LCD Printer-80 LCD
Le module n'est relié que par quatre fils, deux pour l'alimentation en 5 volts, les deux autres allant vers STR0 et RTN6 du connecteur A1J6.

Pour les détails, se reporter au schéma:
Schema

Une plaque d'environ 40 mm x 35 mm suffira et viendra se loger sous l'afficheur LCD (cliquer sur les photos pour les agrandir):

Printer-80 LCD Printer-80 LCD

Exemple de réalisation sur une plaque à bandes (vu de dessus): Printer-80 LCD

Programmation du PIC 16F684

Le micro-contrôleur PIC 16F684 doit être programmé avant d'être implanté sur la carte. Le programme (fichier .hex) est disponible gratuitement en téléchargement:

Télécharger

Assurez-vous lors de la programmation que les zones "FLASH" (programme) + "EEPROM" (données) + "CONFIG" (configuration) sont bien prise en compte et correctement chargées par votre programmateur.

Protocole et interface

Les signaux entre la carte CPU et l'imprimante sont aux niveaux TTL. La sortie STR0 est utilisée pour les données tandis que le retour RTN6 sert de signal d'acquittement.

Le CPU envoi les données en mode série. Après l'envoi d'une donnée, le CPU attend que le signal RTN6 passe au niveau 0 (prise en compte par l'imprimante), puis attend de nouveau qu'il repasse au niveau 1 (fin du traitement par l'imprimante).

Le format et la vitesse de transmission sont très particuliers. Les données sont émises sur 7 bits, dans l'ordre normal (bit LSB en premier, bit MSB en dernier), chacun durant environ 1670 µs, soit une vitesse de transmission de 600 bps. Le CPU envoi d'abord un demi bit de start (mise au niveau 0), puis sort ensuite les 7 bits de données, une trame durant environ 12,5 ms (7,5 x 1,67 ms). Ce débit relativement faible, de 80 caractères par seconde, est pourtant largement suffisant pour piloter une imprimante thermique.

Le protocole est en revanche, plus standard, avec des données codées en ASCII sur 7 bits.

  • L'impression commence par la séquence 0x00 (NUL), 0x0E (Shift Out), 0x18 (CAN), 0x11 (DC1).
  • Chaque ligne, de 15 caractères, est terminée par un 0x14 (DC4).
  • La fin de l'impression est indiquée par un 0x12 (Form Feed).

Distribution

Cette réalisation est disponible gratuitement.

Gratuit

Dernière mise à jour de cette page: 7 Août 2018