Interfacing CMOS Linear Sensor Array (TLS1401)

Hi, I am somewhat new to all of this. My main background is software development so working with hardware interfaces is a bit of a leap.

I am trying to interface a TSL1401 CMOS linear sensor array (photodiodes) to my Arduino board. I am unclear on how the general concept works. The 1401 requires a Clock signal of between 5Khz and 2Mhz. It also requires a serial input pulse to start the conversion process. Then the 1401 will spit out 128 analog levels that I would presumably feed into the ADC of the Arduino.

Is there a general explanation somewhere that someone could point me to regarding timing, clocks, etc. ? Can the Arduino provide the Clock signal to the 1401 or would I want to provide that signal using an external oscillator circuit?

Any direction on this would be much appreciated.



UPDATE: I think I am on to something here. I just discovered SPI. It seems like that is the direction I need to be heading?


it's a year ago, you wrote this message. I want to connect the TSL 1401 to the Arduino Duemilanove too. With some optic (lens, prisma) i plan to make a primitiv spectroskop. Already found some examples of code on the web but i'm unexperienced with ASM code. Do you succeed with your project ? Can you provide some code snippets to drive this sensor ?

thx wally

I just bought two of the TSL1401’s also.
I’m going to try to get distance measurements out of them based on stereo data.

I’ll keep you posted.


sounds interesting. Here the TSL 1401 is working very nice. I can produce nice peaks already. Now going to TSL1402/1406.


How did you do with optics? I can't figure how implement a small lens.


I can't figure how implement a small lens.

Take a piece of glass, grind away everything that doesn't look like a "lens", and polish what's left ;D

What is it you're trying to do with the sensor? I may be able to help out with some suggestions, or even some parts from my optics collection.

I need to see through a sheet of glass. With a webcam looks like this:

The goal is to see as much as possible.

Thank you

What are the circles in the middle of the sheet?

In fact it would help if you could describe what you are trying to do.

With a webcam looks like this

The webcam sensor is about the same size as the TSL1401's, so my first suggestion is to buy an obsolete/dead webcam from a thrift store, garage sale, or other cheap source, and replace the camera board with one holding the TSL1401. You get the lens, focuser, and mechanical mount for only a few dollars. Plus, you may get a camera you can mount in a telescope eyepiece housing so you can record your sunbathing neighbors on your PC ;D

A good documeted but low resolution (128x128) ccd sensor is used in the Gameboy Camera and its easy to free the sensor rom the remainig stuff. And with objective lens. But it would really help to know what you want to do at all.


Does anyone have some good info/schematics for how to connect the linear senor and drive it with the arduino?! I am pretty new to this and not reallys ure how to handle inte start and the clock pulse input...

Thanks in advance!


Hi krst,

which sensor do you want to use ?

cheers wally

Hi Wally

Actually my first idea was to use a higher resolution sensor (1024x1), Hamamatsu S9226 (data sheet I am planning to do a laser ranger by putting a bandpass filter according to the laser in front of the sensor then getting the readings from the array to be able to calculate the distance to the projected laser spot.

But that said, a tsl 1406 (768x1) is an option and for sure a good way to learn if there is work already out there done. I found some document from parallax but being a beginner I for sure would need some help in the right direction with the wiring and programming in arduino. As I understand from the data sheets the main idea is to start and then with the clock pulse go through all pixels?! I would assume that the driving logic is similar between the different tsl sensors?!

Thanks for the quick response!


Hi krst,

i did it with an arduino and a TAOS 1401. Adapting this to 1406 should be easy. My project was made for spectroscopy.

But :) .... i do not know where i stored the stuff, sorry I will try to find it this weekend and post here.


btw, this S9226 looks very nice. I need a linear array sensor for 200 - 1000 nm, mostly they cover VIS spectrum and IR but i need UV. If anybody know such a sensor, please let me know, thx.

this may help

Many thanks!! and thanks for that link to

Yes I liked the chip as it is one chip, compared to the tsl1406 which basically is composed of two chips and then needs double control system...

As i was searching for sensor earlier i found these sensors,§ion=&language=1 and search for example S8377 and you will find some sensors that goes down to 200 in an ok intensity range still. There were some nmos sensors to I saw that were more UV sensitive but the price was hefty to say the least!. Is it for some bio application you were looking for it or?!


Hi krst,

i want to detect the fractions of an HPLC process. The commercial detectors are called "diode array detectors" (DAD) an the pricing is also hefty :) Where did you find the prices for the Hamamatsu chips and/or where to buy it (europe) ? Did you get my PM and could you read the code ?

cheers wally

The prices I just found at their sales homepage ( image&advanced=), chose a sensor and you will see the price pop up. The S8378 chips I see range from 120 to 500 euro. I dont know a supplier however, my local supplier ( does not have these s8378 sensors... The only thing I can see is that the prices on the hamatsu site is close to the ones I get in my store :-)

Thanks for the code to, got it! Will see if i can manage to understand it to :-)

Just a tips for beginers out there to this sensor!

Found this manual for how to interfer with the 1401 sensor (with a BASIC Stamp and also with some other driving but still...) but think it gives a good start point on how to handle clocks and start points. Also it cointains some other basic info about image aqusition methods and processing with linear image sensors...