Controlling a CIS-Scanner from an old Canon MX700 office printer with Arduino.   CIS-Scanner modules from old scanners or multifunction office printers are interesting for various projects such as optical rulers / positioners, optical micrometers, touch screens or poor man's spectrometers. This project shows how to interface a CIS-scanner from an MX700 to Arduino. Furthermore the project contains a  Java program for read out and displaying the measurement as graph.

The scanner module from the MX700 consists of an array of ~5000s sensitive photoelements over a length of 21 cm. 


The device can be controlled via 2 signals: a "Start pulse" and a "Clock pulse". With clocking a start pulse the device samples and with subsequent clock pulses the  optical signal is available at the analog output  pin of the device.



The project contains:

  •  an Arduino program
  •  Java-program for read out and displaying it on the screen. The main class is CISFrame. Sample rate (Lines per second) is 3 Hz


 The Arduino program opens a serial port with 1000000 baud. It accepts the commands:

  • S - Sample 5000 data points and transmit the values as binaries to the host
  • R - Toogle Red Led
  • G - Toggle Green Led
  • B - Toogle Blue Led
  • 8 - Toogle 8 Bit / 10 Bit  (2 Byte) mode



Login to post a comment...

atzensepp 2 years, 7 months ago

Hello frett27, sorry for my late response. ROHM has data sheets available for their sensors. Google for "Rohm cis sensor pdf" Which Canon-Model do you have? Do you have a number on the sensnr? The best way to identify the pinout is to measure the signals while connected and powered in the printer. If the sensor is taken out : try to identify the ground and the vcc and trace the connections to the ic on the logic board. Tedious but this way I managed it in my case.

frett27 2 years, 8 months ago

Hi atzensepp, thank's for your post, that's relly helpful, i'm try do do the same thing on my side. But the sensor is a bit different (still canon module, ROHM), and this does seem to work. do you have any tips to safefully identify the pins ? thank's for your reply. Patrice