How to hack the printer driver to measure ink used for each print job?

by Jack Oat   Last Updated June 12, 2019 04:05 AM


I have done a bit of research and noticed a lack of this feature in the official software by the major inkjet printer manufacturers to measure and record the amount of ink used in each print job.

This is useful for home users and critical for commercial users to find out the true cost for each print job.

I found one by Epson(official software).


Review of the software:

However, it is closed proprietary software and device dependent, Ie, only meant for Epson printer.

For printer companies are widely known for their excessive ink profiteering, it is very hard to imagine that they would open their platform(API) for third-party developers.

In the spirit of the maker movement, I would like to gather more information around this area and hopefully hack out a solution for any chosen printer.

Ideal Solution:

1) Before Printing: To anticipate the amount of ink to be used for the print job.

2) After Printing: To record the actual ink used for the print job.

3) The amount of ink used/to-be-used to be listed by their colors(refer to screenshot in the review link).

Implementation Options:

a) Hacking the printhead driver.

This method mainly revolves around messing with the software(driver). It also takes a lot of time in codes digging and writing the hack. But to do it at the driver level, it could potentially accomplish all #1, #2 and #3. However, this method may not be even possible as drivers for non-Epson printers may not be addressing ink usage at the get-go.

b) Adopt an ink tank system and attach a "valve meter" on the tube connected to each ink cartridge.

This method is more of a hardware/electronics implementation. It may involve a microcontroller/sensors at the "valve meter" level to monitor ink flow and record ink drawn from the tank. Data will be saved, manipulated and displayed on an external dashboard in whatever way we want it. It seems like a neater solution in theory. However, it wouldn't be able to accomplish #1 (which is not a bad trade-off). But this creates a one-off solution that is device independent, Ie, virtually works on any printer with ink tank system. Huge plus!


If you have any suggestions and/or know-how, I would be delighted to hear from you and love to see this project through.

Tags : drivers

Related Questions

How drivers work?

Updated February 24, 2016 01:02 AM

"Business Drivers" for software development

Updated November 06, 2018 11:05 AM