I'm putting together a Morse code decoder circuit with Arduino (a photodiode sensor connected to an analogue pin, the Arduino will then decode the high and low light pulses the photodiode receives to be dots and dashes) and I'm currently working on the sensor portion of the circuit.

I have the following amplifier circuit to amplify the signal coming from the photodiode.

enter image description here

As well as this I also took the optical filter off of an old barcode reader and put it over the photodiode so that mainly the light from the red laser pen that I am shining at the detector (10 meters from it) should get through.

The speed at which I'm modulating the laser is proving to be the main problem; I'm modulating the laser by turning it on and off every 50 - 200 microseconds; if using a plain photodiode on it's own the photodiode rather than reading this as highs and lows just waits till it has received enough pulses to saturate the sensor and then turns on, it's acting more like a low pass filter.

So I chose to use this amplifier circuit instead however I'm struggling to get the correct resistor values to give me the sensitivity I need; I've tried from 10k up to about 5Mohm but everything is either too sensitive or doesn't even register.

Can anyone recommend some resistor values for the above circuit or another amplifier circuit that might be better suited to the sensitivity and speed that I need?

For extra info, as well as the above I'm thinking about further reducing ambient light getting to the sensor by either pointing the sensor and the laser at a surface a few mm from the detector and measuring the reflections or by putting a thin piece of paper over the sensor that the laser would shine through and hit the sensor that way.

Any help much appreciated

Edit 2: Here is the current circuit after Photon's suggestions. enter image description here

  • \$\begingroup\$ This circuit is connected directly to an Arduino IO pin? Or to an ADC input pin? Either way, is the pin okay with negative input voltage? \$\endgroup\$
    – The Photon
    Sep 26, 2015 at 11:36
  • \$\begingroup\$ It should be an ADC pin but the negative voltage is a good point although I haven't supplied a negative voltage to my op amp, would it be trying to give a negative voltage if I gave it a negative supply to use on the -ve pin? \$\endgroup\$
    – Moilergy
    Sep 26, 2015 at 11:43
  • \$\begingroup\$ Yes, this circuit needs a negative supply and produces a negative output. If you reverse the PD and make Vbias negative, you'll get a positive output. But you'll still need an op amp with really really true rail to rail IOs. \$\endgroup\$
    – The Photon
    Sep 26, 2015 at 11:47
  • \$\begingroup\$ Also please share the schematic of the circuit you actually built. It's much easier to give a helpful answer if you do that. \$\endgroup\$
    – The Photon
    Sep 26, 2015 at 11:49
  • \$\begingroup\$ Cheers, just added my circuit in its current form to the main post; I'll have a go at the non inverting Op amp circuit and see if I get better results. \$\endgroup\$
    – Moilergy
    Sep 26, 2015 at 12:10

1 Answer 1


You can operate the photodiode in "photovoltaic" mode and then you don't need a negative supply. In this case the diode generates a current in the same way as a solar cell. You may give up some speed and sensitivity operated in this way.

It requires an opamp that can operate with zero volt at the inputs (the LM324 can), these are often referred to as "single supply" opamps. A CMOS input opamp would be better as the bias current won't cause problems.

The circuit is below. Depending upon the capacitance of the diode and the wiring (don't use long leads to the photodiode) you may need the capacitor C1 to avoid instability.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ JFET input, low input current(pA levels) and low offset voltage(a few nV's level) precision opamps will do work fine in photovoltaic mode I think. \$\endgroup\$
    – Alper91
    Oct 26, 2015 at 22:19

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.