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