Work in progress

This page describes a design which is still being worked on!


A diode driver is required to operate a laser diode, since laser diodes, like LEDs, also have to be operated with a direct current source.

The desired specifications of the laser driver are as follows:

  • Ampacity: 80A
  • Arduino compatible microcontroller
  • DIY friendly 2-layer circuit board and hand solderable components

The laser driver was initially based on analog control, with a Mosfet serving as a direct current source. This is possible because you can operate a mosfet not only as a switch, but also as a variable resistor. The characteristic in this so-called saturation region means that the current remains relatively constant, even if the voltage across it changes. This constant current can be adjusted via the gate-source voltage, which in this case can be adjusted via the digital-to-analog converter output of the Arduino Due used and a downstream amplifier. The control itself works purely analog due to the properties of the parallel connected current Mosfets:



While using this first version of the laser driver, there were problems in practice, since oscillation free operation was difficult to achieve on the basis of analog control. Although it would have been possible to optimize the existing concept for a specific current intensity so that the current intensity would not fluctuate, changing the laser power would then no longer have been possible and the solution would then have been less flexible.

It was therefore decided to pursue a different concept: digital control based on a microcontroller. This makes it possible to test various control functions and to change them in software during operation depending on the requirements of the laser system.

Furthermore, it is possible with this solution to run any pulse shape, whereas with the purely analog solution only rectangular pulses are possible. Another advantage is that you can quickly implement and test different control algorithms, with the analog solution you have to design and build a new circuit in each case.

Technically, this is solved by an Arduino-compatible microcontroller board, the Teensy 4.0, which measures the currently flowing current via a measuring resistor and a measuring amplifier, then processes this value in software and accordingly controls the Mosfet in the power circuit so that the current flow is the same in the event of faults remains. This data processing should be completed in 2 µs by selecting the measurement and control electronics and the power of the microcontroller, so that a control frequency of 500 kHz is possible.

The obsolete MAX9643 current sense amplifier has been replaced by a two-stage amplifier circuit based on Texas Instruments' OPA2354.



The design of this laser driver circuit has already been simulated and a prototype has been built. The individual parts of the circuit have been successfully tested, only the current regulation is still faulty. The calculated voltage range for controlling the Mosfet is not sufficient, since its characteristics in the saturation range deviate significantly from the data sheet in reality. Here is another way to manually adjust this voltage to the respective Mosfet.



The github repository for the laser driver can be found here: https://github.com/Laser4DIY/Laser-Driver-v2

  • No labels