Welcome to Laser Pointer Forums - discuss green laser pointers, blue laser pointers, and all types of lasers

Please consider LPF Donation

Please check out Avery's 3 other sites below -- just visiting is a huge help -- links below open in new window

ArcticMyst Security | Verified TikTok Comments | 6pack Wolfpack

Laser driver circuit


Oct 31, 2016
I like to build a laser pointer driver circuit that I can drive from an 8 bit uC. However, I like to get light output fairly constant. This requires for me to look at the photo detector (these lasers come with 3 pins, gnd, laser cathode, pd cathode) current and adjust laser input current to stabilize light output.

Ideally, I need to drive this from a GPIO of 8bit uC so that I can make it oscillate at different frequencies at different times. (100-300Khz range nothing very fast) I looked around and the analog circuits that are available are for DC, I couldn't come up with a way to drive them from GPIO.

I want to ask masters here, is there a way to do this with a few transistors etc. if not, what type of ICs I can use for this purpose. (A simple current driver with some feedback perhaps?)

Feb 2, 2012
You could do it all from your Micro. Send a digital PWM output to turn the power on to the diode. Then have an analogue input for current feeback into the Micro. Adjust the PWM output to get the current you want. Problem is your program needs to react fast enough. Current feedback loop.

Then the Photo Diode also needs to be an analogue input to the Micro. And adjust your PWM output to control it.

What I would suggest is an Op Amp current regulator. Then you can send an analoge current ref from the Micro to the Op Amp which is controlling the current well. And the analogue Photo diode input so you can adjust the level.

All doable. But could be fun.
Last edited:
Sep 12, 2007
You've left out perhaps the most important info here. Why do you need a laser at 100-300khz, and why does a micro need to be involved?