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.
| 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 |
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.
- gcc >= 11 or clang >= 16
- cmake >= 3.21
- git
- libcapt (downloaded automatically by CMake FetchContent)
- cups
- libusb-1.0
cmake -S. -B build
cmake --build buildThis 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 buildIf you don't want to blacklist Canon CAPT v1 printers for the CUPS USB backend, you can use:
cmake --install build --component=base- List devices:
lpinfo -v
# Example output
direct usb://Canon/LBP3200?serial=00000000
direct captusb://Canon/LBP3200?drv=capt&serial=00000000- Copy captusb URI and add printer using lpadmin:
lpadmin -p LBP3200 -E -v 'captusb://Canon/LBP3200?drv=capt&serial=00000000' -m LBP3200CAPTPPD.ppd- Verify with lpstat:
lpstat -v
# Example output
device for LBP3200: captusb://Canon/LBP3200?drv=capt&serial=00000000- Go to admin page (default: http://127.0.0.1:631/admin).
- Click «Find New Printers».
- Select the captusb printer.
- And the model should be like
Canon LBP3200, captppd 0.1.0.
- Make sure that your printer is displayed in the
lsusboutput. - Execute the backend directly:
sudo $(cups-config --serverbin)/backend/captusb- If the backend couldn't detect the printer, create an issue.
- Check
lpstat -vand make sure that thecaptusbbackend is being used. - Make sure you are using the correct PPD (should be like
Canon LBP3200, captppd 0.1.0, notCanon LBP3200 CAPT ver.1.5). - Enable CUPS debug logging:
cupsctl --debug-logging- See logs at
/var/log/cups/error_log.
To filter out unwanted messages, you can use grep:
grep '\] \[Job' /var/log/cups/error_log- Create an issue and attach the log.
- 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
captppd is licensed under a 2-clause BSD license.