# epson-l3110-driver: investigating the printer's USB and ESC/P-R exchanges

> epson-l3110-driver investigates the Epson L3110's USB printing exchanges while developing a Linux driver in C. Its notes use captured print-job traffic to identify the IEEE 1284 device ID, EJL session setup and ESC/P-R command framing. USB communication is still in progress, and the driver cannot yet print pages.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-06
- Original resource: <https://github.com/mikel-btw/epson-l3110-driver>
- Primary source: <https://github.com/mikel-btw/epson-l3110-driver/blob/e0fbf772b698bf010e3fe39bc1eb19034f0dee06/docs/protocol-notes.md>
- Catalog page: <https://awesomerea.org/resources/epson-l3110-driver-case/>
- Record JSON: <https://awesomerea.org/resources/epson-l3110-driver-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/epson-l3110-driver-case/index.md)

## Requirements & limits

- **Prerequisites:** An Epson L3110 printer and Linux are needed; the current Makefile requires libusb-1.0 and libcups development files.
- **Limits:** Printing, image processing and the CUPS filter and backend are pending.
- **License:** GPL-3.0 license.

## Primary sources

1. <https://github.com/mikel-btw/epson-l3110-driver/blob/e0fbf772b698bf010e3fe39bc1eb19034f0dee06/docs/protocol-notes.md>
2. <https://github.com/mikel-btw/epson-l3110-driver/blob/e0fbf772b698bf010e3fe39bc1eb19034f0dee06/README.md>

## More in Protocols

- [MS5 WiFi Microscope: reconstructing the camera's UDP video protocol](https://awesomerea.org/resources/ms5-wifi-microscope-case/index.md) · Case study
- [lux-lat-long-log: reconstructing LUMIX S5 BLE GPS communication](https://awesomerea.org/resources/lux-lat-long-log-case/index.md) · Case study
- [Magene L308: reconstructing a smart taillight's BLE control protocol](https://awesomerea.org/resources/magene-l308-taillight-case/index.md) · Case study
- [xbloom-ble: a client for the xBloom Studio BLE protocol](https://awesomerea.org/resources/xbloom-ble-case/index.md) · Case study
- [ak820: reconstructing AJAZZ AK820 Pro HID control on macOS](https://awesomerea.org/resources/ajazz-ak820-pro-mac-case/index.md) · Case study
- [GameTrak Liberation: a client for the controller's HID protocol](https://awesomerea.org/resources/gametrak-liberation-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
