-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Captdriver is a free and open-source driver for Canon printers that only accept the proprietary Canon Advanced Printing Technology (CAPT) data stream format and communications protocol. This includes many, but not all Canon laser printers with an LBP- model number. Some Canon lasers from the imageCLASS and imageRUNNER series have been reported to use CAPT as well.
In CUPS terminology, captdriver is a filter which converts data to be printed into the CAPT format.
Captdriver will only aim to support printers that only support CAPT. Support for Canon printers that accept open standards such as Printer Control Language (PCL) and PostScript are beyond the scope of this project, as CUPS has comprehensive built-in support for these devices.
This project is based on the works of Rildo Pragana, Nicolas Boichat, Alexey Galakhov, Benoit Bolsee as well as Vitaliy Tomin.
This driver must be manually compiled and installed. Guides for building, installation and configuration are kept on separate pages due to the insurmountable number of possible configurations between different operating systems. These differences affect the way CUPS drivers are installed.
To get started, go to the unified guide, and identify your operating system to pick the right guides for installation. Also check out the Installation Examples, just in case you may find it useful.
Alexey Galakhov has pretty much nailed it with the data stream format and communications protocol, and the driver performs well in essential printing tasks with simple page layouts.
However, device compatibility is still pretty narrow, and preparation of pages with complex layouts can be slow, in the order of a minute or more in informal tests.
Work on early-stage support for SCoA printers has begun, in another fork by Oleg Sazonov, starting with the LBP1120.
Extra features such as drum cleaning, detection of service errors and Automatic Image Refinement are yet to be implemented.
The driver currently only recognises a few out of the many targeted printers. Help with widening support, adding missing features, improving reliability and testing is wanted, and would be greatly appreciated.
End users with supported printers are also welcome to try the driver, under the condition that users will be using this software at their own risk. This software is licensed under the terms and conditions of the GNU General Public License, Version 3.
The following printer-host-operating system combinations have been found to work:
-
LBP2900
- x86-64(?): Manjaro
- ARMv7: Ubuntu 19.10
-
LBP3000
- x86-64: Debian 10.6, 10.7, Fedora 32
- aarch64/ARMv8-A: Alpine Linux 3.12
LBP3010 support has not been tested since commit 6938395.
LBP3100 support has been verified by at least one user (with an LBP3108) using Galakhov's original version.
LBP1120 support is being implemented, see Sazonov's fork.
All tests on ARM-based systems were run on Raspberry Pi computers. An ongoing issue prevents the driver from working with the LBP2900 on some hosts running GNU/Linux with libusb 1.0.22 and earlier. This issue is discussed in greater detail in the following conversations:
- https://github.com/mounaiban/captdriver/commit/18797c4c8edf916add31c09a2c527cf284021e14#r38572647
- https://github.com/mounaiban/captdriver/issues/3
- https://github.com/agalakhov/captdriver/issues/7
The original captdriver codebase is maintained by Galakhov, and has a cleaner codebase and commit history.
This fork is concerned mainly with three issues:
-
Maintaining support for the LBP3000
-
Maintaining build and test suites to allow captdriver to be easily updated to be run on new versions of CUPS and operating systems.
-
Maintaining reliability with the goal of making captdriver meet quality standards for inclusion in official repositories of various package distribution systems.
This fork may contain features and bugs which may not be present in Galakhov's original repository or the other forks.
At time of writing, the only supported way to use CAPT-only printers is to install proprietary drivers from Canon. While support is reliable in Windows and macOS (with a few minor annoyances), the process of setting up the proprietary CUPS driver and getting it to work on other operating systems^, especially GNU/Linux, was found to be frustrating.
This project aims to produce a free and open-source alternative driver that can be maintained by the general public. It is hoped that, through contributions from the greater community, a reliable and trouble-free experience can be finally achieved with these printers on alternative operating systems.
^ macOS (nee OS X, nee Mac OS X) is assumed to be the only operating system to date that has consistently provided reliable support for CAPT-only printers via CUPS with the proprietary drivers.
Details of the CAPT format, including printer control protocols,
status registers and compression algorithms are documented in the
SPECS
file. While incomplete and expected to contain errors and
omissions, help with expanding it and making corrections is greatly
appreciated.
Content in this wiki is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Any errors, omissions or suggestions? File an issue and apply the wiki
label.
Bookmarks
Unofficial Introduction to CAPT (Executive Summary)
Rootless Write Access To USB Devices
Other Canon Printer-Related Projects
SPECS: 0xA1A1
Command and Response Format
Search for pages starting with
-
SPECS
for notes on the operation of the CAPT data formats and communications protocol -
TESTING
for guidelines on testing Captdriver -
TIPS
for potentially helpful information on studying the project or the CAPT format-protocol