I spent the last 3 years improving Linux printing and printer drivers.
I’m willing to reverse-engineer and rewrite proprietary drivers of Canon & Pantum, making a free open-source re-implementation, for Linux and macOS.
This is a fundraising campaign to make a good, polished
driver: it should be thoroughly tested under different
conditions on a real hardware, which costs money.
The money collected would allow me to buy several different models of
each printer family to release a complete and high-quality driver.
The campaign is also designed to check for social demand for open-source drivers.
AirPrint (also Mopria, IPP Everywhere) is a driverless standard, and
doesn’t require anything other than a modern operating system.
Non-AirPrint printers, which are discussed here, require the driver to
operate.
I’m focusing on older Canon UFR-II family and Pantum monochrome
models because they are quite popular and were sold (and some of them
still being selling) in millions.
People use them now and will be using them in 10 years, yet the software
support may not last that long: the non-AirPrint, non-Mopria models
require a driver to operate.
For example, Canon
LBP6030 (UFR-II LT) was introduced in 2014, but still manufactured
and sold in Asia and Europe. Canon added ARM64 support for this model
only in the latest update, on 20-Aug-2026.
Another model, MF3010
(UFR-II), originally introduced in 2011, is still manufactured, and is
not supported by any open-source driver.
Pantum printers ship x86-only driver (and violate GPL along the lines), which you can’t use on say Raspberry Pi that easily.
The next upcoming major CUPS printing service version, CUPSv3, does not work with driver-ful printers out of the box. This could be solved with a special driver wrapper called PAPPL-retrofit, which works better with FOSS drivers.
The current trend towards atomic read-only Linux distros will also
require driver architecture overhaul.
In other words, the project could also be seen as a preparation for the
bright future.
Absolutely!
Printers from 2004-2012 are from the golden era of manufacturing:
they are sturdy, repairable, and cheap to operate.
They do not offer subscription service or annoying firmware updates
which block third-party toner cartridges.
Since they don’t break physically easily, manufacturers tend to remove their software support to cycle out of usage.
This happened several times with Xerox and HP in the last 2 years.
I’ve made many print servers for
older printers and have statistics of what people own.
Here’s the chart of most popular models:
Depending on the funds collected:
I’ll try to buy used models on a second-hand market wherever
possible.
Money is collected only up to “Optimal” goal, no more. The funding will
be stopped once this amount is collected.
No, it’s a targeted fundraising campaign with a designated goal.
Donations are given to a person and can be spent for anything not directly related to the project, like food, transportation, entertainment.
Targeted funding, on the other hand, is used only for a specific purpose, for the hardware in this case. Your money is spent only to deliver a working and tested driver. The reverse-engineering and reimplementation labor is “free”.
Some computer problems are rather easy to solve, but no-one has solved it yet: it takes time, money, and learning effort to begin.
I’m such a person for these printers: it takes 3 years of preparation to solve this specific problem efficiently in several weeks, once and for all. I have experience with printing stack, printer drivers, reverse-engineering, and already wrote several drivers. This is a low-effort project which is easy to complete for me.
By running this campaign, I’d like to understand the social demand for open-source printer drivers. If there is, I’m happy to implement it; if there’s none, I won’t be upset.
Pantum driver uses GPL-licensed JBIG-KIT compression library linked statically, that’s why it’s a GPL-licensed driver. Despite that, Pantum does not provide its source code.
Canon UFR-II driver contains both FOSS (binaries which use JBIG-KIT
and other libraries) and non-FOSS parts. Making the driver for JBIG
models could be done using black-box method, by changing FOSS parts and
obsering the driver’s output, without disassembly/decompilation of the
proprietary parts.
For the other models it’s more tricky. The license
allows reverse-engineering only for creating modifications for personal
use:
You may modify the Software only for your own use and reverse engineer the same for debugging such modifications.
You shall distribute the Software to any third party under the same terms and conditions as contained herein.
And it’s not clear if black-box output analysis is considered a reverse-engineering work.
In case of possible license violation, the violator is me, not the users of my driver.
I’ve started working on printers in 2023, when I bought an old but
good model, but could not find a modern print server for it.
I decided to make my own Linux-based print server appliance. Many fixes
had to be done in all printing-related project to make it fast and
reliable.
The majority of contributions are upstreamed.
I’m the member of OpenPrinting GitHub group; worked on Samsung/Xerox/HP SpliX and foo2zjs drivers, contributed to Canon HiSCOA captdriver and helped with Canon SCoA captppd.
The funding is opened until 20 Dec 2026.
If by that time there is not enough money for a “small”
goal, the transactions will be refunded.
Transactions are anonymous. If you want your contribution/name/nickname
to be mentioned in any way, please contact me beforehand.
0.0%
Cryptocurrencies.
Please pay only from your own wallet/address, make sure you can receive incoming transaction (refund).
PayPal and IBAN bank transfer are also available. Please contact me for details.
Questions, suggestions, criticism, complaints go to ValdikSS <iam@valdikss.org.ru>.