linear CCD TCD1201d readout and timing issue

Here are my suggestions:

  1. Keep the ground and clock wires between the Arduino and the CCD as short as possible. Run these 3 wires right next to each other to minimise the inductance. Even a small amount of inductance will cause ringing, because of the high capacitance of the CCD clock inputs. If you can't keep the length of the wires to a few cm, then use a 74HC04 chip to buffer the signals, as shown on the datasheet (and keep the wiring between the 74HC04 and the CCD as short as possible).

  2. Make sure you have a 0.1uF decoupling capacitor connected across the CCD power and ground pins, as close to the CCD as possible.

  3. Switch the clock lines simultaneously using direct port access. To help make sure that they cross above 2.5V, try either:

(a) a 150 ohm pullup resistor on each clock line, connected as close to the CCD as possible; or

(b) the Schottky diode/parallel resistor arrangement I suggested earlier.

  1. Double check that you are sequencing all the CCD inputs correctly.

What do you have the output of the CCD connected to?