# The serialPOS Driver

This section talks about using LCDproc with a point of sale ("POS") character-display.

The `serialPOS` driver is currently working with the AEDEX emulation protocol, and may support Epson ESC/POS and Logic Controls. It can be extended to work with various other protocol displays.

The driver should operate most character POS displays with a serial (RS-232) input. Because these displays use a standardized protocol, if the protocol is supported by your display, it should work as expected. Feedback is welcome.

## serialPOS: Emulation Protocol Status

Protocol | Display tested | Currently Supported | Remark
AEDEX | Emax | Yes |
IEE |  | No |
Epson | No | Yes |
Emax |  | No |
IBM |  | No |
Logic Controls | No | Yes |
Ultimate |  | No |

`(`…`)`: Feature not tested.

## Connecting The Display

Connecting the display should consist of simply plugging it into your computer's RS-232 serial port. Because these displays typically support full RS-232, no additional wiring is needed. If your computer does not have such a port (many newer computers don't), you can use a USB to serial adapter with a driver provided by the adapter manufacturer.

If your display supports a pass-through function, you can connect an RS-232 keyboard or terminal to the pass-through port. This will allow you to input keystrokes to LCDproc and control features and menus. Use the pass-through keyboard's arrow, delete, and return keys by default.

If your display supports a pass-through function, but you do not have another RS-232 device connected to the pass-through port, you may experience hangs if an improperly formatted command sneaks through. This is because the display is waiting for the pass-through device to accept the data and a blocking state is created within the display. You can either connect another RS-232 device or use a wire to jumper the CTS and RTS pins together within the display.

## Configuration in LCDd.conf

### [serialPOS]

`Device` = ``DEVICE``

- Device to use in serial mode. Usual values are `/dev/ttyS0` or `/dev/cu.usbserial`. Default is `/dev/lcd`.

`Size` = ¶meters.size;

- Specifies the size of the VFD in characters. If not given, it defaults to `16x2`.

`Type` = { ``IEE`` | ``AEDEX`` | ``Epson`` | ``Emax`` | ``IBM`` | ``LogicControls`` | ``Ultimate`` }

- Set the communication protocol to use with the POS display. If not specified it defaults to `AEDEX`. Currently, only AEDEX is supported.

`Speed` = { ``1200`` | ``2400`` | ``9600`` | ``19200`` | ``115200`` }

- Set the the baud rate communication with the POS display. If not given the default of `9600` is used.