Skip to content

darkvision77/captppd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

captppd

Core tests

CUPS driver for Canon CAPT v1 printers based on reverse engineering of the original driver.
Implemented as a CUPS backend using libusb.

The driver is divided into two parts: the CUPS side (this repository) and the protocol side (libcapt).

Important

This project is currently in an EXPERIMENTAL state.

Target devices

Model Cartridge PPM (A4) Max Resolution Year (approx.)
LBP800 EP-22 8 600 dpi 1999-2001
LBP810 EP-22 8 600 dpi 2001-2002
LBP1120 EP-22 10 600 dpi 2003-2004
LBP1210 EP-25 14 600 dpi ~2002
LBP3200 EP-26/EP-27 18 600 dpi 2004-2006

Status

It cannot be said that the driver is stable until there are appropriate tests on the verified simulator.

At the moment, the protocol is quite well known. The raster format (SCoA compression algorithm) is also well known and, theoretically, is completely reliable.

Compilation

Dependencies

Compile-time

  • gcc >= 11 or clang >= 16
  • cmake >= 3.21
  • git
  • libcapt (downloaded automatically by CMake FetchContent)

Run-time

  • cups
  • libusb-1.0

Compile

cmake -S. -B build
cmake --build build

Install

This command will install the backend, PPD files, and quirks that prevent Canon CAPT v1 printers from being detected by the CUPS USB backend:

cmake --install build

If you don't want to blacklist Canon CAPT v1 printers for the CUPS USB backend, you can use:

cmake --install build --component=base

Usage

Adding printer from command line

  1. List devices:
lpinfo -v

# Example output
direct usb://Canon/LBP3200?serial=00000000
direct captusb://Canon/LBP3200?drv=capt&serial=00000000
  1. Copy captusb URI and add printer using lpadmin:
lpadmin -p LBP3200 -E -v 'captusb://Canon/LBP3200?drv=capt&serial=00000000' -m LBP3200CAPTPPD.ppd
  1. Verify with lpstat:
lpstat -v

# Example output
device for LBP3200: captusb://Canon/LBP3200?drv=capt&serial=00000000

Adding printer from user interface

CUPS web interface

  1. Go to admin page (default: http://127.0.0.1:631/admin).
  2. Click «Find New Printers».
  3. Select the captusb printer.
  4. And the model should be like Canon LBP3200, captppd 0.1.0.

Troubleshooting

If the printer has not been detected

  1. Make sure that your printer is displayed in the lsusb output.
  2. Execute the backend directly:
sudo $(cups-config --serverbin)/backend/captusb
  1. If the backend couldn't detect the printer, create an issue.

If the printer is not working

  1. Check lpstat -v and make sure that the captusb backend is being used.
  2. Make sure you are using the correct PPD (should be like Canon LBP3200, captppd 0.1.0, not Canon LBP3200 CAPT ver.1.5).
  3. Enable CUPS debug logging:
cupsctl --debug-logging
  1. See logs at /var/log/cups/error_log.
    To filter out unwanted messages, you can use grep:
grep '\] \[Job' /var/log/cups/error_log
  1. Create an issue and attach the log.

See also

  • UoWPrint — convert your old USB printer (or MFP) into Wi-Fi printer/MFP
  • mounaiban/captdriver — open source CUPS driver for the newer Canon LBP models

License

captppd is licensed under a 2-clause BSD license.

About

CUPS driver for Canon CAPT v1 printers

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •