DIY Chl A fluorometer using arduino and bitscope

About a year ago I started playing around with the Arduino and LEDs with the general goal of making a DIY chlorophyll A fluorometer. Since then I have made a fair bit of progress. I am utilizing the arduino to trigger a high powered Cree led to create a 150 usec pulse of light. The power source is a 12 volt/3 amp ac/dc power supply which is being regulated via a IRL 520 MOSFET. For fluorescence detection, I am using a large diameter photodiode and circuit board which delivers an analog signal to a BITSCOPE 10. I can control data acquisition by the bitscope (speed of 1-2 samples per usec.) with the arduino so as to ensure that data recording occurs at the proper moment. Currently I am utilizing the arduino IDE as well as the bitscope DSO software to control LED pulses and data acquisition. However, my future plan is to control both via a C++ based program utilizing the API libraries available for both bitscope and arduino.
I am making progress, however I am running into a problem with the LEDs. Basically the rise time for the LEDs appears to be far too long. Currently I am using Cree E2 and Luxeon rebel LEDs. Depending on the color I use, I get variable rise times of 1-100 usec. If i understand things correctly (which is a big if) LEDs should have a rise time of well under 1 usecond. So, the question is, why am I getting such long rise times? Ideally, the LEDs would be at full strength within the first 1 usec. I am using the port calling method to trigger each led (as opposed to digitalWrite()) which should be quicker as well, but still I am having the same problem. I would greatly appreciate any help/advice as to what may be going on and/or how I might fix it. Thanks in advance for all your help. Hopefully in the not too distance future I will be able to write a wiki about this DIY fluorometer so that others can improve upon the design.


Kenneth D. Hoadley
Ph.D candidate, Marine BioScience
University of Delaware

This is really a question for the Electronics section of the forum.

I will ask the moderator to move it, I'll also have a stab at the answer

First of all, if you look at the gate of the power FET (IRL 520) what sort of drive are you giving it.

Whats the rise time at this point. Gates on FETS are capacitive, and the spec I found on that device list the typical capacitance as 470pf

So assuming you want a rise time of 1uS to full gate voltage, you can calculate the amount of charge that needs to be delivered to the gate and hence the current required. (sorry my memory of the precise equations for this is a bit vague, but I'm sure the guys in the Electronics section will know it)

Similarly, but possibly a harder problem to solve, is the capacitance or the LED.

Another issue is most likely the power supply output capacitance or more important, the local storage capacitor that you'd need right next to the FET

Another issue at the speeds you are mentioning are the length of wires, and thickness of wires.

I suspect the FET needs to be mounted driectly to the back of the LED (as close as possible) and with a substantial capacitor to deliver the initial surge current required.

Hello rogerClark,

Thanks for the quick reply and for moving this to a more appropriate forum.

I am driving the FET gate with just the logic input from the arduino pin. Sounds like you think this is the problem. If I understand you correctly (I'm a biologist by trade and electronics is very far out of my comfort zone so please forgive my ignorance) I need a capacitor to help give an initial burst of current to the FET gate? How would you suggest I drive it?

Also, all of my wire lengths are between 1-5 inches in length (between arduino and gate, or between led and FET or LED and power supply). I tried your suggestion of mounting the FET directly to the LED but this had no affect on the rise time. Additionally, I placed a 1000uF capacitor between the LED and FET but still no affect on rise time. I suspect/am hopeful that your initial suggestion that the FET gate is the culprit is correct but I am not sure how I might solve this.

Thanks again for all you help! Im heading out into the field fairly soon and would like to test this device so I am keen to solve this problem soon.


Kenneth D. Hoadley
Ph.D candidate, Marine BioScience
University of Delaware

The current required to charge/discharge a capacitor is given by I = C dV/dt, which leads to about 2 mA for a 490 pF capacitor and dV/dt = 5 V in one microsecond. That is well within the capabilities of the Arduino and not the problem.

Can you post a complete circuit diagram (hand drawn schematic is fine, avoid Fritzing)?

How are you measuring rise times?

What color LED are you using for excitation? Are you using emission and excitation filters?


Thanks. I should have remembered that equation.

I also agree that measurement of these sorts of things can be problematic, but a decent scope should be able to cope with a 1uS rise time, as its only 1Mhz, but you can get inaccurate results due to badly setup probes etc

I did look to see if the LED the OP mentioned had a spec including capacitance, but the spec didn't include that parameter

However there were multiple postings on various forums, about excitation speeds of LEDs, so even if the supply voltage rise time is fixed, there may be other issues.

I wonder if the OP needs to use a different system altogether e.g. Some sort of Xenon base flash illumination

Hi, Roger:

I agree that the risetime measurement should be very straightforward, but would still like to know how the OP is doing it, and what the LED drive circuit looks like. It is hard to imagine that LED capacitance is the issue.

Cheers, Jim


Thanks again for all the help! Attached is a very crude drawing of the circuit. This is actually repeated 8 times (with a different arduino pin controlling a different LED).

I am measuring with a PIN photodiode connected to a transimpendence amplifier (Linear technology demo circuit 1416). The output from this board is an analog signal which is read by the bitscope.

For LEDs I am using a mix of Cree E2 and Luxeon Rebel 3W LEDs. Each emitter consists of three such LEDs (of the same color) connected in series. The colors I am using are 445, 475, 505, 530, 567, 591, 617, 625 nm. Interestingly, the 530, 567 and 591 appear to come up to full power in less than 1usec.

Light to the detector is first filtered through a high bandpass filter which allows wavelengths of 685 nm and above to pass through.

And how are you defining and measuring the "rise time"?

I would be happy with the typical definition of roughly 90% of the full intensity. For the two blue LEDs, the rise appears to take roughly 50useconds to get close to 90%. Am I wrong to assume that my rise times should be less than 1usec? Thanks again.

Repeat: And how are you defining and measuring the "rise time"?

If you are using your own circuit to measure light intensity, what is that circuit and what is its rise time?


From your response, it sounds like you didn't find any obvious problems with the circuit. With that in mind, I turned my attention to the detector. I removed the high band pass filter and got nice square waves for all of my LEDs. jremington, I assume this is why you were wondering about how i was measuring rise time. Looks like I am technically good to go. The problem I was having was that I could not properly measure rise time with the filter in place as the only light that reached the detector was secondary to the actual true emission (I suppose this should have been pretty obvious). During an actual measurement, the chlorophyll within my sample will indeed see a square wave which is the most important part. The detector will thus only see the resulting fluorescence which will be proportional to the square wave. So Im happy. Thanks again for all of your help!

From your response, it sounds like you didn't find any obvious problems with the circuit.

I don't completely understand your response. I did suspect that the real problem was in the detector circuit, but you still have not shown it to us.