I am using a GaAs photodiode to pick off a small amount of the light of a high-powered infrared laser, supply this to a PID loop and thus have a way to stabilize the intensity of the laser. The thing is now that the optical power has to be changed continuously over up to three orders of magnitude (40W to ~10mW) by applying a voltage ramp to the setpoint input of the PID controller. Unfortunately, I could not manage to find a set of parameters for the PID loop for which it shows a reasonable response over the whole operating range.

While reading about the issue I came across what are called Programmable/Variable Gain (Transimpedance) Amplifiers. What do you guys think about supplying the voltage ramp to the gain input of the programmable TIA instead and keeping the setpoint at the PID regulator constant? This way, the PID regulator has a signal to work with that has a constant magnitude and - beware my limited EE knowledge - the system should be able to regulate the power better over this broad range? Or is there anyone that has ever used one of these before, perhaps for a similar application?

Of course, I welcome all other suggestions about ways to get a reasonably high signal out of a photodiode over such a broad range of optical intensities.

  • \$\begingroup\$ How is the PID regulator implemented? Analog only or is the control digital? What is the response from your photodiode sensor that goes to your PID? Could you split the beam? That way you could use more photodiodes each with a good gain for a specific subset of the output power. Although using a single photodiode should be possible. How much light actually reaches the sensor when the laser is at a constant 40W or 10mW? \$\endgroup\$
    – Grebu
    Nov 20, 2017 at 23:23
  • \$\begingroup\$ What is the dynamic range of the photo-generated currents? You've mentioned the optical power range (almost four orders of dynamic range), but I'd like to know what this means for your "pick off a small amount of the light" process in terms of current. Also, can you consider the idea of simply putting the photogenerated light through a logarithmic amplifier (which, if you aren't terribly picky, could just be a BJT collector and you examine the base voltage that results?) \$\endgroup\$
    – jonk
    Nov 21, 2017 at 0:08
  • \$\begingroup\$ The PID is completely analog. While I don't have the current values at hand, it is currently set up such that the Photodiode output is given to an I-to-V current preamp, and the gain is set such that 40W of laser power equals the maximum voltage of 5V. I could surely split the beams and use multiple photodiodes, but how would I switch between the PDs when applying a linear ramp between the full range of optical power, and the PID lock is still maintained? \$\endgroup\$ Nov 22, 2017 at 2:46
  • \$\begingroup\$ Use as high of a reverse bias across the PD as you can. This will improve your S/N ratio so that at the lowest laser intensity, you'll be considerably above opamp bias and offset voltages. 4 orders of magnitude is a reasonable dynamic range to achieve with a PD transimpedance amplifier. \$\endgroup\$
    – MOSFET
    Jan 29 at 19:55

1 Answer 1


If you stabilize the light by comparing the detector signal to a voltage reference, the problem is that the three orders of magnitude range means that your comparison may be to a 5V level at 40W, but will be to a 0.00125 volt level to hit 10 mW. The loop noise sensitivity will be poor at the lowest power. Easiest would be to have a gain-range determined by putting attenuators into the optical path: a couple of neutral density filters, or even calibrated holes in light stops, can reduce the sampled light before it gets to the sensor.

Three ranges, with two 16x attenuators, will all map to a loop error detection dynamic range of 5V to 0.3V, and even a mediocre error amplifier ought to give accurate results with signals in that range.

Amplifiers with very low current errors can be employed with logarithmic gain setting, but the sensor itself may have low-light-level nonlinearities, so that is a less safe alternative. Here see figure 48; Q2 polarity is drawn wrong is a logarithmic current source; sum it with a light-dependent current sink, and the resulting current is a suitable loop error signal.

  • \$\begingroup\$ Using a log error signal is potentially unsuitable approach. Since log is not a linear function, neither will the error be, and the loop gain will change with error level. This is not (necessarily) a problem, but can lead to instability if the loop set point is varied. Alternatively, if the loop is tweaked for good response at low set points, it will be sluggish at high. \$\endgroup\$ Nov 21, 2017 at 14:58
  • \$\begingroup\$ @WhatRoughBeast: yes, there are stability concerns. A capacitive photodiode ought to be sluggish in responding at low currents, which is the 'right' direction for stability. One wants to understand the laser response to the control signal, too. \$\endgroup\$
    – Whit3rd
    Nov 21, 2017 at 20:07
  • \$\begingroup\$ Thanks for reclarifying, that "the loop noise sensitivity will be poor at the lowest level" is exactly the problem. I have heard of the log amplifier, good that you hint to stability concerns due to the nonlinearity. Sometimes, your suggestions using several PDs with different attenuators is used. However, I have a hard time imagining how this can be suitable when say a linear ramp over the whole power range is applied: How can I switch between the different photodiodes while maintaining the PID lock, especially when the ramp lasts only a few hundreds of milliseconds? \$\endgroup\$ Nov 22, 2017 at 2:41
  • \$\begingroup\$ @A.Impertro : if a ramp (linear, not logarithmic) is intended, it might be that 40W +/- 0.01W to 0.01W +/- 0.01W is a good enough accuracy? There are electronic switches, too, if you really use three diodes and three preamplifiers, a switchover between three control signals might go fast enough to be indetectible. \$\endgroup\$
    – Whit3rd
    Nov 22, 2017 at 7:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.