MX340 Print Carriage Encoder Delivers 600 Counts Per Inch
After taking apart the print carriage of my old Canon Pixma MX340 multi-function inkjet, I figured out the pinout for its quadrature encoder. Sadly, it didn't look very easy to tap into those signals on the printer mainboard.

So I soldered wires to the print carriage instead.

I routed these wires through the front with nice long flexible wires, to my Arduino Nano running a quadrature decoding library. Providing 3.3V power and manually moving the carriage back and forth across its entire range, I saw ~7637 counts. I divided it by centimeters but didn't get a very nice number. I tried Imperial measurements, and it worked out to 600 counts per inch.
Earlier I decided the paper feed encoder delivered 8640 counts per revolution. Trying to correlate the two measurements, I went back to measure the diameter of the paper feed shaft at 9.75mm. That works out to a circumference of 30.615mm or roughly 1.2 inch. 8640/1.2 = 7200 counts per inch. That's 12 times the horizontal axis resolution!
Such a huge discrepancy in resolution between horizontal and vertical axes can be explained by how this print engine moves. The paper feed motor needs to advance paper with high accuracy to make sure one print head pass lines up exactly against the next pass with no gaps or overlaps in between. The print carriage motor then moves the print head across the page at a controlled rate, which is the key here: the steady rate of motion means the printer control system can interpolate between those 600 counts per inch to synthesize virtual steps in between real hardware steps. Doubling to 1200 or quadrupling to 2400 (or more) are valid options when print carriage motor moves at a known controlled speed.

Now that I have my answer, I no longer need these wire taps. At first I was ready to disassemble the print carriage again so I could unsolder these wires, and I wasn't trilled about the risk of damage and losing springs when I take it apart again. Then I decided to not take that risk, save myself the time of disassembly, and just cut off those wires today. I'll unsolder the remaining stump later, if ever. Right now I would rather spend my time disassembling the ADF gearbox instead.
This teardown ran far longer than I originally thought it would. Click here to rewind back to where this adventure started.