-
Notifications
You must be signed in to change notification settings - Fork 16
Home
📣 Welcome back! This fork has recently re-synced with the original on 2022-06-26. Changes have been made to important parts of the codebase. If you run into any problems, please check the Issues section or leave a message there.
An exclusive feature, manual duplex, which unconditionally pauses the printer between pages is no longer available, but will be restored in a later release.
In the meantime, you may revert to 5cefa27, the last major commit before the re-sync.
More details about the re-sync will be posted soon. Thanks for your patience! 🙇♂️
Captdriver is a libre, open-source driver for Canon printers that only accept the proprietary Canon Advanced Printing Technology (CAPT) protocol and the associated compression formats. This includes many, but not all LBP Canon laser printers sold until the late 2000s.
Such printers were part of the Laser Shot product range, and in some regions, the i-SENSYS range. CAPT-only devices from the imageCLASS and imageRUNNER product lines have also been documented.
In CUPS terminology, captdriver acts both as a filter and a port monitor. It converts print data to a device-compatible format, while also monitoring the printer and coordinating print jobs as required by CAPT's full-time bi-directional operation.
Support for non-CAPT printers are beyond the scope of this project. CUPS has built-in support for PCL and IPP. Please check this list of other Canon printer-related projects if you have a device that uses CARPS or UFR.
This project is based on the works of Rildo Pragana, Nicolas Boichat, Benoit Bolsee, Alexey Galakhov, and Vitaliy Tomin.
This driver must be manually compiled and installed. To get started, go to the unified guide. The guide is written in a modular style to account for differences between operating systems or distros.
Also check out the Installation Examples, if it helps.
This fork was originally created to focus on maintaining LBP3000 support. It currently has three main goals:
-
Improve compatibility: enable use on a wider range of Linux distros and more operating systems and platforms.
- This depends on solving a long-standing problem with the CUPS-libusb interface.
-
Enhance usability: implement missing features and make the driver truly suitable for end-users.
-
Enable automatic installation and get the driver included in mainstream distro package repositories once goals 1 & 2 are achieved.
Maintaining similarity with the original source tree is a priority.
This fork has largely the same level of device support as Galakhov's original version. The driver is currently capable of handling most printing tasks but with two significant issues: the compatibility issues with the CUPS-libusb interface and pauses between pages.
The following printer-host-operating system combinations have been found to work:
-
LBP2900
- x86-64: Manjaro, Void Linux
- ARMv7: Ubuntu 19.10, 20.04.2 LTS
-
LBP3000
- x86-64: Debian 10.6, 10.7, Fedora 32
- aarch64/ARMv8-A: Alpine Linux 3.12
-
LBP3010
- x86-64: undisclosed GNU/Linux system, probably Ubuntu, Arch Linux or Manjaro
-
LBP3100/3108/3150
- x86-64: Ubuntu Kylin (inferred, see issue #13 of the the original version).
All tests on ARM-based systems were run on Raspberry Pi computers.
End users with supported printers are welcome to try the driver, at their own risk. This software is licensed under the terms and conditions of the GNU General Public License, Version 3.
Issues with CUPS' USB backend has been limiting compatibility to a rather narrow list of architecture-OS combinations. 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/8
- https://github.com/agalakhov/captdriver/issues/7
Finding a workaround for these compatibility problems is currently a top priority.
Older devices made from the late 1990s to the early 2000s used a different compression algorithm, SCoA, which is distinct from the newer Hi-SCoA algorithm.
SCoA support is required by LBP810 and LBP1120.
While still unsupported in the original and this fork, there is an ongoing work to implement SCoA support:
-
Oleg Sazonov's Fork hosts an ongoing WIP for SCoA support
Please see the SCoA Specifications Page for technical information.
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.
If you have a colour printer, your help is especially appreciated. Issue #10 is dedicated to discussions for CMYK/colour support.
This Captdriver fork was originally created to enable printing to an LBP3000 from GNU/Linux distros like Fedora and Ubuntu. Attempts to install the original Canon driver were met with frustration; it was discovered later that support for the original driver has been lost in newer distros (Ubuntu 14.04 was the latest OS found to be compatible).
This project aims to produce a free and open-source alternative driver that will extend support for CAPT printers to newer GNU/Linux distros, more processor architectures like Arm, Power and RISC-V, and more operating systems beyond Linux (e.g. FreeBSD, OpenBSD, NetBSD).
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.
Please also check out the following repositories:
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