Pretty much all the DIY laser diode driver circuits floating around the Internet, such as rog8811 I’ve looked at initially, are based on the venerable LM317 adjustable voltage regulator that’s being “duped” into constant current mode by creating a feedback loop through a series of resistors (one pot and one constant) between the output and the “adjust” input. However, these LM317-based circuits are pretty much all designed for various laser pointers and therefore lack the capacity to be ON/OFF controlled via a TTL-level signal – an important feature for a CNC laser cutter.
The LM317 is very old and I thought there must be a better way to build such driver circuit using the same feedback technique but a modern regulator IC with the shutdown feature that I need for CNC. So I’ve found a bunch of LT1121 adjustable voltage regulator ICs on the bottom of my analog IC parts bin and, after reading the datasheet, it turned out that it’s a perfect IC to build a constant current laser diode driver on. It is a low dropout regulator, has a shutdown TTL-level input and is capable of supplying 150mA current but in my tests I was running is just fine at 200+mA and it did not generate any heat whatsoever.
Despite having more features, LT1121 isn’t more expensive than LM317 and can be easily sourced anywhere, including eBay. It has one limitation that needs to be taken into account when using the driver circuit: the internal voltage reference is 3.75V as opposed to 1.25V for LM317 and therefore it has to be supplied with 2.5V higher voltage than a similar LM317-based laser driver circuit. Basically, for a red laser diode the supply voltage has to be 7V or higher and for a blue laser diode the supply has to be 9V+ . When using an Arduino-based controller, it’s best to supply this driver from the VIN pin (AKA “raw 9V”) rather than the regulated 5V rail.
Here is a board layout that has been slightly adjusted after I’ve populated the first PCBs ordered from Olimex. That’s why the version on the board layout (1.3) and on the photos (1.2) are different. Basically, I just moved the LT1121 chip a bit down to make more room for the capacitor. Note that LT1121 produces stable output with capacitors as low as 0.33uF, so small ceramic ones can be used instead.
The circuit was designed in Eagle and here are the Eagle schematic and board files.