Epson VFD hack – ESP8266

Publié le Catégorisé comme DIY, ESP8266 & ESP32, Microcontrôleurs Étiqueté , , , , , ,

Un écran de caisse VFD EPSON DM-D110-11 (MODEL M58BB) offert par un passant du hackerspace attendait sagement sa nouvelle vie.

Deux options étaient envisageables. La première, parler à la carte Epson dans le pied de l’écran. Pour cette méthode, il existe déjà des choses ici et là recherchez PyPos, …

Et, la deuxième option parler directement à l’écran VFD un Noritake-Itron CU20026SCPB-T23C. Quelle fût ma déception en ne trouvant pas la moindre datasheet sur ce modèle.

La nouvelle carte est composée d’un module DC/DC, d’un module TTL > RS232 et un Wemos D1 mini (ESP8266).

Après quelques minutes de recherches, je trouve assez d’informations pour commencer le hack. Voir sources en bas d’article. 4 fils, GND, VCC +12v, TX & RX. Un câble USB <> RS232 et une alimentation de labo seront parfaits pour commencer les tests.

GND // TX // RX // +12V

Source : sunrom.com

Pinout

1 - GND
2 - RS232 - TX Data
3 - RS232 - RX Data
4 - RS232 - RX Handshake
5 - RS232 - TX Handshake
6 - GND
7 - VCC +12V
8 - GND

Switches

1 - Aucune idée...
2 - 7 bits (on) - 8 bits (off)
3 - Parity - No Parity
4 - Parity even - odd
5 - Baud rate config
6 - Baud rate config
7 - Baud rate config
8 - Test / Demo

Baud rate

ON ON ON - 2400
ON ON OFF - 4800
OFF OFF OFF - 9600
ON OFF OFF - 19200
OFF ON ON - 38400
OFF ON OFF - 57600
OFF OFF ON - 115200

Code source

Je suis au début du développement au moment où j’écris cet article. L’évolution du code sera disponible sur GitHub. https://github.com/iooner/Epson-VFD-hack

Mais, en gros…

#include <SoftwareSerial.h>
// Software Serial sur les pin D1 et D2
SoftwareSerial TTLtoRS(D1, D2); // RX, TX

// Config caractères et lignes
const int vfd_max = 20;
const int vfd_lines = 2;

void setup()
{
  Serial.begin(115200);
  // Ouverture du serial vers le module TTL > RS232 avec le VFD configuré à 115200 bauds.
  TTLtoRS.begin(115200);
  // "Vider" l'écran
  TTLtoRS.write(0x0C);
  // Afficher "Hello World!"
  TTLtoRS.println("Hello World!");
}
void loop()
{
  // Ca tourne /o/.
}

Sources