Arduino ADC to read an linear image sensor output

Hello

I have a Hamamatsu CMOS linear image sensor(S11637) that needs to scan a laser dot traveling across it. The sensor is connected to the Arduino AD converter in which a program will translate said signal to what is being measured from the sensor.

The function is rather basic yet I'm having trouble finding a template or resource to use to develop this script. It needs to do this:

  • Read the scanned pixel values and write it to an array.
  • The set value is dependent on the amount of energy received by the pixel.
  • Give each scan a timestamp so as to know the time in between each scan. (Maybe simply knowing the set scan intervals will suffice but just in case)

Like I said, if you have any good script or template to derive from or know of any knowledge base to get info from I would greatly appreciate.

Edit 1: Here's the datasheet for the sensor I plan to use: https://www.hamamatsu.com/resources/pdf/ssd/s11637_series_kmpd1131e.pdf

And here's a rough illustration of the general plan:

Software function

Thanks in advance!

Edit 2: I've decided to go and perform this task using a raspberry pi4 with an ADC instead. Thank you all for the tips!

Probably no-one has ever used one of these image sensors with an Arduino before, or is even familiar with their operation, so perhaps someone might know of a script or template that would be of some use, but they don't know that they do.

There are many clever forum members who might help figure something out with you, but you are not doing the right things to engage them or get them interested. At the very least post a link to the data sheet for the sensor, don't make forum members go searching for it. Some pictures of the sensor, including its connectors, diagrams showing how it is used or how you plan to use it would also help engage people and may trigger a memory in someone who has used something similar in the past.

Thank you for your answer. I added some extra info that will hopefully be of use.

You will need a very fast Arduino for that sensor. The Teensy series from pjrc.com has been used for similar ones, like the TCD1304:
TCD1304 with teensy 3.2

For more ideas, google "arduino linear image sensor"

Considering that the minimum clock pulse freq is 200 kHz

which also determines the trigger frequency, and thus the ADC sampling speed, a regular 16 MHz Arduino won't make it

With a faster MCU (Cortex m0/m3/m4) with a more capable ADC, the functional timing is pretty straight-forward

a PWM output to CLK input
digital output to ST input
ADC pin on Video output and two external interrupts for Trig and EOS

Besides the above concerns, the video output is a variable VOLTAGE that would have to be converted back to digital with an A/D converter.
Do you have the device? Is it on a PC board that has spots to connect to an Arduino?
Paul

I see, I will have to check with the others and see if they have something with enough juice to run this.
Thank you!

I checking to see if this can be done with Arduinos own A/D converter or if we have to build the application circuit shown in the datasheet.

You might be able to get by without any amplification circuitry. Something like the ATSAMD21 used in the Arduino Zero should be able to do it. The ADC can sample at 350ksps and has up to 16x programmable gain. You could use the event system to trigger ADC sampling on the trig signal and perhaps even utilize the DMA (this does seem like an ideal use case) to move the sample to a frame buffer.

I don't think any of these features are accessible through the Arduino software framework though, so it would definitely require some work.

The power supply bypass capacitors shown in the application circuit are absolutely required. The buffer amplifiers are optional, if you use short leads to the ADC input and logic signals.

By the timing diagram, the A/D conversion must be done at the chip clocking rate to get the voltage generated from EACH pixel.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.