Printer-80 LCD
LCD printer for SYSTEM 80.
Emulating on a LCD display of the service printer from SYSTEM 80. "low-cost" realization using a simple 4 wires interface.
For SYSTEM 80 only (the printer output doesn't exists on 80A, neither on 80B).
The mystery of the SW77
On the SYSTEM 80, one of the contacts of the matrix is never wired, or used: this is the SW77. When connecting this contact, through a diode between STR7 and RTN7, this causes a blockage of the CPU card. The role of this contact remained long mysterious.
We discovered its hidden function during the reverse engeenering of the PROMs U2/U3 of SYSTEM 80:
This contact should be used in combination with a specific thermal printer. It is only wired on benches tests and raises printing on a paper ticket,
the following informations:
- Model number of the Pinball (read in the game PROM)
- Accounting of the three coins (left, center, right)
- Number of games played
- Number of free plays
- Percentage between paid and free parties
The service's printer is connected to the A1J6 connector, via signals (output data) STR0 and RTN6 (return acknoledge).
When there is no printer attached, the CPU will wait indefinitely an acquittal which never happens, this explains the blocking found previously.
Presentation of the "Printer-80 LCD" modul
We did a standalone installation alternative to this service printer (which is also absolutely not available).
The module can be left permanently in the pinball machine and does not disturb its operation. The illumination of the LCD is automatic and
activates only the time of print, when the user pressed the SW77.
The prototype was first developed on an experimentation board.
Realization
The module can be done on a simple plate of experimentation with the following components:
- A test plate.
- A 2 x 16 lines (ref QC1602A) backlit LCD display.
- A 2.2 KΩ resistor.
- Two 1N4148 diodes (one will be used for the SW77).
- Support 14-pin.
- A PIC 16F684 (to be programmed).
- A breakable connector (male + female) 16 contacts.
- Wiring wire.
The module is connected by four wires, two for the 5 volts supply, the other two going towards STR0 and RTN6 of the A1J6 connector.
For details, refer to the diagram:
A board of about 40 mm x 35 mm will be enought and will take place under the LCD (click on photos to enlarge):
Example of achievement on a bands board (viewed from above):
Programming of PIC 16F684
The PIC 16F684 microcontroller must be programmed before be implanted on the board. Program (.hex file) is available for free using download:
Make sure during programming that the areas "FLASH" (program) + "EEPROM" (data) and "CONFIG" (configuration) are properly taken into account and properly loaded by your programmer.
Protocol and interface
The signals between the CPU board and the printer are at TTL levels. Exit STR0 is used for the data while the RTN6 return serves as a signal of acquittal.
The CPU sends datas in serial mode. After sending data, the CPU waits the RTN6 signal passes at level 0 (taking into account by the printer), then again expects that it will revert to level 1 (end of treatment by the printer).
The format and transmission speed are very peculiar. Data are issued on 7 bits in the normal order (bit LSB First, bit MSB last) each in about 1670 µs or 600 bps transmission speed. The CPU sending first half a start bit (getting to level 0), and then released the 7 bits of data, a frame during approximately 12.5 ms (7.5 x 1.67 ms). This relatively low flow of 80 characters per second is yet widely enough to drive a thermal printer.
The Protocol is on the other hand, more standard, ASCII-encoded 7-bit data.
- Printing starts with sequence of 0x00 (Nul), 0x0E (Shift Out), 0x18 (CAN), 0x11 (DC1).
- Each row of 15 characters, ends with a 0x14 (DC4).
- The end of the print is indicated by a 0x12 (Form Feed).
Distribution
This achievement is available for free.